wgs84: gps获取出来的坐标就是wgs84标准的,但在国内不允许在互联网上直接使用这种坐标(应该是出于某些安全问题),所以就有了加密后的坐标baidu09.
“国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。” -- 百度地图常见api中是这么回答的。
现有的标准好像有好多:baidu, google, 搜狗, soso, 基本自己实现地图的都有自己的一套标准。
但要用百度地图的话必须要转换,搜了一下大概有这几种方式:
1. 通过web接口转换:http://blog.yyable.com/?p=342
2. 通过公式转换http://blog.yyable.com/?cat=9(只是在google和baidu间转, 没有gps和baidu转的)
3. 如果使用的是android的百度地图api的话里面有现成的转换类:
[b]不过要注意的是:这个方法必须在百度地图启动后才能使用(BMapManager.start()后), 否则将原样放回; 好像它内部是通过socket的方式请求服务器转换的. [/b]
相关链接:
[url]http://blog.yyable.com/?cat=9[/url]
[url]http://blog.yyable.com/?p=342[/url]
[url]http://www.cnblogs.com/jz1108/archive/2011/10/11/2207245.html[/url]
[url]http://www.biaodianfu.com/baidu-ditu-api-map-coordinate.html?replytocom=366[/url]
[url]http://www.cnblogs.com/yixinliu/archive/2012/07/26/2609631.html[/url]
base64编码, 解码工具[url]http://www.baidu.com/s?wd=base64+%E5%9C%A8%E7%BA%BF&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=14&rsv_sug=0&rsv_sug1=7&rsv_sug4=921[/url]
“国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。” -- 百度地图常见api中是这么回答的。
现有的标准好像有好多:baidu, google, 搜狗, soso, 基本自己实现地图的都有自己的一套标准。
但要用百度地图的话必须要转换,搜了一下大概有这几种方式:
1. 通过web接口转换:http://blog.yyable.com/?p=342
2. 通过公式转换http://blog.yyable.com/?cat=9(只是在google和baidu间转, 没有gps和baidu转的)
3. 如果使用的是android的百度地图api的话里面有现成的转换类:
/***
* <p> 将坐标系统转换为baidu09加密的坐标系统. </p>
* @param geoPt 要转换的坐标
* @param coordType 当前坐标的类型
* @return 转换后的baidu09坐标
*/
public static GeoPoint convertToBaidu09Coord(GeoPoint geoPt, int coordType) {
GeoPoint retGeoPt;
Bundle bundle;
switch (coordType) {
case MKLocationManager.MK_COORDINATE_WGS84:
bundle = CoordinateConvert.fromWgs84ToBaidu(geoPt);
retGeoPt = CoordinateConvert.bundleDecode(bundle);
break;
case MKLocationManager.MK_COORDINATE_GCJ:
bundle = CoordinateConvert.fromGcjToBaidu(geoPt);
retGeoPt = CoordinateConvert.bundleDecode(bundle);
break;
case MKLocationManager.MK_COORDINATE_BAIDU09:
default:
retGeoPt = geoPt;
break;
}
return retGeoPt;
}
[b]不过要注意的是:这个方法必须在百度地图启动后才能使用(BMapManager.start()后), 否则将原样放回; 好像它内部是通过socket的方式请求服务器转换的. [/b]
相关链接:
[url]http://blog.yyable.com/?cat=9[/url]
[url]http://blog.yyable.com/?p=342[/url]
[url]http://www.cnblogs.com/jz1108/archive/2011/10/11/2207245.html[/url]
[url]http://www.biaodianfu.com/baidu-ditu-api-map-coordinate.html?replytocom=366[/url]
[url]http://www.cnblogs.com/yixinliu/archive/2012/07/26/2609631.html[/url]
base64编码, 解码工具[url]http://www.baidu.com/s?wd=base64+%E5%9C%A8%E7%BA%BF&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=14&rsv_sug=0&rsv_sug1=7&rsv_sug4=921[/url]