百度地图西经打点,pixel和point不一致bug, 如何解决的?

百度地图西经打点,pixel和point不一致。

对于负数经度打点bug:

const bjPoint = new window.BMap.Point(116.23, 39.54)

map.centerAndZoom(chinaCenterPoint, 3)

const point = new window.BMap.Point(-77.02, 39.91)

const marker = new window.BMap.Marker(point, { title: ‘美国’})

map.addOverlay(marker)

地图是圆形的, 左右两边都有美国。 此时地图打的marker点是中国的右边。

const pixel = map.pointToPixel(point)

此时获取到的像素点是负数, 在中国的左边。

尝试方案
自定义图层,全屏的canvas图层, 通过pointToPixel方法获取到像素点,通过canvas drawImage方法画了一个图标, 可以保持像素点和经纬度的统一。
在拖动地图时,重新通过pointToPixel方法获取到像素点,重新绘制。

请问有更好的解决方法吗?

阅读 2.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题