8

複数のウェイポイントを使用してロード マップを描画しようとしています。Google API によると、8 つのウェイポイントしか使用できず、ビジネス開発では 23 のウェイポイントしか使用できませんが、正確な旅行マップを描画するには十分ではありません。

ここに注目すべき解決策のリンクが 1 つありますが、正しく機能しませんでした。

このソリューションには、ある時点でロードマップを描画できないという問題が 1 つあります。

私の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.583908333333337, 77.30201166666667], [28.58464333333333, 77.30217833333333], [28.584111666666665, 77.30134833333334], [28.587213333333338, 77.29757166666667], [28.58387, 77.29434666666666], [28.575966666666666 、77.28125833333334]]

これらのデータ セット ('ポイント') は次のようにエラーを返しますstatus=ZERO_RESULTS

ポイント配列から最後のポイント ( [28.575966666666666, 77.28125833333334]) を削除すると、これは適切に機能し、ステータスは になりますOK

ZERO_RESULTS代わりに取得するのはなぜOKですか? どうすればそれらの問題点をスキップできますか?

これが私のJSFiddleです:- http://jsfiddle.net/67tbw/28/

4

1 に答える 1

16

最後に修正しました。これで、任意の数のポイントで動作しstatus = ZERO_RESULTS、問題がなくなりました。

問題は、取得していたいくつかのポイントでしたstatus=ZERO_RESULT。その後、実行が停止し、そのためにマップを取得できませんでした。その問題を修正するために、ステータスが等しくないときはいつでも特定のポイントをスキップするという解決策がありました。次にOK進みますポイントの残りの部分で。これを行うには、2 つのパラメーターを使用しました。1 つは最後のインデックスを格納するためのもので、もう 1 つはパスです。OKステータスを取得できない場合、ステータスからlastIndxとパスを取得できないため、問題が発生するたびにelse部分に移動し、そこでこのようにしました。

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

*最後のポイントまで関数を再度呼び出します。その間にステータスが OK になった場合は、パスを現在のパスとして保存し、lastIndx を現在のインデックス (lastIndx = s[1]) として保存します。

このJSFiddleをチェックしてください: - http://jsfiddle.net/kousik/2pNKH/

于 2013-10-03T11:23:52.470 に答える