如何从服务器端ASP.NET 2.0使用Google Map API获取距离

3

我正在开展一个需要服务器端访问谷歌地图API的项目。我想计算距离(实际距离,而非直线距离)。谷歌地图API支持JavaScript而不是ASP.NET。请给出建议...!

6个回答

2
Google API允许您通过服务器端调用进行地理编码:

http://code.google.com/apis/maps/documentation/services.html#Geocoding_Direct

这将允许您获取位置的经度和纬度。然后,您可以缓存它们并使用CMS建议的技术来计算距离。
但是,您需要注意Google T&C,因为您只能存储地理编码数据以在公开可用的Google地图上使用。
您可能还会遇到从单个IP发出请求的数量限制。
然而,我认为您所说的非直线距离是指考虑道路和单行道等因素的距离。
如果是这种情况,我认为商业服务是您唯一的选择。尽管理论上您可以通过屏幕抓取来完成所有操作,但我几乎可以肯定这将违反Google的T&C。
最简单的解决方案可能只是在应用程序的页面上嵌入Google地图,让用户计算距离。如果需要,您可以预先填写目的地和起点字段。
同样,如果这是针对内部应用程序的(即不公开可用),那么“我的理解”是Google的T&C将禁止此类操作。

2
你在问题中指定了Google地图,但你是否看过Virtual Earth?特别是这个使用Virtual Earth Web服务进行路由的例子听起来就像你想要的:
  • 服务器端访问(只需在Visual Studio内添加服务引用)
  • 实际距离(不是直线距离),因为它使用的是路径
其他人提出的关于“内部/企业网使用”的条款问题也适用于VE和Google,我认为 - 你需要阅读相关内容以确定你的应用程序是否需要许可证。
另外,如果你只是想计算直线距离,我有使用SQL Server 2008的说明;它还链接到一些使用C#的直接代码

1

使用类似于Firebug或Fiddler的工具,查看从JavaScript发送到Google的请求。然后,您可以利用这些信息和.NET中的HTTPWebRequest构建请求并获取相同的信息。

希望对您有所帮助。


0

如果我要使用API平台,我肯定不会使用谷歌,因为免费的版本不包括高级地理编码,这意味着准确性很差。此外,没有SLA、支持或服务权利。

指示很差,爱尔兰和地理编码的覆盖范围几乎像是儿童般的,而且隐私问题也很糟糕。任何专业企业都不会使用谷歌地图解决方案。

他们抄袭其他人的想法,说这是他们自己的,并获得了大量的新闻报道(他们只在2006年添加了地铁站),以及骑行车道(2010年),Viamichelin在2006年添加了这些功能,交通信息则是在2009年!

任何寻找API的机构或开发人员应该选择Bing或ViaMichelin,以获得更好的定制和用户体验,这是致命的!


0

您可以使用大圆距离算法计算两个地理坐标(纬度,经度)之间的距离。

这里您可以找到其他距离计算公式。


0

嗯,你基本上已经找到了关键问题,Gmaps API是一个驻留在浏览器中的JavaScript API,这个问题没有太多绕过的办法。大部分API都在浏览器中执行,所以网络流量被监视的机会不多。

正如tsaunders提到的,有一个地理编码API调用可以通过REST方式访问,但它只能进行反向/地理编码,如果你已经有了纬度/经度,你可以使用rms建议的计算方法,但正如tsaunders指出的那样,这是“直线距离”。

如果你确实需要道路行驶距离,API可以进行路线规划,但你需要再次回到浏览器从用户那里获取起点和终点。

也许你可以更具体地说明你想要做什么,以及为什么你觉得这需要你从服务器访问API。例如,我的应用程序具有从用户那里收集信息并将请求发送回我的服务器进行处理的功能,其中一些数据首先由Gmaps API处理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接