Rails 地图插件


在页面嵌入Goolge Maps 地图,相应的JavaScript 代码不需要开发者自己手动编写,可以借助于提供Goolge Maps 代码生成功能的插件来完成。为了在Ruby on Rails 应用中更方便地嵌入地图,我们选用了Rails 插件Cartographer (项目地址参见:http://cartographer.rubyforge. org/),来帮助我们生成嵌入在Google Maps 页面中的JavaScript 代码,例如嵌入带有控制栏和标尺的Google Maps 地图,以及带有气泡提示窗口的位置标注,Cartographer 都可以帮助我们实现。
要将用户提交的城市、街道名称等地址信息,自动进行地理译码,转换为经度和纬度存放在数据库中。这看似很神奇,但我们并不需要施展魔法,因为借助于GeoKit(项目地址参见:http://geokit.rubyforge.org/), 就可以帮助我们完成自动地理译码转换的工作。当然,作为一个功能强大的Rails 插件,GeoKit 的功能可不止是这些。GeoKit 为开者提供的功能,还包括计算地图上两点间距离,在自定义半径内搜索查询所需地物并返回特定范围内的地标,以及根据来访者IP 获得城市名称与经纬度等。

当然,除了我们所要用到的GeoKit 与Cartographer,还有很多优秀的Rails 插件可以帮助我们来简化基于Google Maps 的开发工作。比方说,YM4R(Yellow Maps for Ruby)也提供了针对于Google Maps 和Yahoo! Maps 的Rails 开发功能辅助,让开发者可以在Ruby 和Rails 应用中更方便地调用和使用地图数据。

还有收集自美国国家测绘机构、统计署、邮政局等不同来源的地理数据维基百科GeoNames(项目地址参见:http://www.geonames.org), GeoNames 把各种来源的免费数据进行集成,并在这些数据的基础之上提供一系列Web 服务。如果想查询特定位置的方位、经纬度、所属省区,或是哪些地点靠近这个经纬度,都可以通过GeoNames 的提供的Web Service 进行查询。GeoNames的数据目前已经包含了650 万个地点、将近200 种语言的850 万个地名。其地理信息还详细到坐标、行政区划、邮政编码、人口、海拔和时区。并且GeoNames 还对一般用户开放,允许他们纠正已有数据错误或添加新的地名。

posted on 2009-09-12 21:05  落人间  阅读(530)  评论(0)    收藏  举报