百度地图 定位不准 获取的 位置 不准确
2021-07-02 本文已影响0人
cain07
百度地图 放大 缩小已经 获取的 位置 不准确
看看解决的方法?
- 像素转 坐标 结合 缩放级别 看看怎么做
[经纬度坐标转换为像素坐标原理]
// 投影实例
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 以后 地图全屏了 这样地图高度不变 这样不管 放大缩小 都很准确 解决了这个问题