html5指南-7.geolocation结合google maps开发一个小的应用


Posted in HTML / CSS onJanuary 07, 2013

今天我们将把html5的geolocation结合google maps开发一个小的应用。google maps的api地址:https://developers.google.com/maps/documentation/javascript/?hl=zh-CN。
调用google maps,实现需要添加js引用<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>,其中sensor参数的具体含义:
要使用 Google Maps API,您需要指明自己的应用程序在任何 Maps API 库或服务请求中是否是使用传感器(如 GPS 定位器)来确定用户所处位置的。这对移动设备尤为重要。如果您的 Google Maps API 应用程序使用任何形式的传感器确定访问您的应用程序的设备的位置,那么您必须通过将 sensor 参数值设置为 true 以声明这一点。
html部分比较简单,只需要准备一个div就可

复制代码
代码如下:

<body>
<div id="map">
</div>
</body>

js代码的框架如下
复制代码
代码如下:

<script type="text/javascript">
var map;
var browserSupport = false;
var attempts = 0;
$(document).ready(function () {
//初始化地图

InitMap();
//定位
getLocation();

//定位跟踪
watchLocation();
});
function InitMap() {
/* Set all of the options for the map */
var options = {
};
/* Create a new Map for the application */
map = new google.maps.Map($('#map')[0], options);
}
/*
* If the W3C Geolocation object is available then get the current
* location, otherwise report the problem
*/
function getLocation() {
}
function watchLocation() {
}
/* Plot the location on the map and zoom to it */
function plotLocation(position) {
}
/* Report any errors using this function */
function reportProblem(e) {
}
</script>


InitMap方法就是调用google maps api初始化地图,他需要设置options对象,在调用地图初始化的时候使用。
复制代码
代码如下:

function InitMap() {
/* Set all of the options for the map */
var options = {
zoom: 4,
center: new google.maps.LatLng(38.6201, -90.2003),
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
position: google.maps.ControlPosition.BOTTOM_CENTER
},
panControl: true,
panControlOptions: {
position: google.maps.ControlPosition.TOP_RIGHT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.LEFT_CENTER
},
scaleControl: true,
scaleControlOptions: {
position: google.maps.ControlPosition.BOTTOM_LEFT
},
streetViewControl: true,
streetViewControlOptions: {
position: google.maps.ControlPosition.LEFT_TOP
}
};
/* Create a new Map for the application */
map = new google.maps.Map($('#map')[0], options);
}

getLocation和watchLocation方法获取定位信息。
复制代码
代码如下:

function getLocation() {
/* Check if the browser supports the W3C Geolocation API */
if (navigator.geolocation) {
browserSupport = true;
navigator.geolocation.getCurrentPosition(plotLocation, reportProblem, { timeout: 45000 });
} else {
reportProblem();
}
}
function watchLocation() {
/* Check if the browser supports the W3C Geolocation API */
if (navigator.geolocation) {
browserSupport = true;
navigator.geolocation.watchPosition(plotLocation, reportProblem, { timeout: 45000 });
} else {
reportProblem();
}
}

成功获取位置信息后,调用plotLocation方法把位置显示在google maps上。
复制代码
代码如下:

function plotLocation(position) {
attempts = 0;
var point = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
var marker = new google.maps.Marker({
position: point
});
marker.setMap(map);
map.setCenter(point);
map.setZoom(15);
}

demo下载地址:googleMapGeolocation.rar
HTML / CSS 相关文章推荐
CSS3 3D旋转rotate效果实例介绍
May 03 HTML / CSS
CSS3制作漂亮的照片墙的实现代码
Jun 08 HTML / CSS
利用HTML5+CSS3实现3D转换效果实例详解
May 02 HTML / CSS
10分钟入门CSS3 Animation
Dec 25 HTML / CSS
Grid 宫格常用布局的实现
Jan 10 HTML / CSS
CSS3 按钮边框动画的实现
Nov 12 HTML / CSS
html5 input元素新特性_动力节点Java学院整理
Jul 06 HTML / CSS
HTML5实现的震撼3D焦点图动画的示例代码
Sep 26 HTML / CSS
html5记忆翻牌游戏实现思路及代码
Jul 25 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
Apr 20 HTML / CSS
CSS代码检查工具stylelint的使用方法详解
Mar 27 HTML / CSS
HTML5 新增内容和 API详解
Nov 17 HTML / CSS
在html5的Canvas上绘制椭圆的几种方法总结
Jan 07 #HTML / CSS
html5构建触屏网站之touch事件介绍
Jan 07 #HTML / CSS
html5构建触屏网站之网站尺寸探讨
Jan 07 #HTML / CSS
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
Jan 06 #HTML / CSS
html5中canvas学习笔记2-判断浏览器是否支持canvas
Jan 06 #HTML / CSS
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
Jan 06 #HTML / CSS
HTML5本地存储之Database Storage应用介绍
Jan 06 #HTML / CSS
You might like
php初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
php正则表达式学习笔记
2015/11/13 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
2016/07/22 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
Vue中props的使用详解
2018/06/15 Javascript
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
python @property的用法及含义全面解析
2018/02/01 Python
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
Python中return self的用法详解
2018/07/27 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
html5 input输入实时检测以及延时优化
2018/07/18 HTML / CSS
GWebs公司笔试题
2012/05/04 面试题
司机的工作范围及职责
2013/11/13 职场文书
最新党员思想汇报
2014/01/01 职场文书
综合实践教学反思
2014/01/31 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
学校运动会加油词
2015/07/18 职场文书
MongoDB支持的数据类型
2022/04/11 MongoDB
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL