使用Google Directions API问题绘制超过8个航点的路线图

时间:2013-10-01 12:47:32

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

我正在尝试使用多个航点绘制道路地图。根据Google API,您只能使用8个航点,而对于业务开发,您只能使用23个航点,但这还不足以绘制精确的旅行地图。

我得到了一个值得注意的解决方案link here但是没有正常工作。

这个解决方案有一个问题,因为它无法绘制路线图。

如果你打开我的JSFiddle,你可以看到有一些方法点:

如: -

var points = [[28.595161666666666,77.31429666666666],[28.602561666666663,77.31256166666667],[28.594639999999995,77.30559166666667],[28.585825,77.30017],[28.58475333333333,77.30100333333333],[28.583985,77.30347166666667],[28.584005,77.30288],[ 28.584428333333335,77.30269166666668],[28.584080000000004,77.30304],[28.583235,77.30358500000001],[28.584435,77.30268333333333],[28.583306666666665,77.30265666666666],[28.584278333333334,77.30283833333333],[28.586365,77.29805166666667],[28.583978333333334,77.30177],[28.584324999999996, 77.30284166666667],[28.584238333333328,77.30340666666666],[28.584101666666665,77.30290666666666],[28.590111666666665,77.30175666666668],[28.584323333333334,77.30297333333333],[28.584215000000004,77.30304666666666],[28.583788333333338,77.30260666666666],[28.584193333333328,77.303015],[28.583798333333334,77.30157833333332] ,[28.584288333333333,77.30296166666668],[28.583810000000003,77.30295333333333],[28.583908333333 337,77.30201166666667],[28.58464333333333,77.30217833333333],[28.584111666666665,77.30134833333334],[28.587213333333338,77.29757166666667],[28.58387,77.29434666666666],[28.575966666666666,77.28125833333334]]

这些数据集('points')会返回错误status = ZERO_RESULTS

现在,如果您从点数组中删除最后一个点([28.575966666666666, 77.28125833333334]),那么这将正常运行,状态为OK

为什么我会ZERO_RESULTS而不是OK?我怎样才能跳过那些有问题的要点?

这是我的JSFiddle: - http://jsfiddle.net/67tbw/28/

1 个答案:

答案 0 :(得分:14)

最终修复它。现在可以使用任意数量的点,现在status = ZERO_RESULTS不会有问题。

问题出在我得到status=ZERO_RESULT的某些点上。之后它停止了执行,由于我没有得到地图。所以为了解决这个问题,我带来了解决方法,每当我跳过特定的点状态不等于OK。然后继续执行其余部分。为此,我采用了两个参数,一个是存储最后一个索引而另一个是路径。因为当我不能获得OK状态时,我将无法从状态获取lastIndx和路径,所以当我遇到问题时,它将转到else部分,在那里我确实喜欢这个。

1. lastIndx = lastIndx+1 ,
2. gDirRequest(service, waypoints, userFunction,lastIndx , path) 

*再次调用该函数直到最后一点。如果我得到状态是好的,那么我将路径存储为当前路径,将lastIndx存储为当前索引(lastIndx = s [1])。

检查这个JSFiddle: - http://jsfiddle.net/kousik/2pNKH/