`
longfly
  • 浏览: 1605 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

天气窗件展示 -一个HTML5 地理位置应用的例子

阅读更多
     定位及地理位置信息是LBS应用的核心,和定位功能有所不同的是地理位置信息更关注如何得到有意义的信息。(例如一条街道的地址)
     从这边文章里你会学到HTML5地理位置信息的各种功能。它能提供从用户具体的位置到路径导航的多种用途。
     通过IP地址、手机和基站间的无线通讯、 GPS定位,有很多种方式可以知道你在哪里。不过现在通过获取客户IP地址来定位的好日子已经一去不复返了。
     HTML5有一套API可以允许客户设备使用javascript有效的获取地理位置信息(需iphone3/android2.0以上,或者使用桌面浏览器)。
     地理位置API支持下面的浏览器及手机:
    • Google Chrome 5.0
    • Internet Explorer 9.0
    • Firefox 3.5
    • Safari 5.0
    • Opera 16.0
    • Iphone 3.0
    • Android 2.0
    • Opera Mobile 10
    • Blackberry OS 6.0
安全性和精度
       当需共享地理位置给远程服务器时,浏览器会通过弹出框或显示到浏览器顶端的提示信息来要求您的授权,智能手机会在安装相关APP时进行提示。
          

 
     上面的infobar弹出框为非模态,在选择其他浏览页面后会消失。没有方法可以绕过这种要求授权的infobar,infobar的这种特性保证了只有经过你的授权浏览器才可以共享位置信息。作为客户来说可以了解到,
  •      被告知哪个网站想获取你的地址位置
  •      可以选择共享或不共享
  •      可保存针对此选项的默认选择,该网站的类似提示不会再出现
     有多种技术可用于获取用户的位置,每种技术有不同的精确度。桌面浏览器可能会使用WIFI(精确度20米)或者IP来定位(只能精确到城市级别且可能会有误报)。移动设备倾向于使用三角定位技术例如GPS(精确
度10米仅限户外)、WIFI和GSM/CDMA(精确度1000米)。
     天气窗件
     下面这个例子使用了HTML地址位置API及OpenWeather API。该例子在页面展示部分比较简单,也没有充分使用到OpenWeather API的全部功能。现在是这个窗件的截图:


 
 
     从html部分开始。html引用了第三方的javascript和CSS,在页面初始化阶段调用了javascript方法getLocation如下:   


 
     使用了不同CSS style的table:
     

 
     在table里面使用了div,随后可以使用javascript覆写:

 
     随后使用免费的OpenWeather API获取Jason格式的天气信息并展示出来。下面定义了一些全局变量,包括获取获取当前天气、随后5天天气预测、及图片的静态URL。
     

 
     在getLocation方法里面需判断当前浏览器是否支持获取地理位置API,


 
     如浏览器不支持则会显示如下的信息,
     

 
     Geolocation API提供两种方法获取用户的地址位置信息,getCurrentPosition和watchPosition。随后会简短讨论一下两个方法的不同之处。两个方法都会立即返回,然后使用异步的方式尝试获取用户的位置。且两者都使用相同数量的参数:
 
  1.      successCallback - 方法成功返回时调用,如下图的getCurrentWeatherData方法。
  2.      errorCallback - 出现错误时调用,如下的displayError方法。
  3.      可选 - 一些可选参数,
     a. enableHighAccuracy - 默认值为false。该参数设置为true时响应时间会变慢。如果是在移动设备使用的话会使用GPS,同时导致耗电量增加。
     b. timeout - 默认为0,表示为无限制。用来指定等待响应的最大时间。这里我们设置timeout时间如下:
 

 
     c.maximumAge - 单位毫秒默认值为0。用来指定应用所能接受的缓存位置信息的最长时间。0表示获取立即获取新的位置信息。
 

 
     在errorCallback方法里,我们使用错误代码对应相应的错误信息:
 
     

 
     摘要描述一下以上步骤:
 
  •      判断是否支持获取地理位置信息API。
  •      如果支持的话,调用getCurrentPosition方法,否则调用errorcallback方法。
  •      如果getCurrentPosition方法调用成功,则返回结果被指定的方法进行处理。(getCurrentWeatherData)
  •      getCurrentWeatherData方法对返回结果postion对象进行进一步处理。
     getCurrentPosition和watchPosition
     watchPosition方法在位置改变时会进行通知。这在一些位置驱动的Apps里面非常有用,可以用来跟踪用户的移动轨迹。而getCurrentPostion则为一次性返回。watchPosition方法会返回watchId,当不需要进行持续的位置更新时可调用clearWatch方法。
     
     Position
 
     上文提到的Position对象包含以下属性:
     

 
     调用OpenWeather API的URL使用Position对象的相关属性如下:
 

 
     我们使用XMLHttpRequest对象和OpenWeather服务器进行数据交换。当请求数据发送后,我们希望根据响应执行一些操作。onreadystatechange事件在XMLHttpRequest对象的readyState属性每次改变后都会被触发,定义在该事件上的方法会被自动调用。如下是readyState属性的值列表:
 
     0: request not initialized
     1: server connection established
     2: request received
     3: processing request
     4: request finished and response is ready
 
     state属性返回“200”表示OK,“404”表示页面没有找到。当readyState值为4且state的值为200时,表示响应正确返回。解析返回的responseText对象为Json对象,随后调用Parse方法解析Json对象转换成要显示的内容。
 

 
     现在可以使用XMLHttpRequest对象的open及send方法了:
     

 
     处理Json对象
 
     可使用Json.parse方法解析并通过“.”或“[]”访问Json对象。Json和XML相似的地方是它是自描述的、分层并通过使用XmlHttpRequest获取,可以使用多种语言进行解析。和XML不同的地方是,Json不需要使用Xml解析器进行解析,直接使用javascript即可。Json数据为名字/值对格式,通过逗号分隔。使用大括号分隔对象,并使用中括号来保存数组。下面是一个从OpenWeather API返回的Json对象的例子:
 

 
       如下展示了如何使用Json对象展示返回的天气信息:
 

 
 
     
 
     
  • 大小: 102.1 KB
  • 大小: 282.1 KB
  • 大小: 5.1 KB
  • 大小: 2.3 KB
  • 大小: 3.3 KB
  • 大小: 13.8 KB
  • 大小: 1.1 KB
  • 大小: 2.3 KB
  • 大小: 1.2 KB
  • 大小: 7.6 KB
  • 大小: 5.9 KB
  • 大小: 182 KB
  • 大小: 7.3 KB
  • 大小: 7.8 KB
  • 大小: 2.5 KB
  • 大小: 18.3 KB
  • 大小: 13.9 KB
0
3
分享到:
评论

相关推荐

    Google map+yahoo!weather-天气查询-mashup

    总的来说,这个"Mashup"项目展示了一个实用的例子,如何利用开放的Web服务和API来创建一个混合功能的应用。它涉及到的关键技术包括:Web API的调用、JavaScript编程、HTML页面构建以及可能的CSS布局设计。这样的实践...

    HTML的地理定位代码

    结合HTML5的其他特性,如AJAX和Map API(如Google Maps API或Leaflet),可以创建出丰富的地理位置应用。例如,用户可以在网页上查看自己的实时位置,或者根据当前位置搜索附近的餐馆、商店等。 8. **示例代码** ...

    HTML5几个小例子.zip

    7. **Geolocation定位**:HTML5的Geolocation API允许网页获取用户的地理位置信息,为位置感知应用提供了便利,如地图服务、天气预报和导航应用。 8. **拖放功能**:HTML5的拖放API让用户可以直接在网页上拖放元素...

    bondi开发的一个小例子

    "Bondi开发的一个小例子 -- weather" 提供了一个关于天气查询的应用示例,这对于我们理解和学习Bondi框架的使用方法非常有帮助。 在 Bondi 的这个天气应用示例中,我们可以学到以下几个关键知识点: 1. **Bondi...

    html5学习例子

    7. Geolocation定位:通过navigator.geolocation对象,HTML5可以获取用户的地理位置信息,为地图应用、天气预报等提供了便利。 8. Web Workers和Web Socket:Web Workers用于在后台执行复杂计算,提高网页响应速度...

    谷歌地球官网例子

    这对于讲述地理位置上的故事或展示地理变化非常有用。 5. **event-frameend.html**: “frame end”事件通常与渲染周期相关,当一个画面渲染完成时触发。开发者可以利用这个事件来执行在每一帧之后需要执行的任务,...

    swiper手机端左右滑动天气预报代码.zip

    总的来说,这个“swiper手机端左右滑动天气预报代码”项目展示了如何结合Swiper库和天气API来构建一个实用且互动性强的移动应用。它不仅涉及到前端开发的基础知识,还涵盖了API接口调用和移动端优化等进阶技巧,是...

    html5选择当地城市天气预报特效代码

    在这个特定的项目“html5选择当地城市天气预报特效代码”中,开发者利用HTML5的技术特性实现了一个实用且美观的城市天气预报功能。 首先,这个代码的核心在于用户可以选择他们所在的城市,从而获取该城市的实时天气...

    google地图和php+mysql集合的例子(二).pdf

    此外,还定义了一个图标`iconBlue`,它是一个绿色圆形标记,用于在地图上表示地理位置。 在这个例子中,当用户访问`index.html`时,浏览器会加载地图并通过JavaScript向服务器请求`phpsqlajax_genxml.php`。服务器...

    基于高德地图开放平台的PHP天气信息组件

    【标题】"基于高德地图开放平台的PHP天气信息组件"揭示了这个项目的核心内容,即使用PHP编程语言,结合高德地图开放平台...同时,它也展示了如何有效利用第三方API来增强应用的功能,是学习和实践API集成的一个好例子。

    geolocation 根据地理坐标获取具体位置信息

    这个API是HTML5的一个特性,旨在为浏览器提供一种标准化的方法来访问设备的地理位置数据。下面将详细阐述`geolocation` API的工作原理、使用方法以及相关应用。 `geolocation` API 的核心在于获取用户的位置信息,...

    openlayers 3 例子中文解析

    - **合成点**:通过组合多个点对象创建复杂的标记图案,用于标注地理位置或其他重要信息。 #### 29. 传送地图 - **知识点:** - **传送地图**:快速移动地图中心点至指定位置的能力,方便用户查看不同地区的地图...

    21 - Geolocation.rar

    首先,Geolocation API是HTML5的一个新增特性,它提供了一种标准化的方法来获取设备(通常是指浏览器所在的设备)的地理位置信息,如经度、纬度和海拔高度等。API通过navigator.geolocation对象在JavaScript中暴露...

    javascript +ajax 例子

    这个功能常见于许多在线服务,如地图应用或者天气预报网站,它们能够实时地为用户提供精确的地理位置信息。 首先,我们需要理解 JavaScript 是一种客户端脚本语言,它允许我们在用户的浏览器上运行代码,对网页进行...

    原生js实现查询天气小应用

    这个例子展示了如何结合JavaScript、HTML和CSS构建一个基本的Web应用,并利用第三方API服务来增强功能。对于初学者来说,这是一个很好的实践项目,有助于理解网络请求、数据处理以及DOM操作等基础知识。

    Weather-app:该应用程序会获取您的位置信息,并为您提供当前的天气状况

    本文将详细介绍如何利用JavaScript技术和第三方API,构建一个能够获取用户位置并提供当前天气状况的应用程序。该应用不仅方便用户随时了解天气变化,还能提升用户体验,展现现代技术的力量。 首先,我们需要理解...

    weather:适用于移动浏览器的快速天气应用

    通过利用JavaScript这门强大的客户端编程语言,开发者能够创建一个无需安装、即开即用的Web应用,让用户在任何支持现代浏览器的设备上都能轻松查看天气状况。 JavaScript,作为Web开发的基石之一,允许开发者构建...

Global site tag (gtag.js) - Google Analytics