1

InfoWindowGoogle プレイスから取得した 20 のうち特定のものを開きたいと思います。

まず、どちらを開くかを決定する必要があります。というわけで、開ける場所がわかったら、Google Places ビジネス ID で開きたいと思います -> place.id

したがって、これまでのところ、次のようにマーカーの順序 ( i ) でテストしました。

openInfoWindowBy(i){
    infowindow.open(map,i);
}

私は電話しました:openInfoWindowBy(1);そしてInfoWindow1、開かなかった。クリック イベントは正常に動作します。

google.maps.event.addListener(markers[i], 'click', getDetails(placesArr[i], i));
markers[i].setMap(map);
addplace(placesArr[i], i);

私は何を間違っていますか?そして、までに開くことはできplace.idますか?

4

1 に答える 1

1

Google マップデベロッパー ガイドのこのセクションにあるサンプルをご覧ください。Google Maps API の V3 の Places ライブラリは結果を配列で返すため、配列をループするときは、place.id ではなくインデックス値を使用して、マーカーをループ/追加/再参照する必要があります。

つまり、配列openInfoWindowBy内のインデックスではなく、インデックスを参照するための既存のコードです。markersこれは次のようになります。

openInfoWindowBy(i){
   infowindow.open(map,markers[i]);
}

2番目の引数を作成する必要がありますmarkers[1]

于 2012-05-11T16:33:26.340 に答える