找到两个英国地址之间的距离

时间:2010-03-16 12:15:03

标签: c# gis distance

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

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

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

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

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

此致

7 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

如果你关心的只是粗略的估计,你可以在postgis中使用带有pgrouting的openstreetmap。如果你只是做城市到城市,那么你真的不必担心地理编码这么多,因为很长一段时间的城市已经很清楚了。

如果您的服务受限于英格兰,我会为前5000个城市的成对距离保留一个大型DB组合表。使用pgrouting离线计算一次,然后在请求进入时调用它。这将使大多数用户的应用程序快得多。

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

[更新]如果您只是粗略估计这样做,您真的需要做路由吗?或者你可以做直线距离。直线要简单得多。您只需要没有街道网络数据或进行路由计算的城市中心的纬线长度。

答案 2 :(得分:1)

截至4月1日,The Ordnance Survey已经发布了大量数据,包括他们的Code-Point产品作为免费download from their website。它也是mirrored by MySociety,其中包括转换为WGS84坐标(即GPS设备使用的坐标),从中计算两点之间的大圆距离是非常微不足道的 - 这可能是微不足道的。如果数据库中有点,则为SQL查询的一部分。

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

通常,大多数道路形状文件都有每个路段的begin_address / end_address字段,您可以在其中插入地址。最重要的是,在收集和组织地址数据时会出现GIS问题,我认为NP内容更简单。

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

答案 5 :(得分:0)

每个查询2-5便士,通过postcodeanywhere.co.uk按需付费。他们使用AA,因此他们的数据可能非常准确和完整。

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

答案 6 :(得分:0)

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

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

如果有人对获取代码感兴趣,请ping我。