小程序
小游戏
企业微信
微信支付
扫描小程序码分享
接口返回的经纬度和百度地图官网对于同一个位置返回的经纬度是一样的,但是展示在页面如果不转换成腾讯的经纬度他就不对。可是在图里这个位置配置的是百度啊为什么转腾讯经纬度才行?还有因为转了腾讯经纬度打开百度地图app位置就不对了(也不是所有人都不对,有的人位置非常准确有的人位置偏差很大)
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
可能是因为不同的地图服务商采用的经纬度标准不同,导致在展示位置时需要进行坐标转换。例如,百度地图采用的是BD-09坐标系,而腾讯地图采用的是GCJ-02坐标系。在使用不同的地图服务时,需要根据服务商所采用的坐标系进行相应的转换,以确保位置的准确性。至于打开百度地图app位置不对的问题,可能是由于不同用户所使用的设备或网络环境不同,导致获取位置信息的精确度有所差异。
常见的坐标系转换方法有以下几种:
需要根据具体的应用场景和服务商要求,选择相应的坐标系转换方法。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
因为百度的是墨卡托坐标系BD-09(百度坐标偏移标准,百度地图使用),腾讯的是国测局GCJ-02(中国坐标偏移标准,Google Map、高德、腾讯)的。需要做下转换。
//百度坐标转换成腾讯坐标 convert2TecentMap(lng, lat){ if (!lng || !lat) { return { lng: '', lat: '' } } var x_pi = 3.14159265358979324 * 3000.0 / 180.0 var x = lng - 0.0065 var y = lat - 0.006 var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi) var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi) var qqlng = z * Math.cos(theta) var qqlat = z * Math.sin(theta) return { lng: qqlng, lat: qqlat } }, //腾讯坐标转换成百度坐标 convert2BMap(lng, lat) { if (!lng || !lat){ return { lng: '', lat: '' } } var x_pi = 3.14159265358979324; var x = parseFloat(lng); var y = parseFloat(lat); var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi); var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi); var bmlng = (z * Math.cos(theta) + 0.0065).toFixed(5); var bmlat = (z * Math.sin(theta) + 0.006).toFixed(5); return { lng: bmlng, lat: bmlat } }
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
可能是因为不同的地图服务商采用的经纬度标准不同,导致在展示位置时需要进行坐标转换。例如,百度地图采用的是BD-09坐标系,而腾讯地图采用的是GCJ-02坐标系。在使用不同的地图服务时,需要根据服务商所采用的坐标系进行相应的转换,以确保位置的准确性。至于打开百度地图app位置不对的问题,可能是由于不同用户所使用的设备或网络环境不同,导致获取位置信息的精确度有所差异。
常见的坐标系转换方法有以下几种:
需要根据具体的应用场景和服务商要求,选择相应的坐标系转换方法。
因为百度的是墨卡托坐标系BD-09(百度坐标偏移标准,百度地图使用),腾讯的是国测局GCJ-02(中国坐标偏移标准,Google Map、高德、腾讯)的。需要做下转换。
//百度坐标转换成腾讯坐标 convert2TecentMap(lng, lat){ if (!lng || !lat) { return { lng: '', lat: '' } } var x_pi = 3.14159265358979324 * 3000.0 / 180.0 var x = lng - 0.0065 var y = lat - 0.006 var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi) var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi) var qqlng = z * Math.cos(theta) var qqlat = z * Math.sin(theta) return { lng: qqlng, lat: qqlat } }, //腾讯坐标转换成百度坐标 convert2BMap(lng, lat) { if (!lng || !lat){ return { lng: '', lat: '' } } var x_pi = 3.14159265358979324; var x = parseFloat(lng); var y = parseFloat(lat); var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi); var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi); var bmlng = (z * Math.cos(theta) + 0.0065).toFixed(5); var bmlat = (z * Math.sin(theta) + 0.006).toFixed(5); return { lng: bmlng, lat: bmlat } }