在AngularJS中如何使用谷歌地圖把當(dāng)前位置顯示出來(lái)
--在html5中,為我們提供了navigator.geolocation.getCurrentPosition(f1, f2)函數(shù),f1是定位成功調(diào)用的函數(shù),f2是定位失敗調(diào)用的函數(shù),而且會(huì)把當(dāng)前的地理位置信息作為實(shí)參傳遞給f1和f2函數(shù)。f1函數(shù)調(diào)用谷歌地圖的API即可。
如何展示呢?
--需要一個(gè)提示信息和展示地圖的一個(gè)區(qū)域。
頁(yè)面上,大致是這樣:
<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);
}
//定位成功時(shí)調(diào)用
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"
});
}
//定位失敗時(shí)調(diào)用
function geoError(error){
status.html('failed lookup ' + error.message);
}
return {
restrict: 'EA', //默認(rèn)
scope:{
height: '@',
width:'@'
},
link: link,
template: template
}
}];
angular.module('direcitveModule',[])
.direcitve('mapGeoLocation', mapGeoLocation);
}());
以上所述是小編給大家介紹的在AngularJS中如何使用谷歌地圖把當(dāng)前位置顯示出來(lái)的相關(guān)知識(shí),希望對(duì)大家有所幫助。
- 帶有定位當(dāng)前位置的百度地圖前端web api實(shí)例代碼
- iOS中定位當(dāng)前位置坐標(biāo)及轉(zhuǎn)換為火星坐標(biāo)的方法
- Android獲取當(dāng)前位置的經(jīng)緯度數(shù)據(jù)
- JS利用cookie記憶當(dāng)前位置的防刷新導(dǎo)航效果
- Android實(shí)現(xiàn)Service獲取當(dāng)前位置(GPS+基站)的方法
- thinkphp獲取欄目和文章當(dāng)前位置的方法
- thinkphp實(shí)現(xiàn)面包屑導(dǎo)航(當(dāng)前位置)例子分享
- 鼠標(biāo)移到導(dǎo)航當(dāng)前位置的LI變色處于選中狀態(tài)
- 講解iOS開發(fā)中基本的定位功能實(shí)現(xiàn)
- iOS獲取到用戶當(dāng)前位置
相關(guān)文章
Angularjs 手寫日歷的實(shí)現(xiàn)代碼(不用插件)
本篇文章介紹了Angularjs 手寫日歷的實(shí)現(xiàn)代碼(不用插件),整理了詳細(xì)的代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-10-10
詳解AngularJS通過(guò)ocLazyLoad實(shí)現(xiàn)動(dòng)態(tài)(懶)加載模塊和依賴
本篇文章主要介紹了詳解AngularJS通過(guò)ocLazyLoad實(shí)現(xiàn)動(dòng)態(tài)(懶)加載模塊和依賴 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
Angular的$http的ajax的請(qǐng)求操作(推薦)
這篇文章主要介紹了Angular的$http的ajax的請(qǐng)求操作的相關(guān)資料,需要的朋友可以參考下2017-01-01
AngularJS教程之MVC體系結(jié)構(gòu)詳解
本文主要講解AngularJS MVC體系結(jié)構(gòu),這里提供詳細(xì)的教程供大家學(xué)習(xí)參考,有需要的小伙伴可以參考下2016-08-08
在Angular中使用NgTemplateOutlet創(chuàng)建可重用組件的流程步驟
在 Angular 中,使用 NgTemplateOutlet 而不是創(chuàng)建特定組件,可以使組件在不修改組件本身的情況下輕松修改為各種用例,在本文中,您將接受一個(gè)現(xiàn)有組件并重寫它以使用 NgTemplateOutlet,需要的朋友可以參考下2024-03-03
Angular中使用$watch監(jiān)聽object屬性值的變化(詳解)
下面小編就為大家?guī)?lái)一篇Angular中使用$watch監(jiān)聽object屬性值的變化(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
AngularJS 中使用Swiper制作滾動(dòng)圖不能滑動(dòng)的解決方法
Swiper是目前較為流行的移動(dòng)端觸摸滑動(dòng)插件,因?yàn)槠浜?jiǎn)單好用易上手,受到很多前端開發(fā)者的歡迎。這篇文章主要介紹了AngularJS 中使用Swiper制作滾動(dòng)圖不能滑動(dòng)的解決方法,需要的朋友可以參考下2016-11-11
angular + express 實(shí)現(xiàn)websocket通信
最近需要實(shí)現(xiàn)一個(gè)功能,后端通過(guò)TCP協(xié)議連接雷達(dá)硬件的控制器,前端通過(guò)websocket連接后端,當(dāng)控制器觸發(fā)消息的時(shí)候,把信息通知給所以前端,本文給的大家講解angular + express 實(shí)現(xiàn)websocket通信的思路,感興趣的朋友一起看看吧2023-09-09

