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 box-sizing属性
Apr 17 HTML / CSS
CSS3 中的@keyframes介绍
Sep 02 HTML / CSS
纯css3实现的竖形无限级导航
Dec 10 HTML / CSS
浅谈CSS3动画的回调处理
Jul 21 HTML / CSS
简单几步用纯CSS3实现3D翻转效果
Jan 17 HTML / CSS
html5中如何将图片的绝对路径转换成文件对象
Jan 11 HTML / CSS
鲜为人知的HTML5语音合成功能
May 17 HTML / CSS
Html5+JS实现手机摇一摇功能
Apr 24 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
Sep 20 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
Feb 20 HTML / CSS
萌新HTML5 入门指南(二)
Nov 09 HTML / CSS
CSS3新特性详解(五):多列columns column-count和flex布局
Apr 30 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
phpize的深入理解
2013/06/03 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
Python 流程控制实例代码
2009/09/25 Python
python网络编程实例简析
2014/09/26 Python
为python设置socket代理的方法
2015/01/14 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
基于Python Numpy的数组array和矩阵matrix详解
2018/04/04 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
中专生自我鉴定书范文
2013/12/28 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
竞选部长演讲稿
2014/04/26 职场文书
学雷锋倡议书
2015/01/19 职场文书
三下乡个人总结
2015/03/04 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
股东大会通知
2015/04/24 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
基于Python实现将列表数据生成折线图
2022/03/23 Python