百度经纬度和google经纬度转换测试
2016-05-23 22:54
302 查看
根据网上找的的转换公式进行了一下测试,感觉转换结果可以接受。
以天安门前外金水桥的中心点为测试点。
百度经纬度转换为谷歌经纬度的结果:
谷歌地图显示该点的经纬度:
百度地图中,最大级别就那么大了,点击选择中心点的误差可能稍大一些。
源码:
以天安门前外金水桥的中心点为测试点。
百度经纬度转换为谷歌经纬度的结果:
谷歌地图显示该点的经纬度:
百度地图中,最大级别就那么大了,点击选择中心点的误差可能稍大一些。
源码:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;} </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.5&ak=D3e6ac29a69cf34da023250f6c322f7d"></script> <script type="text/javascript" src="http://api.map.baidu.com/library/AreaRestriction/1.2/src/AreaRestriction_min.js"></script> <title>图片覆盖物</title> </head> <body> <div id="allmap"></div> </body> </html> <script type="text/javascript"> var x_pi = 3.14159265358979324 * 3000.0 / 180.0; var zooma; // 百度地图API功能 var map = new BMap.Map("allmap"); /// <summary> /// 中国正常坐标系GCJ02协议的坐标,转到 百度地图对应的 BD09 协议坐标 /// </summary> /// <param name="lat">维度</param> /// <param name="lng">经度</param> function Convert_GCJ02_To_BD09(lat,lng) { var x = lng; var y = 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); lng = z * Math.cos(theta) + 0.0065; lat = z * Math.sin(theta) + 0.006; return lng + ':' + lat; } /// <summary> /// 百度地图对应的 BD09 协议坐标,转到 中国正常坐标系GCJ02协议的坐标 /// </summary> /// <param name="lat">维度</param> /// <param name="lng">经度</param> function Convert_BD09_To_GCJ02(lat, lng) { //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); lng = z * Math.cos(theta); lat = z * Math.sin(theta); return lng + ' ' + lat; } map.centerAndZoom(new BMap.Point(116.430154,39.970289), 14); // 114.443445,30.482447 map.addControl(new BMap.NavigationControl()); //添加默认缩放平移控件 map.enableScrollWheelZoom(); var tileLayer2 = new BMap.TileLayer({isTransparentPng: true}); tileLayer2.getTilesUrl = function(tileCoord, zoom) { zooma = zoom; var x = tileCoord.x; var y = tileCoord.y; return "http://developer.baidu.com/map/jsdemo/img/border.png"; } map.addTileLayer(tileLayer2); function showInfo(e){ var projection = this.getMapType().getProjection(); var lngLat = e.point; var lngLatStr = "经纬度:" + lngLat.lng + ", " + lngLat.lat + ";级别:" + zooma; //alert(lngLatStr); alert('百度经纬度转换为谷歌经纬度的结果:' + Convert_BD09_To_GCJ02(lngLat.lat, lngLat.lng)); var worldCoordinate = projection.lngLatToPoint(lngLat); var worldCoordStr = "平面坐标:" + worldCoordinate.x + ", " + worldCoordinate.y; //alert(worldCoordStr); window.clipboardData.setData('text', "jwd:" + lngLat.lng + "," + lngLat.lat + ";pmzb:" + worldCoordinate.x + "," + worldCoordinate.y); //alert("jwd:" + lngLat.lng + "," + lngLat.lat + ";pmzb:" + worldCoordinate.x + "," + worldCoordinate.y); var pixelCoordinate = new BMap.Pixel(Math.floor(worldCoordinate.x * Math.pow(2, this.getZoom() - 18)), Math.floor(worldCoordinate.y * Math.pow(2, this.getZoom() - 18))); var pixelCoordStr = "像素坐标:" + pixelCoordinate.x + ", " + pixelCoordinate.y; var tileCoordinate = new BMap.Pixel(Math.floor(pixelCoordinate.x / 256), Math.floor(pixelCoordinate.y / 256)); var tileCoordStr = "图块坐标:" + tileCoordinate.x + ", " + tileCoordinate.y; //window.clipboardData.setData('text', e.point.lng + ", " + e.point.lat); //alert( Math.sqrt(5)); //alert(e.point.lng + ", " + e.point.lat); } map.addEventListener("click", showInfo); </script>
相关文章推荐
- Google地图更新澳洲航拍图
- 谷歌地图支持街景地图
- 谷歌巴西街景地图发现尸体照片
- C#开发Android百度地图手机应用程序(多地图展示)
- 百度地图给map添加右键菜单(判断是否为marker)
- 基于OL2实现百度地图ABCD marker的效果
- JS中引用百度地图并将百度地图的logo和信息去掉
- js调用百度地图及调用百度地图的搜索功能
- 基于Arcgis for javascript实现百度地图ABCD marker的效果
- 百度地图API提示230 错误app scode码校验失败的解决办法
- 微信企业号开发之微信考勤百度地图定位
- 百度地图自定义控件分享
- 基于Android实现百度地图定位过程详解
- Android SDK 百度地图通过poi城市内检索简介接口的使用
- Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡
- 如何调用百度地图API实现手机自动定位
- Android百度定位导航之基于百度地图移动获取位置和自动定位
- Android百度地图poi范围搜索
- Android 百度地图POI搜索功能实例代码
- 百度地图API使用方法详解