私はJavascriptコーディングが初めてで、この情報を多くの場所で探しましたが、有効な解決策が1つも見つからなかったため、この質問をここに投稿しています.
for ループで、リージョン (ルートの区間) で POI をリクエストしようとしています -
service.search(request, callback);
リクエストには、クエリ対象の POI の場所やタイプなどのパラメータが含まれます。以下のようにコールバック関数を実装しました -
function callback(myResults, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
alert('myResults: ' + myResults.length);
// entire remaining code here, where I do some processing on the POIs.
}
}
このコードは機能しており、ルートの各区間で POI が表示され、アラートを使用して POI の数も表示されます。
私の問題は、ここで各区間の「myResult」を処理するのではなく、ルート全体 (多くの区間で構成される) のすべての結果を収集してから、一度に処理を行うことです。
最初に、グローバル変数 (「myPOIs」) を作成し、各区間に「myResults」を追加し、ルート全体が解析されたら、この myPOIs を処理することを考えましたが、これを追加することはできません (または方法がわかりません)。 myResults をグローバル変数 myPOIs に。
私が考えていたもう 1 つのオプションは、コールバック関数から戻り値 (myResults) を取得し、すべての結果を収集 (追加) することです。
1 と 2 の唯一の違いは、1 では if 条件内に myResults を追加するグローバル変数であり、2 では if 条件が true の場合は myResults を service.search に返し、収集することです。そこでの結果。
myPOIs.push(myResults) と他のいくつかのオプションを使用してみましたが、myPOIs.length を確認すると常に null です。コールバック関数から myResults を取得する方法が本当にわかりません。
提案/考え/ヘルプは私にとって非常に役立ちます。
そして、これにはjavascriptのみを使用し、他には何も使用したくありません。
事前にどうもありがとう、斧