一、
获取当前地理位置信息的方法 | 在HTML5之前 | HTML5 | |
根据IP地址来获取当前的地理位置信息 | 浏览器通过geolocation的API接口来获取当前的地理位置信息,(经纬度) | ||
方法为 | navigator.geolocation.getCurrentPosition(){}这个方法来获取 |
由于许多地图采用的坐标系都是不一样的,使用不同的地图接口得到同一个地点的经纬度会有一定的偏差,百度地图和谷歌地图的纠偏能力如下表:
什么是纠偏能力?
在百度地图显示的经纬度和实际的经纬度是存在一定的差距的,百度地图上的经纬度会通过一个纠偏数据库,把地图上的经纬度尽量跟实际的经纬度接近。就是去纠正这种偏差。
百度地图 | 谷歌地图 | ||
区别 | 百度地图纠偏信息包含中国海域一共29,699,997条纠偏数据 | 谷歌地图只包含中国陆地一共12,597,551条纠偏数据 | |
使用geolocation的API获取的经纬度是谷歌地图上的经纬度,为了有更多的纠偏信息,我们可以将获取的经纬度转化成百度地图上的经纬度。
转化方法:
通过百度地图API中提供的一个坐标转化js文件,,进行转化即可。
<script src="http://api.map.baidu.com/api?v=1.3" type="text/javascript">//将百度API引入到页面
<script type="text/javascript" src="convertor.js">
// 将google地图中的经纬度转化为百度地图的经纬度
BMap.Convertor.translate(ggPoint, 2, function(point){ //百度官方发布的接口
var marker = new BMap.Marker(point); //创建地图实例
map.addOverlay(marker); //创建点坐标
map.centerAndZoom(point, 50); //初始化地图,设置中心点坐标和地图级别(数字越大,级别越小)
map.enableScrollWheelZoom(); // 启动鼠标滚轮操作
map.enableKeyboard(); //开启键盘操作的接口(键盘控制默认也是不开启,开启后按键+和-分别让地图放大或缩小一级,PgUp、PgDn、Home、End键则会让地图向下、上、右、左四个方向移动一段距离。↑、↓、←、→四个健可以使地图在四个方向上移动,)
map.enableContinuousZoom(); // 开启连续缩放效果
ssmap.enableInertialDragging(); // 开启惯性拖拽效果
});
}