基于百度地图JS-API定位不同用户所城市--初始化地图位置
应用场景:百度地图的应用往往都是在网上的开放式应用,用户在不同的城市,所以在地图初始化的时候会希望不同用户能够加载自己当地的地图。
下面给大家介绍两种利用百度地图API,在用户打开浏览器页面后自动初始化为用户所在地区地图的方法
根据IP定位用户位置(每一台连上网路的电脑都具有一个独一无二的IP位址,经由IP位址可以反查出电脑位置,但是结果并不精确,而且很容易到受到ISP的IP分配机制影响,而造成误差。本质上,LocalCity这个类是利用用户IP地址去百度数据库里查询得到IP所在的城市。)
但是代码非常的简洁和方便,主要代码如下:
var map = new BMap.Map("allmap");
var myCity = new BMap.LocalCity();
myCity.get(myFun);
function myFun(result){
var cityName = result.name;
map.centerAndZoom(cityName,15);
setTimeout(function(){alert(cityName)},500);
}
运行效果如下:
2.Geolocation这个类是使用了支持HTML5浏览器提供的Geolocation API 来进行定位的。目前Internet Explorer 9、Firefox、Chrome、Safari 以及 Opera 支持地理定位(因为他们支持HTML5)。
var map = new BMap.Map("allmap");
var point = new BMap.Point(116.331398,39.897445);
map.centerAndZoom(point,12);
var geolocation = new BMap.Geolocation(); //实例化浏览器定位对象。
geolocation.getCurrentPosition(function(r){ //定位结果对象会传递给r变量
if(this.getStatus() == BMAP_STATUS_SUCCESS){ //通过Geolocation类的getStatus()判断定位结果
var mk = new BMap.Marker(r.point);
map.addOverlay(mk); //将marker作为覆盖物添加到map地图上
map.panTo(r.point); //移动地图中心点到当前点
setTimeout(function(){ alert('您的位 置:'+r.point.lng+','+r.point.lat);},500);
}
else {alert('failed'+this.getStatus()); }
},{enableHighAccuracy: true}) //这个参数的含义就是 是否要求浏览器获取最佳定位结果。
运行效果如下:
以上两种方法大家可以根据自己的实际情况来使用,有问题也可以留言讨论