为Windows Mobile设备创建位置感知的应用程序
2011-01-06 10:59:01 来源:WEB开发网这个白皮书中所用的Web服务是REST服务,也就意味着无论从浏览器还是应用程序中创建请求URL都是很容易的。譬如,你可以构造类似如下形式的URL获取基站位置。
http://zonetag.research.yahooapis.com/services/rest/V1/cellLookup.php?apptoken=3eeb504e7c4cdccf6641bef7cdfa06c8&cellid=19658&lac=1020&mnc=8&mcc=204
下面的代码展示了Yahoo基站查询Web服务返回的XML响应。
< ?xml version="1.0" encoding="utf-8" ?>
< rsp stat="ok">
< Location>
< Country cell="current" source="user">Netherlands
< /Location>
< Location>
< Country cell="" source="GPS">The Netherlands
< State cell="" source="GPS">Array
< City cell="" source="GPS">Alphen aan Den Rijn
< Zipcode cell="" source="GPS">2408
< /Location>
< /rsp>
当然还有其他一些可用的Web服务,包括一个由Google托管的可以为世界上的蜂窝基站提供合理精确度位置信息的服务。至于如何使用Google Maps内部使用的非文档化的Web 服务,这已经超出了本文的讨论范围。如果你想阅读更多关于如何访问这个传递基站位置的信息的特定Web服务的内容,你可能会在CodeProject上找到更多感兴趣的文章。
使Windows Mobile 设备的位置感知不依赖于位置检索方式
在你的应用程序中,程序应该是与取得当前位置的方式无关的。无论通过GPSID检索还是蜂窝基站检索,只要你有了一个好的当前位置经纬度读取方式,你都可以在在你的位置感知的应用程序中使用这些位置信息来完成各种任务,譬如以下这些任务:
在Twitter中发布位置感知的"Tweets"
在Face Book中发布照片并自动插入图片的拍摄位置
创建位置感知的博客内容
通过Live Search执行本地搜索
通过Virtual Earth显示当前位置周围的地图
为了保持Windows Mobile应用程序的整洁,并使得取回位置信息的方式不依赖与底层的位置搜索技术,可以考虑创建一个类工厂来获取位置。如果你正在开发一个定位于 Windwows Mobile设备的应用程序,你首先应该想到的是通过蜂窝基站获取位置信息。假如你已经通过移动运营商连接到了一个蜂窝基站的话,这种方式是不消耗设备电池的。如果你想得到你的精确位置,或者你不确定通过蜂窝基站得到的位置的精确性,你可以使用GPS功能获得一个更好的定位,甚至可以通过几个Web服务更新蜂窝基站的可用位置信息使其更精确。然而,所有这些功能对你的用户来说应该是透明的。如果你对蜂窝基站检索的位置不够信任的话,可以使用用蜂窝基站检索位置,再结合GPS获得更多细节信息,这是一种被称为Assisted
更多精彩
赞助商链接