礼物不用挑最贵的,只要香榭丽舍的落叶我想用这句话做标题,又怕被人用作为头条党。杰粉对这句话应该很熟悉了,《告白气球》的歌词,方文山的歌词让人印象深刻。这句话的意思是礼物不要太贵,只要香榭丽舍的落叶就够了,可是香榭丽舍是什么,法国巴黎的繁华地,我的天啊,去还蛮贵的去巴黎。我用百度地图查了一下,找不到外国。这个位置就够了。说了这么多废话,大师(qiang)想(la)引(ying)出(zhuai))本文要说的“地理位置定位”是一个可以使用底层功能,可以准确定位的浏览器,利用GPS、WIFI和基站进行定位。到了页面,我们只能求浏览器提供接口,还好HTML5是否支持这个特性,是浏览器提供的接口。根据浏览器的不同,可能支持的不是很好,所以我们要做出判断。如果支持,我们会继续安装。如果不支持,换成别的思路继续安装代码:if(navigator.geolocation){//dosomethingelse{//doothersomething}看到navigator就知道是相关的给浏览器获取地理位置varoption={timeout:5000//5秒超时enableHighAccuracy:true//true获取高精度}navigator.geolocation.getCurrentPosition(getPositionSuccess,getPositionError,option);functiongetPositionSuccess(position){//成功时varlat=position.coords.latitude;varlng=position.coords.longitude;console.log("你的位置:经度"+lat+",latitude"+lng);if(typeofposition.address!=="undefined"){varcountry=position.address.country;varprovince=position.address.region;varcity=position.address.city;控制台.log('你位于'+国家+省+'省'+城市+'城市');}else{//如果获取不到具体的地理位置,那就用百度地图的接口varscript=document.createElement('script');script.src='http://api.map.baidu.com/getscript?v=2.0';document.getElementsByTagName('head')[0].insertBefore(script,document.getElementsByTagName('head')[0].childNodes[0])script.onload=function(){varpoint=newBMap.Point(lng,纬度);varmyGeo=newBMap.Geocoder();myGeo.getLocation(point,function(result){console.log(result)});}}}functiongetPositionError(error){//发生错误时switch(error.code){caseerror.TIMEOUT:console.log("连接超时,请重试");休息;caseerror.PERMISSION_DENIED:console.log("您已拒绝使用位置共享服务,查询已被取消");休息;caseerror.POSITION_UNAVAILABLE:console.log("尊敬的火星网友,非常抱歉,我们暂时无法为您的星球提供定位服务");b雷克;}}获取实时地理位置navigator.geolocation.watchPosition(refreshPosition,errorFunc,option);//参数同getCurrentPosition。后来看到很多网页版基本都是基于navigator.geolocation,所以像LBS这样的小应用还是很吸引人的,只是粘性有点弱,需要一个比较完善的系统来增加更多的玩法;在网页中实现基于LBS的产品既有缺点也有优点。微信公众平台接口具备获取地理位置的能力。你可能会沉迷于它。它的包装肯定会比原来的好;对于百度、腾讯、高德提供的地图界面,应该是非常丰富的,依托于他们强大的资源,我们可以提供的比我们想象的还要多。比如微信的小程序,就足以让大家着迷很久了ps:这篇文章是一篇很基础的文章,没有什么特别的,主要是最近补了一个实习生的坑,涉及到这个东西;最可气的是,用户拒绝访问后就没有了,此后一直处于拒绝状态,手机只能手动清除服务器的位置数据;如果有一个必须由用户手动触发的接口就好了。这个缺陷很痛苦。原文链接:http://azq.space/blog/20161123/公众号
