HTML5开发:地理位置定位指南

标签: HTML5学习资源 | 发表时间:2012-02-14 15:30 | 作者:xielisha
出处:http://www.mhtml5.com

地理定位是 HTML5提供的最令人激动的特性之一。

用相对简单的 JavaScript代码,可以创建出能确定用户地理位置详细信息的Web应用,包括经纬度以及海拔等。一些Web应用甚至能通过监控用户位置随时间的移动来提供导航功能,其中还综合了GoogleMaps API这样的地图系统。

和所有HTML5的功能一样,你还不能依赖浏览器提供支持。而在浏览器提供支持的地方,它在深度和持续性上会有变化。本质上,你需要为那些浏览器不能为HTML5提供完全支持的用户提供替代功能。

在这篇教程里,我们会了解一些创建用户位置信息的基本知识。实际操作中,浏览器可能从多处获取数据。例如,可能是移动设备的GPS数据或是任意联网设备上的IP地址数据。不过,你的代码不需要考虑这些细节,你只需检索和使用位置数据。

HTML5Web 页面

使用下列代码创建HTML5页面的框架:

<!DOCTYPEhtml>

<html>

<head>

<script>

/*Locationfunctionshere*/

</script>

</head>

<body>

</body>

</html>

我们将JavaScript地理定位函数放到页面标头脚本的位置,还会放置一些用于测试和演示主题区功能的基本HTML要素。

HTML 演示要素

向HTML主体部分添加下列markup:

<input type=”button”value=”get location” onclick=”getUserLocation()”/>

<div id=”locationData”>

Location data here

</div>

可以随时调用地理位置函数,如页面加载时或是与jQuery文档准备函数合在一起时。为了更好地进行演示,我们使用按钮调用函数而且会把位置数据写入div要素中,div要素最初就有一些简单的占位符文本。

获取位置函数

getPosition方法是我们用来确定用户位置的主要方法。在页面标头的脚本区域添加下列函数:

functiongetUserLocation(){

//checkifthegeolocationobjectissupported,ifsogetposition

if(navigator.geolocation)

navigator.geolocation.getCurrentPosition(displayLocation,displayError);

else

document.getElementById(“locationData”).innerHTML=”Sorry-yourbrowserdoesn’tsupportgeolocation!”;

}

用户点击按钮的时候就会调用函数。代码首先会检查导航器地理位置对象是否显示出来,如果显示出来则浏览器支持。如果地理位置对象被支持,那么代码会使用它来调用getCurrentPosition方法。

getCurrerentPosition方法取两个参数指示回调函数。,一个是在地理位置信息被获取时调用的函数,还有一个是错误返回时调用的函数。

如果地理位置对象不被支持,那么函数就只会把错误信息写入页面div要素中。

当一个网站首次试图检索用户位置数据时,用户浏览器会命令其确定它们是否同意共享数据。该函数只在用户同意的时候执行。

显示位置函数

下一步,我们需要部署的函数其实是getCurrentPosition方法调用中的第一个参数。当浏览器接收到这个函数的时候,用户位置数据会传给这个函数。将下列代码添加到getUserLocation函数后面:

functiondisplayLocation(position){

/buildtextstringincludingco-ordinatedatapassedinparameter

vardisplayText=”Userlatitudeis”+position.coords.latitude+”andlongitudeis”+position.coords.longitude;

//displaythestringfordemonstration

document.getElementById(“locationData”).innerHTML=displayText;

}

这个代码先创建了一个变量,在变量中创建了一个字符串,该字符串包含了位置参数的经纬度数据。然后这个函数会把这个信息和一些信息化文本写入页面。在你自己的网站中,你还可以把这些数据用作其他目的,而不仅仅是写入页面——此处仅作演示用。

错误函数

使用地理位置设备的时候可能会出现错误。如,用户或许不同意共享自己的地理位置数据,浏览器可能不能检索数据等。因此我们需要添加一个函数来处理应对错误,使用getCurrentPosition方法的第二个函数。在displayLocation函数后添加下列函数:

function displayError(error) {

//get a reference to the HTML element forwriting result

var locationElement =document.getElementById(“locationData”);

//find out which error we have, outputmessage accordingly

switch(error.code) {

case error.PERMISSION_DENIED:

locationElement.innerHTML= “Permission was denied”;

break;

case error.POSITION_UNAVAILABLE:

locationElement.innerHTML= “Location data not available”;

break;

case error.TIMEOUT:

locationElement.innerHTML= “Location request timeout”;

break;

case error.UNKNOWN_ERROR:

locationElement.innerHTML= “An unspecified error occurred”;

break;

default:

locationElement.innerHTML= “Who knows what happened…”;

break;

}}

这个函数会地理位置请求发出后出现的错误信息进行检索。该函数首先会获取页面div要素的参考以便写入合适的错误信息。用交换语句对此信息进行调整使其适应错误的特殊属性。

考虑和选择

以上函数涵盖了用户位置数据检索的基本要点。你可以使用检索过的位置数据通过Google Maps API在地图上显示用户位置,主要是在自定义URL中创建数据变量,然后将其加载到你页面的HTML图像要素中。

你还可以使用watchPosition方法追踪用户位置甚至是他们移动的速度,尽管这些数据因为并非来自移动设备的GPS而缺乏准确性,例如数据可能来自无线网络。

这些函数会为Web开发员带来美好的未来。不过,它们的成功不仅需要浏览器提供支持,还得用户喜欢,硬件支持。

 

转自 e800

相关 [html5 开发 地理位置] 推荐:

HTML5开发:地理位置定位指南

- - HTML5研究小组
HTML5提供的最令人激动的特性之一. JavaScript代码,可以创建出能确定用户地理位置详细信息的Web应用,包括经纬度以及海拔等. 一些Web应用甚至能通过监控用户位置随时间的移动来提供导航功能,其中还综合了GoogleMaps API这样的地图系统. 和所有HTML5的功能一样,你还不能依赖浏览器提供支持.

【转载】HTML5 地理位置定位的原理及应用

- - HTML5研究小组
地理位置是HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性东莞网站建设公司能够开发基于位置信息的应用. 下面 聚焦网络科技向大家介绍一下HTML5地理位置定位的基本原理及各个浏览器的数据精度情况. 在访问位置信息前,浏览器都会询问用户是否共享其位置信息,以 Chrome 浏览器为例,如果您允许 Chrome 浏览器与网站共享您的位置,Chrome 浏览器会向 Google 位置服务发送本地网络信息,估计您所在的位置.

Adobe、标准和HTML5 -HTML5 and CSS3 开发

- - HTML5研究小组
“[提供商之间的]最激烈的竞争将与 标准密切相关. 大部分聪明人的眼睛将紧盯着技术标准. 但在计算机行业,新标准既可能是无限财富的源泉,也可能导致企业帝国的毁灭. 尽管存在着如此多的风险,标准仍然点燃了无限激情”. —The Economist, 1993年2月23日. 在编写这段有关标准化的话时,计算领域的主要争议是Unix是否是一个可行的操作系统(以及是否为IBM、DEC和HP的更多专用操作系统带来了挑战),以及哪个视窗平台(SUN/AT&T还是IBM/DEC/HP)将成为标准.

HTML5历史与开发介绍-HTML5 入门教程

- - BlogJava_首页
HTML的发展历史和HTML5的诞生. HTML 5是近十年来Web开发标准最巨大的飞跃. 和以前的版本不同,HTML 5并非仅仅用来表示Web内容,它的新使命是将Web带入一个成熟的应用平台,在HTML 5平台上,视频,音频,图象,动画,以及同电脑的交互都被标准化. (HTML5也有了自己的logo).

HTML5 Canvas开发框架:CasualJS Framework

- Jimmy - ITeye论坛最新讨论
CasualJS Framework是根据ActionScript3?.0的架构开发的一套适用于HTML5 Canvas的面向对象的开发框架. 虽然Canvas提供了强大的绘图功能,但满足不了高级开发的需要. 利用CasualJS的显示对象架构及渲染机制,你可以轻松的在Canvas中操控各种位图、图形、影片剪辑等显示对象.

HTML5游戏开发工具推荐:IMPACT

- iDesperadO - HTML5研究小组
Impact 是一个 JavaScript 游戏引擎,可以为桌面和手机浏览器开发令人惊叹的 HTML5 游戏. 我已经试过了四个其他 JavaScript 游戏引擎,这是我用过的第一个比较有意义的(……)Impact 是市场上第一个真正专业级的 JavaScript 和 HTML5 游戏引擎. ——《Game Developer Magazine》,2011年5月.

HTML5开发:原理与实现

- - Web App Trend
在这篇文章中, W3C 浏览器技术核心标准工作成员 Mike Smith 谈论了 HTML5 到底是什么,并给出了一些对开发人员有用的资源,可以让他们跟进不断演化的标准. 我们正处于Web平台更新换代的过程之中. HTML5通常被用来描述这一过程,尽管更新换代中的技术并不局限于HTML5标准所定义的特性.

HTML5开发工具大盘点

- - CSS库
相信到目前你应该已经对Canvas这一神奇的HTML5新元素有了一定的了解. 在本文中,我们将深入了解画布的功能及特点,学习如何在HTML中利用Canvas绘制图形以及其它类型对象. 正准备学习HTML5或者已经进行了一段时间的HTML5开发的童鞋,都有必要了解下,HTML5都有哪些开发工具,哪款开发工具更适合我?下面就一一盘点下:   一、HTML5开发工具之Adobe Dreamweaver.

游戏开发商开源HTML5游戏

- - Solidot
游戏工作室Wooga开源了其开发的HTML5游戏Pocket Island,源代码托管在GitHub上,该公司在官方博客上介绍了他们的开发经验,认为HTML5游戏有潜力,但尚未做好准备,开源的意图将是让其他人了解他们的工作,学习和改进. Wooga认为,2012年也许不是HTML5的黄金时代,但它的黄金时代即将到来.

【转载】HTML5开发工具介绍

- - HTML5研究小组
HTML5被看做是web开发者创建流行web 应用的利器,增加了对 视频和Canvas 2D的支持. HTML5的诞生还让人们重新审视浏览器专用多媒体插件的未来,如Adobe的Flash和微软的Silverlight,HTML5为实现这些插件的功能提供了一种标准化的方式.        虽然HTML5标准尚未开发完成,但是随着开发者对HTML5的兴趣日渐浓厚,开发工具提供商也开始跟进.