私は現在、一連のマーカー(JSONオブジェクトからのデータ)を最終的にGoogleマップにプロットするページを使用しています。
マーカー配列を塗りつぶしたままにする方法を構成できないようです。getJSON呼び出しの範囲外であるため、配列は空です。
var markers = [];
var map;
var mapOptions = {
center: new google.maps.LatLng(0.0, 0.0),
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
$.getJSON("Home/GetLocations", function (data) {
for (index in data) addMarker(data[index]);
function addMarker(_data) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(_data.lat, _data.lng),
map: map,
title: _data.name
});
markers.push(marker);
}
//markers = 3 at this point.
});
// markers = 0 at this point.
配列をまだ埋める必要がある理由は、ページ上の各マーカーのハイパーリンクを作成して、クリックするとマップが正しいマーカーにズームできるようにするためです。理想的には、これはjavascript関数呼び出しを伴うハイパーリンクであり、このjavascript関数は、選択されたハイパーリンクのマーカーインデックスをパラメーターとして渡され、次のようになります。
function zoomIn(selectedIndex) {
map.setCenter(markers[selectedIndex].getPosition());
}
ただし、この時点では、マーカー配列は空白であるため、各マーカーを保持しなくなります。
誰かが私を正しい方向に向けることができれば、それは素晴らしいことです。ありがとう