2025年高德地图标记点要注意的问题

高德地图标记点要注意的问题高德地图标记点要注意的问题 当打开高德地图的时候 使用 API 进行获取自身位置坐标 然后再进行 setCenter 设置中心是这样的 直接看代码 initMap 初始化地图 map new AMap Map map gaode resizeEnable true zoom 13 初始化中心点

高德地图标记点要注意的问题

当打开高德地图的时候,使用API进行获取自身位置坐标,然后再进行setCenter设置中心是这样的。
直接看代码:
initMap () { 

// 初始化地图
map = new AMap.Map('map-gaode', {

resizeEnable: true,
zoom:13
})

// 初始化中心点

// 1、无坐标 有详细地址时
let sure = this.initAddress()
if(sure){

this.clickSearch()

// 2、无详细地址
}else{

var nowPoint = map.getCenter()
if(this.mapCenter){

console.log(this.mapCenter,nowPoint)
nowPoint = this.mapCenter
}
this.setCenter(nowPoint) //这里这里 打印
this.setAddress(nowPoint)
}


// 地图侧边栏
AMap.plugin('AMap.ToolBar',function(){

//加载工具条
var toolbar = new AMap.ToolBar({

position:'LB'
});
map.addControl(toolbar)
})

// 绑定点击事件
let that = this
var clickListener = AMap.event.addListener(map, "click", function(e) {

var {
lng, lat} = e.lnglat
// 设置中心点
that.setCenter(e.lnglat)

//根据经纬度地址
that.setAddress(e.lnglat)
})
}
打印获取的坐标结构如下:
对应的setCenter方法如下:
setCenter(location){ 

map.setCenter([location.lng, location.lat])
map.clearMap()
new AMap.Marker({

position: location,
map: map
})
}
看似没有任何使用上的问题,但是当我想使用自己手动输入坐标进行设置的时候,那么我能传到这个方法的只有经纬度而已,没有上面截图的像素值。就会出现报错。
正确写法如下:
 setCenter(location){ 

map.setCenter([location.lng, location.lat])
map.clearMap()
new AMap.Marker({

position: new AMap.LngLat(location.lng, location.lat), //标记点用这个方法比较好 不然缺少像素位置值
map: map
})
}
就不会报错了:
编程小号
上一篇 2025-02-28 13:06
下一篇 2025-03-02 07:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/139317.html