首頁 >web前端 >js教程 >在AngularJS中如何使用谷歌地圖把目前位置顯示出來_AngularJS

在AngularJS中如何使用谷歌地圖把目前位置顯示出來_AngularJS

WBOY
WBOY原創
2016-05-16 15:18:261801瀏覽

--在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&#63;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中如何使用谷歌地圖把當前位置顯示出來的相關知識,希望對大家有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn