>웹 프론트엔드 >JS 튜토리얼 >Google 지도를 사용하여 AngularJS_AngularJS에서 현재 위치를 표시하는 방법

Google 지도를 사용하여 AngularJS_AngularJS에서 현재 위치를 표시하는 방법

WBOY
WBOY원래의
2016-05-16 15:18:261797검색

--HTML5에서는 navigator.geolocation.getCurrentPosition(f1, f2) 함수를 제공하는데, f1은 측위 성공 시 호출되는 함수, f2는 측위 실패 시 호출되는 함수로 현재 지리적 위치 정보가 사용됩니다. 실제 매개변수는 f1 및 f2 함수에 전달됩니다. f1 함수는 Google Maps 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>

지침 부분은 다음과 같습니다.

(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);
}());

위 내용은 Google 지도를 사용하여 AngularJS에서 현재 위치를 표시하는 방법에 대해 편집자가 소개하는 관련 지식입니다. 모든 분들께 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.