百度地图西经打点,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方法获取到像素点,重新绘制。
请问有更好的解决方法吗?