1

因为开源地理编码器无法与谷歌甚至雅虎相比,我想开始一个项目来创建一个好的开源地理编码器。澄清一下,地理编码器需要一些文本(通常带有一些约束)并返回一个或多个纬度/经度对。

我意识到这是一项艰巨而艰巨的任务,所以我想知道您如何开始。你会读什么?你会熟悉哪些算法?你会审查什么代码?

而且,假设您要非常敏捷地开发它,您希望第一个原型能够做什么?

编辑:让我们暂时搁置数据问题。我将使用 OpenStreetMap 数据以及我拥有的航点数据库。后来我还计划包括其他数据集,并且我意识到地理编码器将固有地受到原始数据质量的限制。

4

5 回答 5

3

第一个(也可能是阻塞的)问题是:您从哪里获取数据?(除非您愿意为专有套装支付数千美元)。

我猜你可以在OpenStreetMap之上构建一个地理编码 API (他们定期在转储中发布他们的数据),但我上次检查时那个仍然非常不完整。

于 2009-09-10T21:32:47.487 回答
1

算法很简单。然而,好的地图数据是昂贵的。非常贵。

谷歌在世界各地驾驶他们的汽车,收集这些数据等。

于 2009-09-10T21:31:38.110 回答
0
  • 从http://ipinfodb.com/ip_database.php 之类的地方获取我的免费原始数据
  • 将其加载到数据库中,进行非规范化以进行快速查找
  • 设计我的 API
  • 将其构建为 RESTful Web 服务
  • 以不同格式返回结果:JSON、XML、CSV、原始文本

第一个原型应该接受邮政编码并以原始文本返回纬度/经度。

于 2009-09-10T21:33:45.517 回答
0

从 .NET 的角度来看,这些文章可能会让您感兴趣:

编写您自己的 GPS 应用程序:第 I 部分
编写您自己的 GPS 应用程序:第 2 部分
为 .NET 编写 GIS 和制图软件

我只看了一眼这些文章,但它们已经在 CodeProject 的“最受欢迎”列表中出现了很长时间。

也许是上面文章的作者提供的这个 CodePlex项目。

于 2009-09-10T21:36:32.160 回答
0

我将从一开始就弄清楚如何获取与街道地址和地理编码相匹配的数据。要么谷歌让人们带着 GPS 装置四处走动,要么他们从一些现有的来源获得信息。现有的来源可能是......(所有猜测)

  • 邮政服务
  • 一些现有的地图(印刷)
  • 一群热心的用户,他们是 GPS 技术的早期采用者,他们非常愿意输入街道地址和 GPS 坐标
  • 一些政府实体(或实体)
  • 他们自己的卫星
  • ETC

我想我得到的是信息要么是从某个地方导入的,要么是由某人通过某个界面输入的。作为我的起点,我将研究如何获取这些信息。在开源的情况下,你也许可以让一群热心的人输入信息。

因此,对于我的第一个原型,虽然很无聊,但我会创建一个用于输入信息的表单。

然后你需要知道计算最近距离的数学方法(如乌鸦飞翔)。从那里,试着弄清楚如何包括道路。(我的猜测是您必须为每条曲线提供数据点,在其中保存曲线的地理编码位置,以及北/南和东/西矢量上的道路角度。您可能需要还要考虑倾斜度以获得准确的道路测量值。)

这就是我要开始的地方。

但老实说,我什至不会从这个开始。其他程序员已经做到了,我对尚未完成的事情更感兴趣。

于 2009-09-10T21:38:21.800 回答