html百度地图中心点不正确,关于网页调用百度地图定位不准的问题?

本文介绍了网页中调用百度地图出现定位偏差的问题及其解决办法。首先建议检查环境和代码逻辑,然后使用百度坐标拾取器对比实际坐标。解决思路包括:1) 利用浏览器接口获取坐标后,通过百度地图的Convertor转换;2) 直接使用百度地图提供的封装定位API,注意设置偏移量校准。文中提供了相关代码示例和参考资料。
摘要由CSDN通过智能技术生成

请按照如下步骤排查你的代码:确保你的运行环境正常(直接使用百度地图看定位是否准确)以及代码没有基本逻辑错误

使用百度坐标拾取器拾取你的目标位置,同时输出你代码里获取的坐标,两相比较排查错误

考虑使用BMap.Convertor()进行坐标转换(参见下文第一种方式)

下面是关于这个问题的一些延伸

设备获取坐标转换到map后不准确的原因:首先由于国家的保密政策,真实地理坐标是无法获取的,你所能得到的坐标都是经过加密插件(国家要求)出来的,国内的这套加密后的坐标系统被称为火星坐标系

然后我们需要明白的是,这个火星坐标在调用第三方地图进行绘制的时候是需要进行坐标转换的,这是因为不同的地图服务提供方有着其自己的坐标解析方式甚至是自己的坐标系,所以通过GPS设备获取的坐标需要经过所使用地图服务的转换才能正确定位

如此我们就能得到解决思路:第一种方式为调用浏览器自身接口(NavigatorGeolocation.geolocation)后,再调用第三方map服务(百度地图等)提供的转换接口Convertor()转换坐标,最后进行绘制

第二种方式为使用第三方map服务提供的经过封装的定位API,一般都能做到获取位置后直接进行绘制(注意需要设置偏移量进行偏移校准,官网示例都有的)

相关案例关键代码:

我一般在项目里使用高德地图和百度地图,以此为例:第一种方式+百度地图:

//绘制

initBMap(BMap,position) {

let coords = position.coords;

let ggPoint = new BMap.Point(coords.longitude,coords.la

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值