给我用js写一个高德坐标系转百度坐标系的方法
时间: 2024-09-14 13:08:01 浏览: 43
在JavaScript中,可以使用高德地图API提供的`gcj02to_bd09`函数将GCJ02(Google China Joint Coordinate System,谷歌中国坐标系统)坐标转换为BD09(百度地图坐标系统)。这是一个简单的示例:
```javascript
function gcj02ToBd09(gcjLon, gcjLat) {
var z = Math.sqrt(1 - earth_radius_squared / (Math.pow(Math.sin(gcjLat * Math.PI / 180), 2)));
var bdLon = ((gcjLon + 180) * Math.PI) / 180;
var bdLat = Math.atan((z * Math.sin(gcjLat * Math.PI / 180)) / (earth_radius + z * Math.cos(gcjLat * Math.PI / 180))) * 180 / Math.PI;
// 高德的偏移量
var dLon = bdLon - 0.0065;
var dLat = bdLat - 0.006;
return [bdLon + dLon, bdLat + dLat];
}
// 使用示例
var gcjCoord = [116.404, 39.915]; // GCJ02坐标
var bdCoord = gcj02ToBd09(gcjCoord[0], gcjCoord[1]);
console.log(bdCoord); // 输出转换后的百度坐标
```
这个函数假设地球半径`earth_radius`约为6371公里。注意,实际应用中可能需要引入高德地图的具体库来获取这个值。
阅读全文