百度地图定位

项目中有个需求:M站,当用户所处不同城市,M站的首页自动切换定位到当前所在城市

客户端APP,安装过程中,会弹出询问,是否获取权限,则,定会打开定位(比如:美团、饿了么)

方案A:通过浏览器获取定位

---------------------------------------------------

<script src="http://api.map.baidu.com/api?ak=百度秘钥=2.0&services=false"></script>

<script>
navigator.geolocation.getCurrentPosition(function (position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var point = new BMap.Point(lon, lat); // 创建坐标点
// 根据坐标得到地址描述
var myGeo = new BMap.Geocoder();
myGeo.getLocation(point, function (result) {
var city = result.addressComponents.city;
$('body').html(city);
});
});
</script>

---------------------------------------------------------

下载参考链接:https://files.cnblogs.com/files/leshao/%E7%99%BE%E5%BA%A6-%E5%BC%B9%E6%8E%88%E6%9D%83%E7%AA%97%E5%8F%A3.rar

但是这个方法会弹出询问窗口,因为定位,设计到隐私,这个是必须会弹出的,不利于体验

方案B:通过IP定位城市

----------------------------------------

<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type="text/javascript">
$('body').html(returnCitySN["cip"]+','+returnCitySN["cname"])
</script>

------------------------------------------

但是IP会存在误差,精度不是很好,比如北京这么大,不能具体某一位置

参考下载地址:https://files.cnblogs.com/files/leshao/ip%E8%8E%B7%E5%8F%96%E5%9F%8E%E5%B8%82.rar

方案C:通过获取经纬度,这样可以精确定位了

-------------------------------------------------------

<script type="text/javascript">
function myFun(result){
var cityName = result.name;
alert("当前定位城市:"+JSON.stringify(result));
//document.getElementById('abc').innerHTML=JSON.stringify(result)
}
var myCity = new BMap.LocalCity();
myCity.get(myFun);
</script>

--------------------------------------------------

 

对比来说,方案C符合,精确到经纬度,可以精准定位所在地了

下载地址:https://files.cnblogs.com/files/leshao/%E5%AE%9A%E4%BD%8D%E7%BB%8F%E7%BA%AC%E5%BA%A6.rar

=================

使用如上方案的时候,使用百度地图,首先需要注册百度地图账号,获取秘钥,方可进行下一步的操作

最后学习请教得知,还得多看文档,百度地图的API功能很强大的

附上百度地图API: http://lbsyun.baidu.com/index.php?title=jspopular/guide/geolocation
感谢实现过程中的,大侠、午夜、员外、小张、大树、lost、牛哥 等朋友的 的 建议指导,得以快速定位问题,解决问题,仅此留念,被其他同学查询而已

 

posted @ 2018-11-15 16:46  乐少007  阅读(681)  评论(0编辑  收藏  举报