VUE

百度地图 定位不准 获取的 位置 不准确

2021-07-02  本文已影响0人  cain07

百度地图 放大 缩小已经 获取的 位置 不准确

看看解决的方法?

  1. 像素转 坐标 结合 缩放级别 看看怎么做

[经纬度坐标转换为像素坐标原理]

// 投影实例
const projection = map.getMapType().getProjection()

// 地图div宽高
const box = map.getSize()
const zoom = window.Math.pow(2, 18 - map.getZoom())

// 中心坐标 转 平面坐标
const center = projection.lngLatToPoint(map.getCenter())

// 测试坐标 转 平面坐标
const point = projection.lngLatToPoint({ lng: 118.816832, lat: 31.981216 })

// 像素坐标
const x = Math.round((point.x - center.x) / zoom + box.width / 2)
const y = Math.round((center.y - point.y) / zoom + box.height / 2)

// 测试下 与pointToPixel转换是相同的
const pixel = map.pointToPixel({ lng: 118.816832, lat: 31.981216 })
console.log(pixel, x, y)

经纬度 => 墨卡托投影坐标 => 相对中心投影坐标 => 根据地图缩放级别调整 => 最后加上地图窗口宽高

2. 像素坐标转换为经纬度坐标

3.

最后认真比对 是 地图拖动 中心大头针不动 大头针取得是 地图中间的坐标
但是 地图的高度变化了 大头针的位置没变 所有不对

修改为 地图absolute 以后 地图全屏了 这样地图高度不变 这样不管 放大缩小 都很准确 解决了这个问题

上一篇下一篇

猜你喜欢

热点阅读