Zeal Blog - 泽欧里
  WWW Zeal Blog
梦想 就像鸡蛋
要么孵化 要么臭掉

Reverse Geocoding for Google Maps API

zeal 2008-04-24 14:09 于 WebDev , 3932 字 |  + 0 - 0   English
Made In Zeal 转载请保留原始链接:http://www.zeali.net/entry/564
标签 ( Tags ):  ,  , 

Reverse Geocoding ,也就是反向地理编码(逆地理编码),可以根据地图上某一点的经纬度值来查询该点附近的地理信息。比如要实现捕获用户鼠标事件判断用户点的是哪国哪省哪市哪条街道,就需要有相应的 reverse geocoding 服务支撑。

在当前版本的 Google Maps API 中对这项功能提供了有限支持。对于开放了 Geocoding (GClientGeocoder)Driving Directions (GDirections) 接口的国家和地区,Nico Goeminne 写了个 GReverseGeocoder 类来完成反向地理编码解析(Google Pages 貌似这几天被 GFW 掉了,访问不到 Nico Goeminne 站点的朋友可以看我本地的镜像链接)。可惜的是目前谷歌中国的ditu.google.com还没有提供GDirections接口,不知道后续的版本会不会放出。下面是 Nico Goeminne 列出的 GReverseGeocoder 当前的国家支持情况(x=支持, n=不支持, p=理论上支持但未经过测试):

Country GClientGeocoder GDirections GReverseGeocoder
Austria x x p
Australia x x p
Belgium x x x
Brazil x x x
Canada x x p
The Czech Republic x x p
Denmark x x p
Finland x x p
France x x x
Germany x x x
Hong Kong x n n
Hungary x x p
India x n n
Ireland x x p
Italy x x x
Japan x n n
Luxembourg x x x
The Netherlands x x x
New Zealand x x x
Norway x x p
Poland x x p
Portugal x x p
Singapore x x p
Spain x x p
Sweden x x p
Switzerland x x x
Taiwan x n n
Thailand x x p
the United Kingdom x x x
the United States x x x

实际上,在 Google Maps API 官方文档里面 GClientGeocoder 接口的 getLocations(address, callback) 方法里面虽然没有明确说明,却可以传递用逗号或空格分隔的经纬度值进去作为address参数,也能达到反向地理编码解析的目地。只是目前这样调用返回的Placemark对象精度只能到国家级别,并没有更进一步的所在地信息,还没有太多的实际价值。

一些非 Google Maps 提供的 geocoding / reverse geocoding 服务链接: http://groups.google.com/group/Google-Maps-API/web/resources-non-google-geocoders ,基本上可查询范围都是欧美国家,有偿服务居多。

中国区域的 reverse geocoding 服务方面, MapABC搜索API中倒是有 reverseGeoCoding(msearchpointpara) 接口方法,美中不足的是其flash版本的地图跨浏览器兼容性又不是太好还有滚动广告条,文档的组织也够凌乱,所使用的经纬度坐标又不是标准的数字形式,极大的影响了使用体验;51ditu 的位置描述接口则直接作为收费接口有偿提供。看来想使用免费又称心的 reverse geocoding 还得耐心等谷歌地图开放相应的功能了。

附:ChinaGeocodeMaps.csv 中国地区大中城市经纬度参照表

引用本文(TrackBack): 此功能无限期关闭ing ... 如有引用请在文中标明出处并提供超链接  
2 条评论:
- 01478 () (link) 于 2008-04-25 09:13
"(x=支持, n=不支持, p=理论上支持但未经过测试)"
这个太别扭了,是我的话就这么改
"(v=支持, x=不支持, p=理论上支持但未经过测试)"
- 网站推广 () (link) 于 2008-05-12 10:14
学习中
对于这篇日志您有什么想法?我想听听您的高见。
如果您不是没有思想的机器Spammer,请告诉我 4 + 8 =
然后任选以下两种方式之一告诉我您的身份:
1. 使用您的 OpenID
2. 使用传统留言格式
(必填) 名字
如何称呼您?
(选填) URL
在此填写您的 Blog / Homepage 的地址,我将非常乐于访问
(选填) Email
Email地址将在经过防SPAM处理后显示在页面。如果您不希望公开自己的Email,请略过此栏
并写下您的见解:
(由于需要进行SPAM过滤,如果评论提交速度慢请耐心等待)
记住我?

  如何进行评论                   当有新回复时给我发送邮件通知
除了 <b> 和 <i> 之外,其他的HTML标签都将从您的评论中去除. URL 或 Email 地址会被自动加上链接.
当您点击发表或者预览之后,系统会自动保存您此次评论的内容,以便当网络原因发表失败时直接按Ctrl-V重新粘贴上次评论内容。
注意:快捷键及自动拷贝功能仅对IE浏览器有效。
 里,居也。——《说文》    里,邑也。——《尔雅》。李注:“居之邑也。”沪ICP备05024379号 Back To Home All Links Loading