位置: IT常识 - 正文

Vue 高德地图(@amap/amap-jsapi-loader)的基本使用:添加标记、POI关键字搜索、路线规划...(方法一)(vue 高德地图 窗体)

编辑:rootadmin
Vue 高德地图(@amap/amap-jsapi-loader)的基本使用:添加标记、POI关键字搜索、路线规划...(方法一) 高德地图的基本事件与使用前言: 引入并初始化渲染地图1、初始化地图2、地图鼠标点击事件3、添加标记、 移除标记点4、搜索服务——POI关键字搜索 [AMap.PlaceSearch]5、驾车路线规划服务5.1 可拖拽驾车路线规划 [AMap.DragRoute]5.2 途经点 (起点 终点 途经点 )路线规划 [AMap.Driving]5.3 位置经纬度 + 获取驾车规划数据 [AMap.Driving]5.4 规划结果 + 驾车路线绘制 [AMap.Driving]完整代码:前言: 引入并初始化渲染地图

推荐整理分享Vue 高德地图(@amap/amap-jsapi-loader)的基本使用:添加标记、POI关键字搜索、路线规划...(方法一)(vue 高德地图 窗体),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue 高德地图 ios 定位破解,vue 高德地图 ios 定位破解,vue 高德地图定位用壳子怎么实现,vue 高德地图添加标记点,添加不上,vue 高德地图添加标记点,添加不上,vue高德地图api,vue 高德地图api测量的封装,vue高德地图api,内容如对您有帮助,希望把文章链接给更多的朋友!

具体的步骤可以参考我的上一篇博客,有详细说明如何注册申请高德的Key、秘钥,初始化地图等等

vue-amap : vue-amap 基于 Vue 2.x 与高德的地图组件

高德官方介绍:地图 JS API

Web服务API简介

Vue 高德地图(@amap/amap-jsapi-loader)的基本使用:添加标记、POI关键字搜索、路线规划...(方法一)(vue 高德地图 窗体)

高德Web服务API向开发者提供HTTP接口,开发者可通过这些接口使用各类型的地理数据服务,返回结果支持JSON和XML格式。Web服务API对所有用户开放。使用本组服务之前,需要申请应用Key。不同类型用户可获取不同的数据访问能力。

1、初始化地图npm i @amap/amap-jsapi-loader --save <el-input v-model="location" id="tipinput"></el-input> <div id="map-container"></div> data() { return { location: "", // input的内容 map: null,// lnglat: [], // 经纬度数组 [lng,lat] auto: null, placeSearch: null, markers: [], driving: null, }; },initMap() { AMapLoader.load({ key: "XXXXXX", // 申请好的Web端开发者Key,首次调用 load 时必填 version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15 plugins: ["AMap.AutoComplete", "AMap.PlaceSearch", "AMap.Driving", "AMap.DragRoute"], }) .then((AMap) => { this.map = new AMap.Map("map-container", { // 设置地图容器id viewMode: "2D", // 是否为3D地图模式 zoom: 13, // 初始化地图级别 center: [114.268691, 30.401227], //中心点坐标 resizeEnable: true, });= // 监听鼠标点击事件 this.map.on("click", this.clickMapHandler); // 函数调用(写入你先所需要的事件函数) // this.searchMap(); // POI关键字搜索 // ...其他 }) .catch((e) => { console.log(e); });},2、地图鼠标点击事件// 监听地图点击事件 this.map.on("click", this.clickMapHandler);// 点击地图事件获取经纬度,并添加标记clickMapHandler(e) { this.lnglat = [e.lnglat.getLng(), e.lnglat.getLat()]; this.setMarker(this.lnglat);},3、添加标记、 移除标记点

// 添加标记setMarker(lnglat) { console.log("位置", lnglat); // lnglat=[经度,纬度] let marker = new AMap.Marker({ position: lnglat, }); marker.setMap(this.map); this.markers.push(marker); // 在data中记录标记点},// 删除之前后的标记点removeMarker() {// 判断是否存被标记的点,有--->移除 if (this.markers) { this.map.remove(this.markers); }},4、搜索服务——POI关键字搜索 [AMap.PlaceSearch]

添加插件:

plugins: [... , "AMap.PlaceSearch"],// 地图关键字查询searchMap() { // 搜索框自动完成类 this.auto = new AMap.AutoComplete({ input: "tipinput", }); //构造地点查询类 this.placeSearch = new AMap.PlaceSearch({ map: this.map, }); // 当选中某条搜索记录时触发 this.auto.on("select", this.selectSite);},//当选中某条搜索记录时触发selectSite(e) { this.lnglat = [e.poi.location.lng, e.poi.location.lat]; this.placeSearch.setCity(e.poi.adcode); this.placeSearch.search(e.poi.name); },5、驾车路线规划服务

5.1 可拖拽驾车路线规划 [AMap.DragRoute]

添加插件:

plugins: [... , "AMap.DragRoute"],// 绘制初始路径 mapDragRoute() { var path = []; path.push([114.332138, 30.53802]); path.push([114.317433, 30.55351]); path.push([114.308783, 30.560878]); mapDragRoute; var route = new AMap.DragRoute(this.map, path, AMap.DrivingPolicy.LEAST_FEE); //构造拖拽导航类 route.search(); //查询导航路径并开启拖拽导航 },5.2 途经点 (起点 终点 途经点 )路线规划 [AMap.Driving]

添加插件:

plugins: [... , "AMap.Driving"],drivingMap() { var driving = new AMap.Driving({ map: map, panel: "panel", }); // 根据起终点经纬度规划驾车导航路线 driving.search( new AMap.LngLat(114.332138, 30.53802), new AMap.LngLat(114.308783, 30.560878), { waypoints: [new AMap.LngLat(114.317433, 30.55351)], }, function (status, result) { // result 即是对应的驾车导航信息,相关数据结构文档请参考 https://lbs.amap.com/api/javascript-api/reference/route-search#m_DrivingResult if (status === "complete") { log.success("绘制驾车路线完成"); } else { log.error("获取驾车数据失败:" + result); } });5.3 位置经纬度 + 获取驾车规划数据 [AMap.Driving]准备一个panel div容器,放置导航数据,绑定一个唯一的ID <div id="panel"></div>构造路线导航类,据起终点经纬度规划驾车导航路线

drivingMapPanle() { // 配置参数 var drivingOption = { policy: AMap.DrivingPolicy.LEAST_TIME, // 其它policy参数请参考 https://lbs.amap.com/api/javascript-api/reference/route-search#m_DrivingPolicy ferry: 1, // 是否可以使用轮渡 // province: "鄂", // 车牌省份的汉字缩写 map: this.map, panel: "panel", // 绑定容器 id }; // 构造路线导航类 var driving = new AMap.Driving(drivingOption); // 根据起终点经纬度规划驾车导航路线 ver start = new AMap.LngLat(116.379028, 39.865042) var end = new AMap.LngLat(116.427281, 39.903719) driving.search(start , end , function (status, result) { if (status === "complete") { console.log("绘制驾车路线完成"); } else { console.log("获取驾车数据失败:" + result); } });},5.4 规划结果 + 驾车路线绘制 [AMap.Driving]

添加插件:

plugins: [... , "AMap.Driving"],drivingMap2() { let that = this; var driving = new AMap.Driving({ // 驾车路线规划策略,AMap.DrivingPolicy.LEAST_TIME是最快捷模式,还有其他几种方式见Api文档 policy: AMap.DrivingPolicy.LEAST_TIME, }); //起、终点 var start_xy = new AMap.LngLat(116.379028, 39.865042); // 起点的经纬度 var end_xy = new AMap.LngLat(116.427281, 39.903719); // 终点的经纬度 // 根据起终点经纬度规划驾车导航路线 driving.search(start_xy, end_xy, function (status, result) { console.log(start_xy, end_xy, status, result); if (status === "complete") { if (result.routes && result.routes.length) { console.log(result.routes[0]); // 绘制第一条路线,也可以按需求绘制其它几条路线 var path = that.parseRouteToPath(result.routes[0]); var startMarker = new AMap.Marker({ position: path[0], icon: "https://webapi.amap.com/theme/v1.3/markers/n/start.png", map: that.map, }); var endMarker = new AMap.Marker({ position: path[path.length - 1], icon: "https://www.yuucn.com/wp-content/uploads/2023/04/1682215947-072cc26b66b3f5f.png", map: that.map, }); var routeLine = new AMap.Polyline({ path: path, isOutline: true, outlineColor: "#ffeeee", borderWeight: 2, strokeWeight: 5, strokeColor: "#0091ff", lineJoin: "round", }); routeLine.setMap(that.map); // 调整视野达到最佳显示区域 that.map.setFitView([startMarker, endMarker, routeLine]); console.log("绘制驾车路线完成"); } } else { console.log("获取驾车数据失败:" + result); } });},完整代码:<template> <div class="content"> <div class="search-box"> <div class="label">关键字搜索</div> <el-input v-model="input" placeholder="请输入内容" id="tipinput"></el-input> </div> <div id="map-container"></div> <div id="panel"></div> </div></template><script>import AMapLoader from "@amap/amap-jsapi-loader";window._AMapSecurityConfig = { // 设置安全密钥 securityJsCode: "XXXXX",};export default { props: { iptId: { type: String, }, }, data() { return { input: "", map: null, lnglat: [], // [lng,lat] [longitude,latitude] auto: null, placeSearch: null, markers: [], driving: null, }; }, mounted() { this.initMap(); }, created() { this.initMap(); }, methods: { initMap() { AMapLoader.load({ key: "99d901020b4dcf6b08aa3bcdb4ab386d", // 申请好的Web端开发者Key,首次调用 load 时必填 version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15 plugins: ["AMap.AutoComplete", "AMap.PlaceSearch", "AMap.Driving", "AMap.DragRoute"], }) .then((AMap) => { console.log(AMap); this.map = new AMap.Map("map-container", { // 设置地图容器id viewMode: "2D", // 是否为3D地图模式 zoom: 13, // 初始化地图级别 center: [114.268691, 30.401227], //中心点坐标 resizeEnable: true, }); //规划结果 + 驾车路线绘制 // this.drivingMap(); // 可拖拽驾车路线规划 绘制初始路径 // this.mapDragRoute(); this.drivingMapPanle(); // 关键字查询 this.searchMap(); // 监听鼠标点击事件 this.map.on("click", this.clickMapHandler); }) .catch((e) => { console.log(e); }); }, // 绘制初始路径 mapDragRoute() { var path = []; path.push([114.332138, 30.53802]); path.push([114.317433, 30.55351]); path.push([114.308783, 30.560878]); var route = new AMap.DragRoute(this.map, path, AMap.DrivingPolicy.LEAST_FEE); //构造拖拽导航类 route.search(); //查询导航路径并开启拖拽导航 }, drivingMap() { var driving = new AMap.Driving({ map: this.map, // panel: "panel", }); // 根据起终点经纬度规划驾车导航路线 driving.search( new AMap.LngLat(114.332138, 30.53802), new AMap.LngLat(114.308783, 30.560878), { waypoints: [new AMap.LngLat(114.317433, 30.55351)], }, function (status, result) { // result 即是对应的驾车导航信息,相关数据结构文档请参考 https://lbs.amap.com/api/javascript-api/reference/route-search#m_DrivingResult if (status === "complete") { console.log("绘制驾车路线完成"); } else { console.log("获取驾车数据失败:" + result); } }); }, drivingMapPanle() { // 配置参数 var drivingOption = { policy: AMap.DrivingPolicy.LEAST_TIME, // 其它policy参数请参考 https://lbs.amap.com/api/javascript-api/reference/route-search#m_DrivingPolicy ferry: 1, // 是否可以使用轮渡 // province: "京", // 车牌省份的汉字缩写 map: this.map, panel: "panel", }; // 构造路线导航类 var driving = new AMap.Driving(drivingOption); // 根据起终点经纬度规划驾车导航路线 driving.search(new AMap.LngLat(116.379028, 39.865042), new AMap.LngLat(116.427281, 39.903719), function (status, result) { if (status === "complete") { log.success("绘制驾车路线完成"); } else { log.error("获取驾车数据失败:" + result); } }); }, // 点击地图事件 clickMapHandler(e) { this.lnglat = [e.lnglat.getLng(), e.lnglat.getLat()]; this.setMarker(this.lnglat); }, // 关键字查询 searchMap() { // 搜索框自动完成类 this.auto = new AMap.AutoComplete({ input: "tipinput", // 使用联想输入的input的id }); //构造地点查询类 this.placeSearch = new AMap.PlaceSearch({ map: this.map, }); // 当选中某条搜索记录时触发 this.auto.on("select", this.selectSite); }, //当选中某条搜索记录时触发 selectSite(e) { console.log("e", e); this.lnglat = [e.poi.location.lng, e.poi.location.lat]; this.placeSearch.setCity(e.poi.adcode); this.placeSearch.search(e.poi.name); //关键字查询 }, // 添加标记 setMarker(lnglat) { this.removeMarker(); console.log("位置", lnglat); let marker = new AMap.Marker({ position: lnglat, }); marker.setMap(this.map); this.markers.push(marker); }, // 删除之前后的标记点 removeMarker() { if (this.markers) { this.map.remove(this.markers); } }, },};</script><style lang="less" scoped>.search-box { display: flex; justify-content: flex-start; align-items: center; height: 50px; .label { width: 100px; }}.content { position: relative;}#panel { position: absolute; top: 50px; right: 20px;}#map-container { overflow: hidden; width: 100%; height: 800px; margin: 0;}</style>
本文链接地址:https://www.jiuchutong.com/zhishi/278705.html 转载请保留说明!

上一篇:fsm32.exe是什么进程 有什么作用 fsm32进程查询

下一篇:hpztsb09.exe是什么进程 有什么作用 hpztsb09进程查询(hppusg.exe是什么进程)

  • 怎么用蓝牙耳机连接电脑(电脑怎么用蓝牙耳机)

    怎么用蓝牙耳机连接电脑(电脑怎么用蓝牙耳机)

  • vivo?x27充电提示音在哪里设置(vivox23充电一直有显示)

    vivo?x27充电提示音在哪里设置(vivox23充电一直有显示)

  • 华为p30手机防水等级是多少(华为P30手机防水性能怎么样)

    华为p30手机防水等级是多少(华为P30手机防水性能怎么样)

  • 快手有赞退款关闭了怎么在申请退款(快手有赞订单退款中收到货了怎么办)

    快手有赞退款关闭了怎么在申请退款(快手有赞订单退款中收到货了怎么办)

  • b站漫画漫读券怎么用(b站漫画漫读券是永久解锁吗)

    b站漫画漫读券怎么用(b站漫画漫读券是永久解锁吗)

  • 72v六块电瓶充多长时间(72v六块电瓶充多少度电)

    72v六块电瓶充多长时间(72v六块电瓶充多少度电)

  • 手机烧屏还能用几年(如何防止手机烧屏)

    手机烧屏还能用几年(如何防止手机烧屏)

  • 苹果7是双卡双待吗(苹果7双卡双待怎么设置)

    苹果7是双卡双待吗(苹果7双卡双待怎么设置)

  • vivo x20什么时候上的市(vivo x20什么时候发布的)

    vivo x20什么时候上的市(vivo x20什么时候发布的)

  • 苹果手机能定位吗(苹果手机能定位vivo手机吗)

    苹果手机能定位吗(苹果手机能定位vivo手机吗)

  • 手机主板坏了能修吗(手机主板坏了能自动修复吗)

    手机主板坏了能修吗(手机主板坏了能自动修复吗)

  • 苹果id移除设备后别人手机会怎样(苹果id移除设备对方知道吗)

    苹果id移除设备后别人手机会怎样(苹果id移除设备对方知道吗)

  • 苹果11微信视频为啥没有美颜(苹果11微信视频美颜怎么设置方法)

    苹果11微信视频为啥没有美颜(苹果11微信视频美颜怎么设置方法)

  • 淘宝已处理的评价是怎么回事(淘宝已处理的评价多久清零)

    淘宝已处理的评价是怎么回事(淘宝已处理的评价多久清零)

  • 投屏能看弹幕吗(投屏能看弹幕吗手机)

    投屏能看弹幕吗(投屏能看弹幕吗手机)

  • oppoa系列和k系列区别(oppoa系列和k系列哪个好)

    oppoa系列和k系列区别(oppoa系列和k系列哪个好)

  • 苹果7要不要升级13

    苹果7要不要升级13

  • 老年手机快速拨号设置(老年手机快速拨号键在哪里)

    老年手机快速拨号设置(老年手机快速拨号键在哪里)

  • 乐视怎么升级版本(乐视怎么升级版本电视)

    乐视怎么升级版本(乐视怎么升级版本电视)

  • ios13怎么打开电池百分比(ios13怎么开启电池百分比)

    ios13怎么打开电池百分比(ios13怎么开启电池百分比)

  • volte通话要不要开启

    volte通话要不要开启

  • mate10怎么去小圆点(华为mate10怎么关闭小圆)

    mate10怎么去小圆点(华为mate10怎么关闭小圆)

  • 快手浏览设置在哪(快手浏览设置在哪里打开)

    快手浏览设置在哪(快手浏览设置在哪里打开)

  • oee计算公式是什么(ope的计算公式)

    oee计算公式是什么(ope的计算公式)

  • ios微信如何按标签群发(苹果微信怎么弄浮标)

    ios微信如何按标签群发(苹果微信怎么弄浮标)

  • 京东账号是什么(怎么查看自己的京东账号)

    京东账号是什么(怎么查看自己的京东账号)

  • 浏览器防火墙怎么设置(浏览器防火墙怎么关手机模式)

    浏览器防火墙怎么设置(浏览器防火墙怎么关手机模式)

  • 员工如何用滴滴企业版(员工用企业滴滴,公司知道行程吗)

    员工如何用滴滴企业版(员工用企业滴滴,公司知道行程吗)

  • gif太大怎么压缩变小(gif太大怎么压缩变小mac)

    gif太大怎么压缩变小(gif太大怎么压缩变小mac)

  • 医学图像处理的SCI期刊和顶会(医学图像处理的步骤一是设计)

    医学图像处理的SCI期刊和顶会(医学图像处理的步骤一是设计)

  • 小规模纳税人销售农产品税率是多少
  • 一般纳税人抵扣小规模期间的专票怎么解决
  • 核定税种可以在哪里申报
  • 小企业外币交易的类型有哪些
  • 生产成本月末有余额怎么结账
  • 车险 保险金额
  • 销售人员购买的产品
  • 企业转让固定资产使用权的收益应当属于
  • 机械租赁带司机税目
  • 证券交易印花税是多少
  • 企业自建房产提成多少
  • 发票收到以后必须查验吗
  • 销售原材料收到商业承兑汇票会计分录
  • 样机销售是什么意思
  • 股东变动及股东情况章节
  • 折价收购股权会计分录
  • 电子产品发票税是多少
  • 同一控制下的企业合并的会计核算方法
  • 企业未成立工会需要交工会经费吗
  • 应付股利会计分录例题
  • 哪些行业需要缴纳水利建设基金
  • u盘中毒症状
  • 查补以前年度税款账务处理
  • 酒店行业存货周转率多少合适
  • el-table-column formatter
  • 商业汇票的承兑银行必须具备下列条件
  • idea如何导入sql文件
  • ChatGPT进阶-提示词中文版
  • imx6ul开源项目
  • 场外期权怎么交税
  • 门诊收费票据能作为报销凭证吗
  • 电子发票找不到了可以找回吗
  • 公司注销剩余的发票怎么作废
  • 申报表跟账不一致,如何调整账
  • 织梦二次开发教程
  • 小规模纳税人减按1%征收率征收增值税
  • 小规模开票多少成一般纳税人
  • 固定资产盘盈为什么计入管理费用
  • 固定资产折旧加计扣除最新政策
  • sqlserver存储过程返回多个结果集
  • 暂估入库的会计分录怎么写
  • 个体户没有税务登记怎么开发票
  • 向投资者分配现金股利的会计分录?
  • 收银电脑怎么录商品
  • 餐饮会计怎么做账
  • 员工工资计入成本怎么做账
  • 损益类账户借贷方向增减
  • 开票系统的维护与保养
  • 进项税额转出还要交税吗
  • 青苗赔偿管理办法
  • 电子承兑追索清偿的顺序
  • 生产能量等于什么
  • 个人境外投资限制
  • 营业外支出明细科目有哪些
  • mysql使用语句
  • WIN8系统安装教程
  • apt-get update错误
  • macos sierra版本10.12.6升级
  • centos8 apache
  • 电脑重做系统后打印机不能打印
  • win7系统重装后u盘读不出来
  • cs1.6 linux
  • opengl 位图
  • android 自定义view onlayout
  • Unity Spine Skeleton Animation 2D骨骼动画 For Game 介绍
  • 深入理解linux内核第三版
  • 纵向导航页面
  • cocos-2dx
  • 安卓手机画画触屏笔推荐
  • 批处理之家官网
  • AppWidgetProvider使用介绍
  • js类的实现
  • python抓取数据代码
  • js全局变量怎么定义
  • javascript面向对象编程指南
  • 江苏国税电子税局
  • 银行内部有遴选吗知乎
  • 汉中税务大厅电话是多少
  • 城市维护建设税怎么算
  • 广州代理记账公司地址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设