在AngularJS中如何使用谷歌地图把当前位置显示出来

前端技术 2023/09/03 JavaScript

--在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

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。