在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 13 Javascript
javascript自适应宽度的瀑布流实现思路
Feb 20 Javascript
js弹出确认是否删除对话框
Mar 27 Javascript
js中将String转换为number以便比较
Jul 08 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
Jun 19 Javascript
自定义vue组件发布到npm的方法
May 09 Javascript
JavaScript继承定义与用法实践分析
May 28 Javascript
Vue.js点击切换按钮改变内容的实例讲解
Aug 22 Javascript
react项目实践之webpack-dev-serve
Sep 14 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
May 03 Javascript
前后端常见的几种鉴权方式(小结)
Aug 04 Javascript
VUE 解决mode为history页面为空白的问题
Nov 01 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
NOT NULL 和NULL
2007/01/15 PHP
php部分常见问题总结
2008/03/27 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
js中eval详解
2012/03/30 Javascript
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
深入理解js中this的用法
2016/05/28 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
Python端口扫描简单程序
2016/11/10 Python
Django forms组件的使用教程
2018/10/08 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
python 实现字符串下标的输出功能
2020/02/13 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
财务会计应届生求职信
2013/11/24 职场文书
会计与审计毕业生自荐信范文
2013/12/30 职场文书
毕业生求职信
2014/06/10 职场文书
工程造价专业求职信
2014/07/17 职场文书
简历中自我评价范文
2015/03/11 职场文书
现货白银电话营销话术
2015/05/29 职场文书
圣诞晚会主持词
2015/07/01 职场文书