html5指南-7.geolocation结合google maps开发一个小的应用_HTML5教程-查字典教程网
html5指南-7.geolocation结合google maps开发一个小的应用
html5指南-7.geolocation结合google maps开发一个小的应用
发布时间:2016-12-27 来源:查字典编辑
摘要:今天我们将把html5的geolocation结合googlemaps开发一个小的应用。googlemaps的api地址:https://d...

今天我们将把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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新HTML5教程学习
    热门HTML5教程学习
    网页设计子分类