~Leona小包子の心情~
永远是蓝色的---- “听默默在唱歌 ^-^ 大家都很快乐”

今年最后一个工作月,圣诞可能去北京过吧,所以得抓紧这三个周出点东西了^_^

刚完成一份关于应急案例时空建模及系统分析的文档报告,决定抽取里头一个关于geocoding算法的部分做下周的读书报告主题。

发现geocoding深入研究的资料特别少~ 在网上搜集了一些,整理整理 都写在这里吧。

预计一周内陆续加入,待续

 

做gis的人一般都常听起一个词:地理编码,翻译过来就是geocoding。那么,究竟什么是geocoding呢?

wiki百科给出的答案是:

Geocoding is the process of assigning geographic coordinates (e.g.
latitude-longitude) to street addresses, as well as other points and
features. With geographic coordinates, the features can then be mapped and
entered into Geographic Information Systems.
地理编码是将地理坐标(例如经纬度)赋予街道地址还有其他点位和地理特征的过程。有了地理坐标,地理特征就可以被显示到地图上或运用到地理信息系统中。

不难理解,相反的,由一个地理坐标得到相应的地址表述的过程,就称作"逆地理编码(Reverse Geocoding)"。

地理编码和逆地理编码都是很常用的功能。

举个日常生活中的例子,你想去中关村大厦,于是进入某个本地搜索网站,输入关键字"中关村大厦",然后你就得到了一张标有"中关村大厦" 的地图。在这个过程中,地理编码的步骤被隐含着,因为对于一般用户来说,得到经纬度的数值是没有用处的,只要得到包含目标的地图就可以了。而对于后台服务,则经历了两个步骤:一,通过地理编码查询得到中关村大厦的地理坐标;二,取得一幅这个坐标附近的地图,把"中关村大厦"标在这个地图上反馈给用户。

再例如,你从GPS设备得到了你当前的经纬度,可是你并不知道自己身在何处,这个时候你可以通过逆地理编码服务得到你当前所在的地区名和街道名,并且了解到
你附近有什么标志性建筑,你还可以把这个地址描述发给你的朋友从而让他方便地找到你。

听起来很实用,很便利。那么,地理编码功能又是如何实现的呢?

首先需要有一个数据库来存储地址。也就是一个包含着地理坐标信息的地址列表。有了这个地址库,我们就可以迅速的查询到某个地址的地理坐标。但是,即使是任何一个小城市也会存在数不完的地址,想要采集出全部的地址及其坐标几乎是不可能的。于是,在美国以及许多国家,人们通过一种叫做"地址插值"的方法来计算某个地址的坐标。什么叫做地址插值?通俗地说,假设我们知道王府井大街1号的坐标和王府井大街50号的坐标,就可以近似的认为王府井大街2号至49号这些地址平均分布在整个王府井大街上,于是我们就可以用数学公式近似计算出王府井大街2号至49号全部地址的坐标。这种方法当然会存在一定误差。然而美国及一些国家中大部分城市地址的规则度较高,所以地址插值法在美国的实用性还比较好,但是对于中国现在地址分布较乱的国情,这种编码过程就不太适用了。因此,我们不得不尽可
能多地来收集地址信息。而这样浩大的工程,通常都会由政府部门来投资。另外,国内有测绘资质的商业公司也都在采集数据。

逆地理编码的过程也不难理解:根据指定的地理坐标,从空间数据库中分别查询出该坐标所在的城市名称、区域名称、街道名称以及附近的地标,然后把这些信息组合成一个­完整的地址描述。例如:北京市海淀区中关村大街1号海龙大厦附近。

现在网络上免费的地图接口有Google Maps API等,但它们都不包含开放的地理编码服务。现有的提供中国数据的地理编码服务的开放接口只有http://freemosp.51ditu.com(图灵),其中包含中国38个城市的geocoding和reverse geocoding服务。它有个缺陷就是:只能通过名称搜索查找,不能以地址作为关键字。例如:键入“中关村大厦”可以搜索到其详细地址,包括经纬度,但搜索“王府井大街3号”无法找到结果。另外,图灵公布的地理坐标都经过了偏移,为了国家安全隐私等方面的考虑。有时候,位置服务的确是一把双刃剑。

地理编码和位置编码有时候容易被人混淆,记住,只要是以获得某地的“地理坐标”为目的的,实际上进行的就是“地理编码”。

 

 

 

 

 

 

 

 

 

 


 

posted on 2008-12-02 10:53  亲亲小包子  阅读(309)  评论(0)    收藏  举报