时间:2021-05-28
第一、申请百度密钥 很简单的几步就搞定
第二、引入文件
<!-- 百度地图定位 --><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>以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
百度地图的经纬度放到腾讯地图里面解析地址,导致位置信息显示不正确,所以利用腾讯地图提供的API进行转换。如果没有开发密钥(key),就到腾讯地图官方文档进行申请
一:实现定位及到指定位置导航所需组件及API1:组件:map(地图组件)2:API:wx.getLocation(Objectobject)(获取当前的地理位置
Marker失真问题由于公司项目原因,用了很多次百度地图API,基础的地图定位、显示地图就不多说了,这里主要说一下百度地图添加Marker图标。最开始接触百度地
用户关注了微信公众号之后,可以回复用户的地理位置(腾讯地图)给公众号,提取位置信息的纬度和经度,转化为百度的纬度和经度。然后根据纬度和经度,调用百度地图的API
最近做了个项目,其中项目中有个需求需要用到百度地图进行导航,通过查阅相关资料参考百度地图api完成了一个例子。示例一:API地址:http://develope