美文网首页VUE
百度地图 定位不准 获取的 位置 不准确

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

作者: cain07 | 来源:发表于2021-07-02 17:24 被阅读0次

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

    看看解决的方法?

    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 以后 地图全屏了 这样地图高度不变 这样不管 放大缩小 都很准确 解决了这个问题

    相关文章

      网友评论

        本文标题:百度地图 定位不准 获取的 位置 不准确

        本文链接:https://www.haomeiwen.com/subject/gxtrultx.html