AngularJs 利用百度地图API 定位当前位置 获取地址信息
更新时间:2017年01月18日 15:56:36 作者:潘冬子
本文主要介绍了AngularJs 利用百度地图API 定位当前位置 获取地址信息的方法步骤。具有一定的参考价值,下面跟着小编一起来看下吧
第一、申请百度密钥 很简单的几步就搞定
第二、引入文件
<!-- 百度地图定位 --> <script src="http://api.map.baidu.com/components?ak=WUfZTjKPuZ2G5RmgD0Psejv6XOmIEQVQ"></script> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=WUfZTjKPuZ2G5RmgD0Psejv6XOmIEQVQ"></script>
第三、绑定数据到你要显示的输入框内
完整地址:<input type="text" ng-model="all"/><br> 所处城市:<input type="text" ng-model="shi"/><br> 所处区域:<input type="text" ng-model="qu"/><br> 所处街道:<input type="text" ng-model="jiedao"/>
第四、控制器中代码
angular.module('myApp') .controller('myCtrl',function($scope) { //获取地理位置信息 $scope.getAddr = function() { var geolocation = new BMap.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() { var myGeo = new BMap.Geocoder(); // 根据坐标得到地址描述 myGeo.getLocation(new BMap.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("定位失败,地址解析失败"); } }); }; } ]);
第五、完整代码如下:(大体思路就是这样!这里做个标记留给以后的自己)
<!DOCTYPE html> <html> <meta charset="utf-8"> <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script> <script src="http://api.map.baidu.com/components?ak=WUfZTjKPuZ2G5RmgD0Psejv6XOmIEQVQ"></script> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=WUfZTjKPuZ2G5RmgD0Psejv6XOmIEQVQ"></script> <body> <div ng-app="myApp" ng-controller="myCtrl"> <button type="button" ng-click='getAddr()'>点击定位</button><br> 完整地址:<input type="text" ng-model="all"/><br> 所处城市:<input type="text" ng-model="shi"/><br> 所处区域:<input type="text" ng-model="qu"/><br> 所处街道:<input type="text" ng-model="jiedao"/> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { //获取地理位置信息 $scope.getAddr = function() { var geolocation = new BMap.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() { var myGeo = new BMap.Geocoder(); // 根据坐标得到地址描述 myGeo.getLocation(new BMap.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>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!
相关文章
Angular实现类似博客评论的递归显示及获取回复评论的数据
这篇文章主要给大家介绍了关于Angular如何实现类似博客评论的递归显示及获取回复评论的数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。2017-11-11AngularJS实现数据列表的增加、删除和上移下移等功能实例
这篇文章给大家分享了AngularJS循环实现数据列表的增加、删除和上移下移等基础功能,对大家学习AngularJS具有一定的参考借鉴价值,有需要的朋友可以看看。2016-09-09Angular.js ng-file-upload结合springMVC的使用教程
这篇文章主要给大家介绍了关于Angular.js文件上传控件ng-file-upload结合springMVC的使用教程,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。2017-07-07AngularJS基于factory创建自定义服务的方法详解
这篇文章主要介绍了AngularJS基于factory创建自定义服务的方法,结合实例形式分析了AngularJS使用factory创建自定义服务的具体步骤、操作技巧与相关注意事项,需要的朋友可以参考下2017-05-05
最新评论