Google Distance Matrix服务的替代品?

时间:2012-12-05 21:56:59

标签: javascript google-maps google-maps-api-3

我正在制作一个报价计算器,它将根据不同地点(以及其他条件)之间的里程数生成报价。直到两天前,我才计划使用Google的距离矩阵服务,直到我发现:

  

显示Google地图

     

使用距离矩阵服务必须与Google地图上的信息显示相关;例如,在请求并在地图上显示那些目的地之前,确定彼此在特定驾驶时间内的起始 - 目的地对。禁止在不显示Google地图的应用程序中使用该服务。

我原本希望只使用我需要的服务:

  

- 最多三个不同地点之间的道路测量距离

     

- 地址自动填充服务可在输入框中使用

     

- 准确可靠的服务,可提供多条不同路线以创造平均距离

我知道还有其他方法可供选择,但我怀疑许多方法可以像谷歌一样准确可靠,我发现找到与谷歌地图相媲美的任何东西都很困难。

所以,除非你们能指出我可以使用的东西,否则我唯一的选择就是使用我不需要它的谷歌地图,增加额外的加载时间并改变我计划的用户体验设计。

是否有任何可用的免费服务(最好使用JS API)?

略有不同的说明

如果我确实使用谷歌地图,是否必须立即显示,或者我可以隐藏它并在“在地图上显示”中添加一个选项,并让它显示.slideToggle?

4 个答案:

答案 0 :(得分:11)

不幸的是,对于Distance Matrix API,Google严格要求您在应用中显示地图:

  
    

使用距离矩阵API必须与Google地图上的信息显示相关;例如,在请求并在地图上显示那些目的地之前,确定彼此在特定驾驶时间内的起始 - 目的地对。禁止在不显示Google地图的应用程序中使用该服务。     http://developers.google.com/maps/documentation/distancematrix/#Limits

  

但是,我认为对您的需求更有用的是Google Directions API。方向API可以满足您的要求。

  

从请求中返回JSON对象中的总距离。

     

您可以选择最多不同的位置来查找在搜索请求中使用Waypoints之间的距离。然后在每个" leg"。

中返回这些位置之间的距离      

您可以通过在alternatives的搜索请求中指定true参数来获取到目的地的多条不同路线的平均距离。请参阅:http://developers.google.com/maps/documentation/directions/#RequestParameters

     

最重要的是,Google在使用此服务时无需在您的应用中显示Google地图。

如果你选择使用它,我还应该提到这项服务的缺点。

  1. 处理您的请求所需的请求时间将比您使用Distance Matrix API的时间略长。
  2. 您在返回对象中会有很多不需要的数据,例如个人"步骤"根据您的应用程序要求,不需要返回的json对象中的路由。
  3. 鉴于这些缺点,我仍然强烈建议您查看适合您应用的Directions API。

答案 1 :(得分:1)

我不知道Google静态地图是否算作地图,但它应该是,因为它是地图和Google。 您可以计算路线,然后将其显示为静态地图中的图像。无需额外的地图加载时间。只有一张图片。

https://developers.google.com/maps/documentation/staticmaps/#Paths

答案 2 :(得分:1)

许多开发人员已经能够使用Bing Maps REST路由服务http://msdn.microsoft.com/en-us/library/ff701705.aspx执行此操作。它需要更多的开发,但运作良好。以下是一个示例:http://code.msdn.microsoft.com/Bing-Maps-trip-optimizer-c4e037f7

答案 3 :(得分:0)

Streetmap和arcserver可以解决车辆路径问题,但它不是免费的。在此处阅读更多内容:http://www.esri.com/data/streetmap