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


Posted in Javascript onJanuary 25, 2016

--在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中如何使用谷歌地图把当前位置显示出来的相关知识,希望对大家有所帮助。

Javascript 相关文章推荐
一些不错的js函数ajax
Aug 20 Javascript
Javascript中引用示例介绍
Feb 21 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
Mar 08 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
Aug 26 Javascript
js实现上一页下一页的效果【附代码】
Mar 10 Javascript
浅谈JS之tagNaem和nodeName
Sep 13 Javascript
jQuery Validate设置onkeyup验证的实例代码
Dec 09 Javascript
js实现自动轮换选项卡
Jan 13 Javascript
JavaScript定时器制作弹窗小广告
Feb 05 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
Aug 16 Javascript
使用angular-cli webpack创建多个包的方法
Oct 16 Javascript
Ajax常用封装库——Axios的使用
May 08 Javascript
理解JavaScript表单的基础知识
Jan 25 #Javascript
jquery获取文档高度和窗口高度汇总
Jan 25 #Javascript
JavaScript数组的一些奇葩行为
Jan 25 #Javascript
JavaScript文本框脚本编写的注意事项
Jan 25 #Javascript
详解js私有作用域中创建特权方法
Jan 25 #Javascript
超赞的jQuery图片滑块动画特效代码汇总
Jan 25 #Javascript
理解js对象继承的N种模式
Jan 25 #Javascript
You might like
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
深入解析php中的foreach函数
2013/08/31 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
单击某一段文字改写文本颜色
2014/06/06 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
git进行版本控制心得详谈
2017/12/10 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
Django自带的用户验证系统实现
2020/12/18 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
高中毕业生自我鉴定
2013/11/03 职场文书
超市开店计划书
2014/04/26 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
计划生育个人总结
2015/03/02 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书