springboot + Vue前后端项目(第二十记)

项目实战第二十记

  • 写在前面
  • 1. 高德地图官网
  • 2. 开发文档
  • 3. 集成高德地图
    • 3.1 在public文件夹下创建config.js
    • 3.2 index.html(在项目启动文件中引入外部的js)
    • 3.3 点标记(用点标记当前位置)
    • 3.4 信息窗体(点击当前位置,弹出当前位置信息介绍)
    • 3.5 路线规划(行车轨迹)
    • 3.6 定位(定位所在城市位置)
  • 总结
  • 写在最后

写在前面

本篇主要讲解系统集成高德地图的简单应用

1. 高德地图官网

https://lbs.amap.com/

a, 在控制台下创建应用

b, 添加key(后面开发需要用上key和秘钥)

在这里插入图片描述

2. 开发文档

开发文档说明地址
获取某个地方的经纬度链接

3. 集成高德地图

3.1 在public文件夹下创建config.js

如下图所示:

在这里插入图片描述

var gloableConfig = {
    "key": "21e6448a80093b98bbe496326xxx", // 高德地图的key(配合秘钥使用的key)开发环境使用
    "secretKey": "d41253368f29e52ce9eaed3d6xxx", // 高德地图的秘钥(配合key使用的秘钥)开发环境使用
};

3.2 index.html(在项目启动文件中引入外部的js)

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
    <script src="./static/config.js"></script>
    <script type="text/javascript">
      // 高德地图秘钥,必须在加载JSAPI load.js文件之前
      window._AMapSecurityConfig = {
                securityJsCode: gloableConfig.secretKey  // 开发环境使用
            }
    </script>
    // xxx写自己的key
    <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=xxx&plugin=AMap.Driving&plugin=AMap.CitySearch&AMap.Geolocation"></script>
  </body>
</html>

== 注: static 文件夹下的config.js(用来绑定秘钥)==

var gloableConfig = {
    "key": "21e6448a80093b98bbe496326979xxx", // 高德地图的key(配合秘钥使用的key)开发环境使用
    "secretKey": "d41253368f29e52ce9eaed3d63xxx", // 高德地图的秘钥(配合key使用的秘钥)开发环境使用
};

3.3 点标记(用点标记当前位置)

通过菜单管理建立高德地图菜单,并新建Map.vue组件

<template>
    <div>
        <div id="container" style="width: 100%;height: calc(100vh - 100px)"></div>
    </div>
</template>
<script>
export default {
    name: "Map",
    data(){
        return {};
    },
    created(){},
    mounted(){
        // 创建地图实例
        const map = new AMap.Map("container", {
            zoom: 13, //地图级别
            // 滕王阁经纬度
            center: [115.88112000000001, 28.681510000000014],
            // mapStyle: "amap://styles/whitesmoke", //设置地图的显示样式
            // viewMode: "2D", //设置地图模式
        });
        
        //知识点1(点标记),创建一个 Marker 实例:
        const marker = new AMap.Marker({
            position: new AMap.LngLat(115.88112000000001, 28.681510000000014),
            //position: new AMap.LngLat(116.39, 39.9), //经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
            title: "滕王阁",
        });

        //将创建的点标记添加到已有的地图实例:
        map.add(marker);
    },
}
</script>

效果图如下所示:
在这里插入图片描述

3.4 信息窗体(点击当前位置,弹出当前位置信息介绍)

<template>
    <div>
        <div id="container" style="width: 100%;height: calc(100vh - 100px)"></div>
    </div>
</template>
<script>
export default {
    name: "Map",
    data(){
        return {};
    },
    created(){},
    mounted(){
        // 创建地图实例
        const map = new AMap.Map("container", {
            zoom: 13, //地图级别
            //115.938187,28.6839
            center: [115.938187, 28.6839],
            //center: [116.397428, 39.90923], //地图中心点 北京
            // mapStyle: "amap://styles/whitesmoke", //设置地图的显示样式
            // viewMode: "2D", //设置地图模式
        });
        
        //知识点1(点标记),创建一个 Marker 实例:
        const marker = new AMap.Marker({
            position: new AMap.LngLat(115.88112000000001, 28.681510000000014),
            //position: new AMap.LngLat(116.39, 39.9), //经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
            title: "滕王阁",
        });

        // 知识点2,定义信息窗体
        //信息窗体的内容
        var content = [
            "<div><b>滕王阁</b></b>",
            "电话 : 0791-xxx   邮编 : 3300xxx",
            "地址 :  江西省南昌市青山湖区xxxx</div>",
        ];
        //创建 infoWindow 实例
        var infoWindow = new AMap.InfoWindow({
            content: content.join("<br>"), //传入字符串拼接的 DOM 元素
            anchor: "top-left",   // 显示位置
        });
        
        //  当点击地图某个点获取经纬度
        var clickHandler = function(e) {
           console.log('您在[ '+e.lnglat.getLng()+','+e.lnglat.getLat()+' ]的位置点击了地图!');
           //打开信息窗体
           infoWindow.open(map, map.getCenter()); //map 为当前地图的实例,map.getCenter() 用于获取地图中心点坐标。
        };
 
        marker.on('click',clickHandler);

        //将创建的点标记添加到已有的地图实例:
        map.add(marker);
    },
}
</script>

效果图如下:
在这里插入图片描述

3.5 路线规划(行车轨迹)

<template>
    <div>
        <div id="container" style="width: 100%;height: calc(100vh - 100px)"></div>
    </div>
</template>
<script>
export default {
    name: "Map",
    data(){
        return {};
    },
    created(){},
    mounted(){
        // 创建地图实例
        const map = new AMap.Map("container", {
            zoom: 13, //地图级别
            //115.938187,28.6839
            // center: [115.938187, 28.6839],
            //center: [116.397428, 39.90923], //地图中心点 北京
            // mapStyle: "amap://styles/whitesmoke", //设置地图的显示样式
            // viewMode: "2D", //设置地图模式
        });

        // 3, 路径规划,需要密钥的配置
        AMap.plugin("AMap.DragRoute", function () {
            //path 是驾车导航的起、途径和终点,最多支持16个途经点
            var path = [];
            path.push([116.303843, 39.983412]);
            path.push([116.321354, 39.896436]);
            path.push([116.407012, 39.992093]);
            var route = new AMap.DragRoute(map, path, 0);
            //查询导航路径并开启拖拽导航
            route.search();
        });
    },
}
</script>

效果图如下所示:
在这里插入图片描述

3.6 定位(定位所在城市位置)

<template>
    <div>
        <div id="container" style="width: 100%;height: calc(100vh - 100px)"></div>
    </div>
</template>
<script>
export default {
    name: "Map",
    data(){
        return {};
    },
    created(){},
    mounted(){
        // 创建地图实例
        const map = new AMap.Map("container", {
            zoom: 13, //地图级别
            //115.938187,28.6839
            // center: [115.938187, 28.6839],
            //center: [116.397428, 39.90923], //地图中心点 北京
            // mapStyle: "amap://styles/whitesmoke", //设置地图的显示样式
            // viewMode: "2D", //设置地图模式
        });
      
      // 4,定位城市信息  需要引入好插件  (定位不准确)
      AMap.plugin('AMap.CitySearch', function () {
        var citySearch = new AMap.CitySearch()
        citySearch.getLocalCity(function (status, result) {
            if (status === 'complete' && result.info === 'OK') {
                 //查询成功,result即为当前所在城市信息
                 map.setCity(result.city);
                 console.log('===>',result);
            }
        })
      })
    },
}
</script>

result的数据结构:

{
    adcode: "360000"
    bounds: {className: 'AMap.Bounds', southWest: t, northEast: t}
    city: "南昌市"
    info: "OK"
    infocode: "10000"
    province: "江西省"
    rectangle: "115.6786001,28.48182853;116.1596596,28.86719757"
    status: "1"
}

效果如下所示:
在这里插入图片描述

总结

在系统中简单的使用高德地图

写在最后

如果此文对您有所帮助,请帅戈靓女们务必不要吝啬你们的Zan,感谢!!不懂的可以在评论区评论,有空会及时回复。
文章会一直更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/751156.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

简易深度学习(1)深入分析神经元及多层感知机

一、神经元 单个神经元结构其实可以认为是一个线性回归模型。例如下图中 该神经元输入为三个特征&#xff08;x1&#xff0c;x2&#xff0c;x3&#xff09;&#xff0c;为了方便理解&#xff0c;大家可以认为每条线上都有一个权重和特征对应&#xff08;w1&#xff0c;w2&…

麒麟系统安装MySQL

搞了一整天&#xff0c;终于搞定了&#xff0c;记录一下。 一、背景 项目的原因&#xff0c;基于JeecgBoot开发的系统需要国产化支持&#xff0c;这就需要在电脑上安装MySQL等支撑软件。 国产化项目的操作系统多是麒麟系统&#xff0c;我的系统如下&#xff1a; arm64架构。…

ISSCC论文详解2024 34.2——双端口设计实现高面积利用的浮点/整数存算

本文将要介绍的文献主题为浮点存内计算&#xff0c;题目为《A 16nm 96Kb Integer/Floating-Point Dual-Mode-Gain-CellComputing-in-Memory Macro Achieving 73.3-163.3TOPS/W and 33.2-91.2TFLOPS/W for AI-Edge Devices》&#xff0c;下面本文将从文章基本信息与背景知识、创…

5.9k!一款清新好用的后台管理系统!【送源码】

今天给大家分享的开源项目是一个优雅清新后台管理系统——Soybean Admin。 简介 官方是这样介绍这个项目的&#xff1a; Soybean Admin 使用的是Vue3作为前端框架&#xff0c;TypeScript作为开发语言&#xff0c;同时还整合了NaiveUI组件库&#xff0c;使得系统具有高可用性和…

分页处理封装+分页查询题目列表

文章目录 1.sun-club-common封装分页1.com/sunxiansheng/subject/common/eneity/PageInfo.java2.com/sunxiansheng/subject/common/eneity/PageResult.java 2.sun-club-application-controller1.SubjectInfoDTO.java 继承PageInfo并新增字段2.SubjectController.java 3.sun-clu…

信息学奥赛初赛天天练-37-CSP-J2021阅读程序-质数、合数、约数、约数个数、约数和、增加质因数对约数个数、约数和的影响

PDF文档公众号回复关键字:20240627 质数 质数和合数是数学中对于自然数&#xff08;不包括0和1&#xff09;的两种重要分类 质数 (Prime Number) 一个大于1的自然数&#xff0c;除了1和它本身以外不再有其他因数的数称为质数 例如 2、3、5、7、11、13、17、19等都是质数 …

从RLHF到DPO再到TDPO,大模型对齐算法已经是「token-level」

在人工智能领域的发展过程中&#xff0c;对大语言模型&#xff08;LLM&#xff09;的控制与指导始终是核心挑战之一&#xff0c;旨在确保这些模型既强大又安全地服务于人类社会。早期的努力集中于通过人类反馈的强化学习方法&#xff08;RLHF&#xff09;来管理这些模型&#x…

【深度学习】python之人工智能应用篇--跨模态生成技术

跨模态生成技术概述 跨模态生成技术是一种将不同模态的数据&#xff08;如文本、图像、音频、视频等&#xff09;进行融合和转换的技术。其目标是通过将一个模态的数据作为输入&#xff0c;生成与之对应的另一个模态的输出。这种技术对于突破单一模态的局限性&#xff0c;提高…

数据库怎么同步

数据库要怎么同步呢&#xff0c;有很多方法&#xff0c;看你用什么数据库&#xff0c;如果是Sqlserver,你要数据库同步&#xff0c;那么可以使用自带的订阅发布&#xff0c;订阅发布应该是不错的方法&#xff0c;但是我上次要配置双向同步&#xff0c;它的对等发布好像没部署成…

力扣-和为K的子数组

题目-和为 K 的子数组 解法1&#xff1a;两层for循环 public class T560 {public static int subarraySum(int[] nums, int k) {int res 0;for (int i 0; i < nums.length; i) {int tempSum 0;for (int j i; j < nums.length; j) {tempSum nums[j];if (tempSum k)…

JetBrains IDEA 2024 无线重置免费 试用

注意&#xff1a;该文档只作为参考&#xff0c;若涉及到版权问题&#xff0c;请官方购买正版软件 Idea的使用&#xff0c;不是免费的。需要自己购买&#xff0c;获取证书才能使用&#xff0c;那么怎么无限试用30天呢&#xff1f; 免费试用操作&#xff1a; 文件删除 删除C:\…

揭秘数据合并的秘密:一文掌握一对一、多对一、多对多合并技巧与实战!

使用pd.merge()合并 类似 MySQL 中表和表直接的合并merge与concat的区别在于,merge需要依据某一共同的行或列来进行合并使用pd.merge()合并时,会自动根据两者相同column名称的那一列,作为key来进行合并每一列元素的顺序不要求一致1. 一对一合并 df1 = pd.DataFrame({"…

软考系统架构师系统工程与信息系统基础考点

软考系统架构师系统工程与信息系统基础考点 系统工程 定义&#xff1a;一种组织管理技术&#xff0c;一种现代的科学决策方法 目的&#xff1a;以最好的方式实现系统 目标&#xff1a;整体最优 意义&#xff1a;利用计算机为工具&#xff0c;对系统的结构、元素、信息和反馈…

2024黑盾杯复现赛题MISC部分

一、一个logo 一张png图片&#xff0c;查看颜色通道即可发现flag 二、 学会Office 最好用联想自带的excel工具查看&#xff0c;我用WPS打开未解出题目 这里会发现有隐藏信息 隐藏信息为宏加密 。去百度了解宏加密后&#xff0c;发现有俩个宏&#xff0c;一个加密一个解密 执…

LeetCode刷题之HOT100之课程表

吃完普通的食堂饭菜&#xff0c;回到实验室&#xff0c;继续做一道题&#xff01; 1、题目描述 2、逻辑分析 这道题涉及到图相关知识&#xff0c;应用到了拓扑排序。 题意解释 一共有 n 门课要上&#xff0c;编号为 0 ~ n-1。先决条件 [1, 0]&#xff0c;意思是必须先上课 0…

不止是只有维度建模,数据仓库还有Data Vault建模

引言 在数据仓库设计中&#xff0c;传统的星型和雪花型模型有着各自的优势和劣势。随着数据量的增大和数据源的多样化&#xff0c;Data Vault&#xff08;数据仓库&#xff09;建模方法逐渐受到关注和应用。Data Vault建模是一种灵活、可扩展、适应性强的建模方法&#xff0c;…

flash申请内存失败,导致老化问题解决

背景 在闪光灯初始化阶段客制化了一个buffer&#xff0c;下发到kernel的闪光灯驱动中用于保存读取闪光灯寄存器的值。功能测试都是正常的&#xff0c;但是一旦开始批量跑产线老化测试会有1/4500左右概率的后主摄拍照卡住。定位根因是闪光灯初始化失败&#xff0c;进一步原因就…

记一次ndk版本升级

概述 事情的起因是做一次android版本的业务迭代&#xff0c;发现程序crash掉了。经过分析&#xff0c;原因是中台部门对libc_shared.so库进行了升级&#xff0c;正好我们的业务也会用到libc_shared.so库&#xff0c;导致两个库版本冲突。具体crash的原因可以参见参考文献1。 …

Coldrage Dagger

剃刀高地【寒怒匕首 Coldrage Dagger】 2020.11.26.剃刀高地刷【寒怒匕首】-1_网络游戏热门视频 2020.11.26.剃刀高地刷【寒怒匕首】-2_网络游戏热门视频

【M365运维】Outlook和Teams里不显示用户的组织架构

【问题】 由于一些误操作&#xff0c;把用户账户禁用并重新启用后&#xff0c;发现在Outlook和Teams里无法查看用户的组织结构图了。如下图所示&#xff1a; - 在Outlook 里&#xff0c;用户标签页的组织一直显示“正在加载..."&#xff0c;成员身份也是“找不到任何组。…