--在html5中,为我们提供了navigator.geolocation.getCurrentPosition(f1, f2)函数,f1是定位成功调用的函数,f2是定位失败调用的函数,而且会把当前的地理位置信息作为实参传递给f1和f2函数。f1函数调用谷歌地图的API即可。
如何展示呢?
--需要一个提示信息和展示地图的一个区域。
页面上,大致是这样:
<map-geo-location height=\"400\" width=\"600\"></map-geo-location> <script src=\"angular.js\"></script> <script src=\"http://maps.google.com/maps/api/js?sensor=false\"></script> <script src==\"mapGeoLocation.js\"></script>
Directive部分如下:
(function(){
var mapGeoLocation = [\'$window\', function($window){
var template = \'<p><span id=\"status\">正在查找地址...</span></p>\' + \'<br /><div id=\"map\"></div>\',
mapContainer = null,
status = null;
function link(scope, elem, attrs){
//以Angular的方式获取Angular元素
status = angular.element(document.getElementById(\'status\'));
mapContainer = angular.element(document.getElementById(\'map\'));
mapContainer.attr(\'style\', \'height:\' + scope.height + \'px;width:\' + scope.width + \'px\');
$window.navigator.geolocation.getCurrentPosition(mapLocation, geoError);
}
//定位成功时调用
function mapLocation(pos){
status.html(\'found your location! Longitude: \' + pos.coords.longitude + \' Latitude: \' + pos.coords.latitude);
var latlng = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
var optons = {
zoom:15,
center: latlng,
myTypeCOntrol: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(mapContainer[0], options);
var marker = new google.maps.Markser({
position: latlng,
map: map,
title: \"Your location\"
});
}
//定位失败时调用
function geoError(error){
status.html(\'failed lookup \' + error.message);
}
return {
restrict: \'EA\', //默认
scope:{
height: \'@\',
width:\'@\'
},
link: link,
template: template
}
}];
angular.module(\'direcitveModule\',[])
.direcitve(\'mapGeoLocation\', mapGeoLocation);
}());
以上所述是小编给大家介绍的在AngularJS中如何使用谷歌地图把当前位置显示出来的相关知识,希望对大家有所帮助。
本文地址:https://www.stayed.cn/item/6867
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我