在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 相关文章推荐
javascript动画之圆形运动,环绕鼠标运动作小球
Jul 20 Javascript
jquery实现倒计时功能
Dec 28 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
Jan 05 Javascript
jQuery按需加载轮播图(web前端性能优化)
Feb 17 Javascript
原生js仿浏览器滚动条效果
Mar 02 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
Jun 21 Javascript
react-router browserHistory刷新页面404问题解决方法
Dec 29 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
Mar 06 Javascript
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
JS数组求和的常用方法总结【5种方法】
Jan 14 Javascript
Layui数据表格跳转到指定页的实现方法
Sep 05 Javascript
原生JavaScript实现购物车
Jan 10 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
数据库的日期格式转换
2006/10/09 PHP
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
PHP用FTP类上传文件视频等的简单实现方法
2016/09/23 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
基于jquery的无刷新分页技术
2011/06/11 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
vue中的scope使用详解
2017/10/29 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
[03:56]DOTA2完美大师赛趣味视频之小鸽子和Mineski打台球
2017/11/24 DOTA
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
项目建议书怎么写
2014/05/15 职场文书
妇女工作先进事迹
2014/08/17 职场文书
客户答谢会活动方案
2014/08/31 职场文书
群众路线个人整改方案
2014/10/25 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
先进事迹材料范文
2014/12/29 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js