使用Gears获取当前地理位置

In: 前端开发

5 09 2009

晚上在Google Code上闲逛,发现google gears从0.4版开始新增了一个获取当前地理位置的Geolocation API。试用了一下,居然准确地找到了我的当前位置,很神奇~401705e0-e662-44bc-9099-72c5e4ad7ed7

相信大家对Google Gears都已经很熟悉了,三大主要功能:本地存储DataBase、本地服务器LocalServer、任务池WorkerPool,外加一个桌面相关功能DeskTop。如果对Gears的这几个特性不是很了解,可以参看老六写的这篇文章。在我这篇文章里只讨论Geolocation API。

这个API使用起来很简单,下面简单的列一下:

var geo = factory.create('beta.geolocation'); //创建geolocation对象
var okCallback = function(d){
 
alert('当前位置(纬度,经度): ' + d.latitude + ',' + d.longitude);
};
var errorCallback = function(err){
 
alert(err.message);
};
geo.getCurrentPosition(okCallback , errorCallback);

基本就是这样了,在这之前创建factory以及获得permission的代码就不贴了,看下源码就OK了。

另外,随手抓包看了下这个API实现的原理,其实就是post当前用户的一些信息给google服务器(我这里,post的数据有wifi的ssid,信号强度啥的),服务器就会返回当前的位置,这个技术上没啥特别的,关键在于数据的丰富程度与是否精确。

request:
post http://www.google.com/loc/json
data { “access_token” : “2:FIcsRNHXKylSLYpZ:N7RPZxjyMIX4AiMb”, “host” : “test.*.*.com”, “radio_type” : “unknown”, “request_address” : false, “version” : “1.1.0″, “wifi_towers” : [ { "mac_address" : "00-*-*-*-*-ea", "signal_strength" : -73, "ssid" : "***" }, { "mac_address" : "00-*-*-*-*-aa", "signal_strength" : -80, "ssid" : "*-*" }, { "mac_address" : "00-*-*-*-*-ba", "signal_strength" : -44, "ssid" : "*-*" } ] }

response:
{“location”:{“latitude”:40.050772,”longitude”:116.308348,”accuracy”:150.0}}

大家有空也可以试一试,看Gears能不能找到你的位置(需要先安装Google Gears,Chrome已经内置了Gears)。点这里

Update:firefox3.5+已经内置了geolocation,所以修改了一下Demo,在firefox3.5+中不需要安装Gears也可以用了,具体实现还是看Demo吧~另外,Gears几大特性逐渐被各大浏览器所内置,Gears也算功德圆满,不久将会退出历史的舞台

再来看看这些吧

7 Responses to 使用Gears获取当前地理位置

Avatar

welefen

10月 27th, 2009 at 1:06 pm

还不错。貌似不是很精准,我的地理位置竟然到了闵行区。

Avatar

星月迷梦

02月 5th, 2010 at 12:30 am

准备试一下··

Avatar

崔凯

03月 9th, 2010 at 12:07 pm

我跑到了东城……

Avatar

可以在前端实现的几个地理位置小功能 | 幼学笔记

03月 13th, 2010 at 1:08 pm

[...] 更多内容参考这篇文章:使用Gears获取当前地理位置,以及DEMO。 [...]

Avatar

04月 24th, 2010 at 4:02 pm

楼主好文章,飘过。
刚建的前端开发博客,有空交流一下吧。
http://bokanstar.info
期待更好的文章。

Avatar

前端开发吧

04月 24th, 2010 at 5:57 pm

踩过,终于又看到新文章了。每次来都能学到新东西,希望下篇文章尽快出来,HOHO。

Avatar

3g培训

04月 28th, 2010 at 1:42 pm

再来看看。上班没事干。还是希望看到新文章

Comment Form

关于我

JerryQu,当前从事前端开发,@中国北京
这里是我随便记录东西的地方~
需要找我,我的联系方式在这里 »
查找QGYWebim相关信息,请点这里 »

  • 热趣站长: 刚下了,试一下,非常感 [...]
  • 寻找白云: 效果很棒 [...]
  • avenger: 你的水平真高,这代码不得了,说实话我都有点不敢相信是国内人写的,更 [...]
  • 来无影: 这个站的模板不错,我很喜欢![:13 [...]
  • 莞尔: 我用了你的表情插件发现一个问题 那就是路径问题 我的WP没有放在根目录 [...]
  • samuel: 很棒。你自己写的demo,比去看jquery代码简单多了 [...]
  • samuel: 非常棒,很有参考价值。比去看jQuery代码舒服多了 [...]
  • 风剪云: 向你学习了。BS无德之人,拿去用也罢了。居然还拿去赚钱。[:11 [...]

共享