星期二 四月 22, 2008

FireEagle是由Yahoo!推出,帮助用户在线分享地理信息的位置感知中间件。FireEagle完全使用Ruby on Rails搭建,最初是源自于Yahoo! Berkeley研究中心的ZoneTag项目。

FireEagle为使用者提供了整合位置信息的平台,帮助用户向Web 2.0在线服务分享他们的地理位置信息,使用者可以通过基于FireEagle API开发的第三方应用,将包含经纬度在内的位置信息共享到FireEagle,或者是使用GPS设备将位置信息传送给FireEagle平台。

在FireEagle提供的开放性位置服务平台辅助下,开发者可以通过安全、便捷的方式创建基于网络、移动设备以及桌面的位置服务应用。比方说Flickr相册,已经为用户在照片上添加位置信息提供了便利,这些信息可以被FireEagle获取并进行展现,为用户通过何时何地在何处的历史记录。使用者还可以在Facebook中集成FireEagle插件来感受一下FireEagle的用途。

同时,FireEagle为使用者提供了数据控制和隐私保护措施,用户完全不必担心位置相关的个人资料及私隐的泄漏。用户可以在Fire Eagle 的数据库中将所有的私有数据清除,或者是在系统中进行设置,当有人试图跟踪用户的个人位置信息的时候,发送邮件询问用户是否将位置信息向授权人公开。

目前FireEagle处在Alpha测试阶段,需要先在站点通过Email 注册申请,收到邀请之后即可使用测试,还可以使用为FireEagle提供了API封装的Ruby Gem包对其进行操作。预计FireEagle正式发布之后,将会有更多基于FireEagle的位置服务为我们带来新的体验。

星期六 一月 12, 2008

用过Google Maps的朋友都会认为它很Cool。其实创建一个类似的地图服务站点,在技术上难度并不大,已经有较为成熟的开源解决方案。但是能像Google那样有原始影像数据和庞大的集群支持,不是一般站点可以做到的。

这次把Google Maps搬出来,是想分享一下比较有意思的Google坐标换算方式。Google Maps使用Keyhole公司提供的卫星影像,全世界众多大城市的卫星图片可以达到1m以下的精度。Google Maps的卫星影像使用等角正切圆柱的墨卡托(Mercator)投影,被预先处理成按照不同精度划分的影象金字塔,提供了0-17共18级的缩放等级并进行四叉树编码,每张卫星图都由切片成256*256像素大小的影像组成,根据用户请求的位置拼接组成大的影像图。

Google Maps的坐标使用QRTS这四个字母进行编码,如右图所示,一张图片被分成不同字母标识的4块,根据请求的位置逐级细化,最后达到所需精度的卫星图片。如果知道特定位置的经纬度,换算成Google Maps坐标并不复杂。首先将经纬度转换为弧度,规格化后使得变化区间在0-1之内,然后根据需要的图像精度级数确定迭代次数,进而计算出经纬度对应的Google坐标字符串。

按照计算公式,北京的经纬度以天安门作为地理标准坐标,位于北纬39度54分27秒,东经116度23分17秒。换算后得到北京的Google坐标字符串是trstrqqrqssttttrrrstq,具体对应的卫星影像地址为:http://kh.google.com/kh?v=3&t=trstrqqrqssttt 网上提供了C和Python写的换算程序,感兴趣的朋友可以一窥究竟,方便的把经纬度换算成Google卫星影像坐标。

星期一 五月 28, 2007

Google所带来的最大影响,在于它一直用前瞻性的技术改变着我们对互联网的看法。最近使用GoogleMaps的API做了些小的实验代码,基本就是将标注在数据库里的点坐标显示在Google提供的卫星地图上,不仅可以显示点标记的详细内容,还可以显示各点之间的路径信息。基于LAMP结构的PHP代码有很多不错的示例,只需将SQL脚本包含的坐标及路点信息存储在MySQL里就可以读取显示在GoogleMaps上,如果使用JSP开发,GoogleMaps JSP Taglibrary项目提供了一组Java类库,将JSP的Tag标签转化为调用地图的脚本,大大简化调用地图API的时间,并且它还能够与JSTL相结合生成数据库驱动的动态地图查询。

之所以说Google有时在引领Web技术的走向,Ajax的普及应用就是一个极好的证明,最近试用了Google发布的Ajax的工具包Web Toolkit,这个工具包可以加在Eclipse环境下通过Java类的编写自动生成Ajax所需的脚本,实现类似Gmail的富客户端效果的界面风格,只是感觉上手使用还有些不方便,但随着版本更新,这应该会是很不错的Ajax代码生成方式。

当然Google的核心服务还是互联网搜索,说不准下一个Google神话将在何时诞生,但有兴趣的朋友可以使用开源的Java项目Nutch实现一个自己的互联网搜索引擎,在Nutch里面包含有完善的排序算法和网络爬虫程序,构建一个简单的互联网搜索站点应该不会只是一个梦想。

This blog copyright 2009 by Gao Ang