AngularJs 利用百度地图API 定位当前位置 获取地址信息
第一、申请百度密钥 很简单的几步就搞定
第二、引入文件
<!--百度地图定位--> <scriptsrc="http://api.map.baidu.com/components?ak=WUfZTjKPuZ2G5RmgD0Psejv6XOmIEQVQ"></script> <scripttype="text/javascript"src="http://api.map.baidu.com/api?v=2.0&ak=WUfZTjKPuZ2G5RmgD0Psejv6XOmIEQVQ"></script>
第三、绑定数据到你要显示的输入框内
完整地址:<inputtype="text"ng-model="all"/><br> 所处城市:<inputtype="text"ng-model="shi"/><br> 所处区域:<inputtype="text"ng-model="qu"/><br> 所处街道:<inputtype="text"ng-model="jiedao"/>
第四、控制器中代码
angular.module('myApp') .controller('myCtrl',function($scope){ //获取地理位置信息 $scope.getAddr=function(){ vargeolocation=newBMap.Geolocation(); geolocation.getCurrentPosition( //获取位置信息成功 function(position){ if(this.getStatus()==BMAP_STATUS_SUCCESS){ $scope.longitude=position.point.lng; $scope.latitude=position.point.lat; //根据坐标得到地址描述 $scope.getGeo(); } },{ //指示浏览器获取高精度的位置,默认为false enableHighAccuracy:true, //指定获取地理位置的超时时间,默认不限时,单位为毫秒 //timeout:5000, //最长有效期(30S),在重复获取地理位置时,此参数指定多久再次获取位置 maximumAge:30*1000 }); }; $scope.getGeo=function(){ varmyGeo=newBMap.Geocoder(); //根据坐标得到地址描述 myGeo.getLocation(newBMap.Point($scope.longitude,$scope.latitude), function(result){ if(result){ $scope.geoaddress={ 'fulladdress':result.addressComponents.city+result.addressComponents.district+result.addressComponents.street, 'city':result.addressComponents.city, 'area':result.addressComponents.district, 'street':result.addressComponents.street, }; $scope.all=result.addressComponents.city+result.addressComponents.district+result.addressComponents.street; $scope.shi=result.addressComponents.city; $scope.qu=result.addressComponents.district; $scope.jiedao=result.addressComponents.street; alert(JSON.stringify($scope.all)) }else{ $scope.showAlert("定位失败,地址解析失败"); } }); }; }]);
第五、完整代码如下:(大体思路就是这样!这里做个标记留给以后的自己)
<!DOCTYPEhtml> <html> <metacharset="utf-8"> <scriptsrc="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script> <scriptsrc="http://api.map.baidu.com/components?ak=WUfZTjKPuZ2G5RmgD0Psejv6XOmIEQVQ"></script> <scripttype="text/javascript"src="http://api.map.baidu.com/api?v=2.0&ak=WUfZTjKPuZ2G5RmgD0Psejv6XOmIEQVQ"></script> <body> <divng-app="myApp"ng-controller="myCtrl"> <buttontype="button"ng-click='getAddr()'>点击定位</button><br> 完整地址:<inputtype="text"ng-model="all"/><br> 所处城市:<inputtype="text"ng-model="shi"/><br> 所处区域:<inputtype="text"ng-model="qu"/><br> 所处街道:<inputtype="text"ng-model="jiedao"/> </div> <script> varapp=angular.module('myApp',[]); app.controller('myCtrl',function($scope){ //获取地理位置信息 $scope.getAddr=function(){ vargeolocation=newBMap.Geolocation(); geolocation.getCurrentPosition( //获取位置信息成功 function(position){ if(this.getStatus()==BMAP_STATUS_SUCCESS){ $scope.longitude=position.point.lng; $scope.latitude=position.point.lat; //根据坐标得到地址描述 $scope.getGeo(); } },{ //指示浏览器获取高精度的位置,默认为false enableHighAccuracy:true, //指定获取地理位置的超时时间,默认不限时,单位为毫秒 //timeout:5000, //最长有效期(30S),在重复获取地理位置时,此参数指定多久再次获取位置 maximumAge:30*1000 }); }; $scope.getGeo=function(){ varmyGeo=newBMap.Geocoder(); //根据坐标得到地址描述 myGeo.getLocation(newBMap.Point($scope.longitude,$scope.latitude), function(result){ if(result){ $scope.geoaddress={ 'fulladdress':result.addressComponents.city+result.addressComponents.district+result.addressComponents.street, 'city':result.addressComponents.city, 'area':result.addressComponents.district, 'street':result.addressComponents.street, }; $scope.all=result.addressComponents.city+result.addressComponents.district+result.addressComponents.street; $scope.shi=result.addressComponents.city; $scope.qu=result.addressComponents.district; $scope.jiedao=result.addressComponents.street; alert(JSON.stringify($scope.all)) }else{ $scope.showAlert("定位失败,地址解析失败"); } }); }; }); </script> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!