Googleマップの最新版を使用してmap
にmarkers
を印刷しようとしています。 は、私が使用していることを実行します。Googleマップ、マーカー情報が彼のマーカーに近づいていません
function initmap2() {
map2 = new google.maps.Map(document.getElementById('map-scan'), {
zoom: 16,
styles: style,
center: { lat: 13.7218501, lng: -89.2039192 }
});
for (i = 0; i < positions.length; i++) {
markers = new google.maps.Marker({
position: new google.maps.LatLng(positions[i]),
map: map2
});
}
var markers = positions.map(function (location, i) {
return new google.maps.Marker({
position: location,
});
});
for (var i = 0; i < markers.length; i++) {
markers[i].info = new google.maps.InfoWindow({
content: '<b>' + positions[i]["title"].toUpperCase() + '</b>'
});
markers[i].info.open(map2, markers[i]);
}
}
マーカーが正しい位置に表示されますが、InfoWindws
は非常にそれらを離れています。
なぜ私はmap
の代わりにmap2
を使用していますか?別のgooglemap
を事前にロードし、map2
がダイアログにロードされます(ダイアログが開いている場合はオンデマンドで)
この動作を修正するにはどうしたらいいですか?
あなたは 'マーカー 'を2回設定しているように私に見えます。一度グローバルになると、その都度上書きされ、一度はローカルに上書きされますが、 'map'には設定されません。あなたがjsfiddleを作成した場合、私はそれが明確でない場合は何を意味するのかを示すことができます。 –
実際の例がないと、マーカーARRAYは、指定したコードで決して更新されません。私は可読性を高めるために変数名を変更することをお勧めします。 –