1

我需要编写一个应用程序来计算两个英国地址之间的估计行驶距离;我想我可以使用谷歌如下:

http://maps.google.com/maps/nav?q=from:London%20to:Dover

但是,任何人都知道从单个 IP 地址查询数据库的每日/每月限制是多少?

我需要在商业应用程序(货运服务)中实施,有没有可靠的替代方案?我可以花一些钱;但一些';

开发语言/平台:C#、.NET

问候,

4

7 回答 7

5

您可以使用 OpenStreetMaps 数据库并自己进行计算,但这会涉及一些编码。

于 2010-03-16T12:25:07.320 回答
2

如果您只关心粗略估计,您可以在 postgis 中使用带有 pgrouting 的 openstreetmap。如果你只是在一个城市到另一个城市做,那么你真的不必担心地理编码,因为拉特朗城市是众所周知的。

如果您的服务仅限于英格兰,我会保留一个大型数据库表,其中包含前 5000 个城市的成对距离组合。使用 pgrouting 离线计算一次,然后在请求到来时调用它。这将使大多数用户的应用程序更快。

所有主要的地图播放器都有路由 API(Yahoo、Bing、MapQuest、Nokia)。您还可以查看 deCarta 以获得相同类型的服务。在很长一段时间内,它们都是雅虎和谷歌背后的 LBS 引擎。

[更新]如果你只是为了粗略估计你真的需要做路由还是你可以做直线距离。直线求解要简单得多。您只需要城市中心的纬度,无需街道网络数据或进行路由计算。

于 2010-03-17T01:18:06.327 回答
1

截至 4 月 1 日,The Ordnance Survey 发布了许多数据,包括可从其网站免费下载的 Code-Point 产品。MySociety也反映了这一点,其中包括转换为 WGS84 坐标(即 GPS 设备使用的坐标),从中计算两点之间的大圆距离是相当简单的 - 微不足道,它可以成为其中的一部分如果您在数据库中有点,则执行 SQL 查询。

如果您需要更准确的实际行驶距离,您还可以下载 Meridian 数据,并实现一个相当基本的路由算法(Djakstra 可能在这里有意义)

于 2010-04-06T15:44:34.467 回答
0

您可以在某些类型的商业 应用程序中合法使用 Google 地图。他们授予您许可证和 API 密钥以嵌入您的页面代码。当然,也有一些限制。请参阅http://code.google.com/apis/maps/terms.html

[编辑澄清。如果您不直接从中赚钱,则可以使用它,这是 OP 的意图。]

于 2010-03-16T12:20:22.137 回答
0

通常,大多数道路 shapefile 对每个路段都有一个 begin_address/end_address 字段,您可以在其中插入地址。最重要的是,您在收集和组织地址数据时遇到了 GIS 问题,我认为 NP 问题是更简单的问题。

查看postgis。您可以将形状文件转换为它。irc.freenode.net 上的 irc 房间 #postgis 非常有帮助,所以有邮件列表。

于 2010-03-16T16:35:22.043 回答
0

通过postcodeanywhere.co.uk每次查询 2-5 便士如何,即用即付。他们与机管局合作,因此他们的数据可能非常准确和完整。

可能会为您节省一些开发时间(这也转化为金钱)。与 bean 柜台核对每报价是否值 2 便士。如果没有,您可能会通过他们的服务运行 X 次最受欢迎的旅行并缓存结果(可能违反他们的条款和条件,请先检查)。

于 2010-03-18T12:13:04.397 回答
0

我已经使用 Google Maps 解决了这个问题,并且我已经使用 Newtonsoft JSON 编写了自定义 API。

我还没有在博客的任何地方发布解决方案(很快就会发布)。

如果有人有兴趣获取一段代码,请联系我。

于 2011-06-04T20:18:03.413 回答