谷歌地图坐标转换为百度地图坐标

在开发地图前要先了解好WGS84、GCJ02、BD09相互之间的原理。例如谷歌地图在国外是不需要进行转换,但是谷歌转为百度地图需要从WGS84转为BD09。
第一步先判断是否为国外坐标:
function out_of_china(lng, lat) {
var lat = +lat;
var lng = +lng;
// 纬度3.86到53.55,经度73.66~135.05
return !(lng > 73.66 && lng < 135.05 && lat > 3.86 && lat < 53.55);
}
第二步则使用代码进行转换:
var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
var PI = 3.1415926535897932384626;
var a = 6378245.0;
var ee = 0.00669342162296594323;
function wgs84tobd09(lng, lat) {
if(out_of_china(lng, lat)){
return [lng, lat]
}else{
var lat = +lat;
var lng = +lng;
var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
var bd_lng = z * Math.cos(theta) + 0.0065;
var bd_lat = z * Math.sin(theta) + 0.006;
return [bd_lng, bd_lat]
}
}

本文章只对谷歌坐标转为百度地图坐标。因为我数据库存的是谷歌地图的坐标系。如果你数据库存的是百度地图坐标的话,则需要自己参考一下网上资料。反正理解了都不难。

你可能感兴趣的:(java,前端,java,前端,javascript)