定位在大部分项目中都须要实现,如何实现主要有以下的几种方法前端
H5定位git
在HTML5中navigator有很强大的功能,其中就有定位的方法web
navigator.geolocation.getCurrentPosition(function showPosition(position){ lat=position.coords.latitude; lon=position.coords.longitude; console.log(lat,lon) },function(err){ console.log(err) });
这个服务实际上是谷歌提供的,在咱们国内使用的可能性较低后端
后端定位api
前端调用一个后端提供的接口,后端进行定位操做,返回给前端
在工做中公司后端是能够给你调接口的!!(也不必定要本身弄,能够直接让后端搞。。嘿嘿)浏览器
利用百度地图API/高德地图API...定位编码
获取坐标,取回地点code
<script src="http://webapi.amap.com/maps?v=1.4.2&key=025f0c88ec8249226cfc528b6e83c535(key值能够从高德地图api获取key值这 是笔者本身申请的key值)&plugin=AMap.Geocoder"></script> <script> var map, geolocation; //加载地图,调用浏览器定位服务 map = new AMap.Map('container', { resizeEnable: true }); map.plugin('AMap.Geolocation', function() { geolocation = new AMap.Geolocation({ enableHighAccuracy: true,//是否使用高精度定位,默认:true timeout: 20000, //超过10秒后中止定位,默认:无穷大 buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20) zoomToAccuracy: true, //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false buttonPosition:'RB' }); geolocation.getCurrentPosition(); AMap.event.addListener(geolocation, 'complete', function onComplete(data) { console.log(data.position.getLat(),data.position.getLng()) regeocoder([data.position.getLng(),data.position.getLat()]) });//返回定位信息 }); function regeocoder(pos) { //逆地理编码 var geocoder = new AMap.Geocoder({ radius: 1000, extensions: "all" }); geocoder.getAddress(pos, function(status, result) { if (status === 'complete' && result.info === 'OK') { console.log(result) } }); } </script>
在国内地图应用公司主要有这么几个:百度-百度地图,腾讯-腾讯地图,阿里-高德地图,搜狗-搜狗地图.. 这些地图都会为开发者提供一些便利来使用其中的一些功能
<style> #map{ width: 100%; height: 100vh; } </style> <div id="map"></div> <script src="http://webapi.amap.com/maps?v=1.4.2&key=4e2c29a761a9c245ddd69c5e64be66a5"></script> <script> var map = new AMap.Map('map', { resizeEnable: true, zoom:11, center: [116.397428, 39.90923] }); </script>