専門用語の誤用がありましたらご容赦ください。私はまだプログラミングにかなり慣れていません。Google Maps API 3.12 を使用して住所付きの 600 エントリのメニューを含むマップを作成していますが、これは主に JavaScript の問題です。各住所は (メニューで) クリック可能で、マップがそれぞれのマーカーに移動します。または、マーカーをクリックすると、ユーザーはメニュー内のその場所に移動します。
私はただ一通り書き始めただけですが、これが 20,000 行をはるかに超えるコードを送信することにすぐに気付きました。
初期コードの一部を次に示します。
function initialize() {
var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var latlng1 = new google.maps.LatLng(41.88267,-87.623758); //etc for all 600 addresses
var marker1 = new google.maps.Marker({
position: latlng1,
map: map
}); //etc for all 600 markers
var contentString1 = '<div>blahblahblah</div>'; //gives content specific to place1.
var infowindow = new google.maps.InfoWindow();
}
以下は、行で保存したい場所です。place
このコード全体を/ marker
/contentString1
と2
and3
に対して600 回コピー アンド ペーストする代わりに600
、これらすべてに対してこの関数を 1 回記述する方法を見つけようとしています。
google.maps.event.addDomListener(document.getElementById("place1"), "click", function() {
map.setCenter(marker1.getPosition());
map.setZoom(15);
infowindow.setContent(contentString1);
infowindow.open(map, marker1);
window.location = '#map-canvas';
});
このコードにより、メニューをクリックできるようになり、マップは対応するマーカーにジャンプし、情報ウィンドウもポップアップします。いつも「クリックして、それぞれのコンテンツにplaceX
移動する」だけですが、普遍的なものを見つけるのに最も苦労しています。markerX
latlngX
infowindow
次のようなものは機能しますか?私の理論ではplace
、特定のplace
. place
これにより、クリックされた特定の追加番号が引き出され(x
以下でその番号を呼び出します)、それを以下の関数に適用します。place
要素を ID からクラス要素に変更した場合、これは可能になりますか? 私はそれを行う方法さえわかりません。それは、私がすでに持っているコードで別の問題を引き起こすでしょうか?
google.maps.event.addDomListener(document.getElementById("place"), "click", function (x) {
map.setCenter("marker" + x.getPosition());
map.setZoom(15);
infowindow.setContent("contentString" + x);
infowindow.open(map, "marker" + x);
window.location = '#map-canvas';
});
私はこれについて何日もバリエーションを試してきましたが、何も機能しません。それが理論、範囲、構文、または上記のすべての問題であるかどうかはわかりません。何か案は?ありがとう。