インターネット(StackOverflowを含む)のさまざまなコードを一緒に使っています。ほとんどの場合、配列からポストコードをジオコードする作業マップがあります各自のインフォーワード・ウィンドウ。Google Maps API - 複数の情報ウィンドウと自動センタリング
2つの問題:
1)常に最後の配列値
2を使用し、別のアレイから自分のテキストを取るべきである私の情報ウィンドウ、)私はマップが自動的に中央に取得することはできません。私は他の状況で働いているコードのビットを使用していますが、私のコードではありません。
コードはかなり自明です:
var geocoder = new google.maps.Geocoder();
var map = new google.maps.Map(document.getElementById('map'), {
//zoom: 10,
//center: new google.maps.LatLng(-33.92, 151.25),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var postcodes = [
"EH14 1PR",
"KY7 4TP",
"IV6 7UP"
];
var descriptions = [
"Slateford",
"Cortachy",
"Marybank"
];
var markersArray = [];
var infowindow = new google.maps.InfoWindow();
var marker, i, address, description;
for(var i = 0; i < postcodes.length; i++) {
address = postcodes[i];
description = descriptions[i];
geocoder.geocode(
{
'address': address,
'region' : 'uk'
},
function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
marker = new google.maps.Marker({
position: results[0].geometry.location,
map: map
});
markersArray[i] = marker;
console.log(markersArray[i]);
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(description);
infowindow.open(map, marker);
}
})(marker, i));
} else {
alert("Geocode was not successful for the following reason: " + status);
return false;
}
}
);
var bounds = new google.maps.LatLngBounds();
$.each(markersArray, function (index, marker) {
bounds.extend(marker.position);
});
map.fitBounds(bounds);
console.log(bounds);
}
任意の考え?この問題は、ジオコード機能内のカウンタiの値と思われます。
ご迷惑をおかけして申し訳ありません。
ありがとう:)私は、さまざまな部分(ループ、ジオコード、アタッチイベント)を別々の関数に抽出して自分で管理しましたが、8時間前に自分のQに答える十分な担当者がいませんでした。私はその作業をすることができなかったので、境界計算のためにあなたのソリューションを試してみます。ありがとう! – melat0nin