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开启硬件加速的使用和坑
Aug 21 HTML / CSS
HTML5 CSS3给网站设计带来出色效果
Jul 16 HTML / CSS
一款利用纯css3实现的超炫3D表单的实例教程
Dec 01 HTML / CSS
css 元素选择器的简单实例
May 23 HTML / CSS
利用HTML5+CSS3实现3D转换效果实例详解
May 02 HTML / CSS
html5 touch事件实现页面上下滑动效果【附代码】
Mar 10 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
Jul 06 HTML / CSS
使用HTML5原生对话框元素并轻松创建模态框组件
Mar 06 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
Jul 07 HTML / CSS
CSS3实现的侧滑菜单
Apr 27 HTML / CSS
在HTML中引入CSS的几种方式介绍
Dec 06 HTML / CSS
使用CSS设置滚动条样式
Jan 18 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生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
jQuery select的操作实现代码
2009/05/06 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
Vue.js第四天学习笔记(组件)
2016/12/02 Javascript
JSON键值对序列化和反序列化解析
2017/01/24 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
Vue中实现权限控制的方法示例
2019/06/07 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
python递归实现快速排序
2018/08/18 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
学前教育教师求职自荐信
2013/09/22 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
校庆团日活动总结
2014/08/28 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
python spilt()分隔字符串的实现示例
2021/05/21 Python
SpringBoot Http远程调用的方法
2022/08/14 Java/Android