vue高德地图实现关键字搜索

高德地图准备工作

安装amap
cnpm国内安装比npm更快些;

cnpm install vue-amap --save

main.js
配置amap的基础配置项

import GaodeMap from 'vue-amap'
Vue.use(GaodeMap)
GaodeMap.initAMapApiLoader({
   key: 'testkey', // 这里填写你申请的key
   plugin: ['AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PlaceSearch', 'AMap.Geolocation', 'AMap.Geocoder'], // 使用到的工具
   v: '1.4.4', // 版本号
   uiVersion: '1.0'
})

.eslintrc.js
插入全局变量防止报错,如下代码

globals: {
   AMap: true,
   AMapUI: true
}

关键字搜索

HTML部分代码

<el-amap ref="map" style="width:500px;height:360px" />
<div id="address-list" style="width:200px;height:300px" />

JavaScript部分代码

var map = this.$refs.map.$amap
AMap.service(['AMap.PlaceSearch'], () => {
   var placeSearch = new AMap.PlaceSearch({ // 构造地点查询类
   	pageSize: 5, // 单页显示结果条数
   	pageIndex: 1, // 页码
   	citylimit: true, // 是否强制限制在设置的城市内搜索
   	map: map, // 展现结果的地图实例
   	panel: 'address-list', // 结果列表将在此容器中进行展示。
   	autoFitView: true // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围
   })
   // 关键字查询
   placeSearch.search(this.form.address, (status, result) => {
   	// 查询成功时,result即对应匹配的POI信息
   })
   // 监听选中节点事件
   AMap.event.addListener(placeSearch, 'selectChanged', (SelectChangeEvent) => {
   	// 获取节点信息自行处理逻辑代码
   	this.mark = SelectChangeEvent.selected.data
   })
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实时路线轨迹的实现需要结合高德地图的定位功能和绘制功能。 1. 首先,在Vue中引入高德地图JavaScript API,并创建地图对象: ```javascript import AMapLoader from '@amap/amap-jsapi-loader' // 创建地图对象 let map = null AMapLoader.load({ key: 'your amap key', version: '2.0', plugins: ['AMap.Geolocation'] }).then((AMap) => { map = new AMap.Map('map-container') }) ``` 2. 调用高德地图的定位功能获取当前位置: ```javascript let geolocation = null // 创建定位对象 AMapLoader.load({ key: 'your amap key', version: '2.0', plugins: ['AMap.Geolocation'] }).then((AMap) => { geolocation = new AMap.Geolocation({ enableHighAccuracy: true, // 是否使用高精度定位,默认为false timeout: 10000, // 超过10秒后停止定位,默认为无穷大 buttonOffset: new AMap.Pixel(10, 20), // 定位按钮的位置偏移量 }) map.addControl(geolocation) // 获取当前位置 geolocation.getCurrentPosition((status, result) => { if (status === 'complete') { // 定位成功,将地图中心设置为当前位置 map.setCenter(result.position) } else { // 定位失败 console.log('定位失败', result.message) } }) }) ``` 3. 在地图上绘制路线轨迹: ```javascript let path = [] // 路线轨迹点集合 // 添加路线轨迹 let polyline = new AMap.Polyline({ path, strokeColor: '#00a1fe', strokeWeight: 5, }) polyline.setMap(map) // 更新路线轨迹 function updatePath(newPoint) { path.push(newPoint) polyline.setPath(path) } ``` 4. 实时更新路线轨迹: ```javascript // 开启定时器,每隔1秒更新路线轨迹 setInterval(() => { // 获取当前位置 geolocation.getCurrentPosition((status, result) => { if (status === 'complete') { // 定位成功,更新路线轨迹 updatePath(result.position) } else { // 定位失败 console.log('定位失败', result.message) } }) }, 1000) ``` 以上就是Vue高德地图实现实时路线轨迹的基本流程,需要注意的是,高德地图JavaScript API使用了Promise异步机制,需要注意回调函数的执行时机。另外,在实际应用中,还需要结合后端接口获取历史路线轨迹数据,并将其加载到地图上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值