0
これは本当にシンプルだと確信していますが、何が間違っているのか分かりませんでした。空の配列(場所)を作成して、getPartnerLocations
関数内の場所オブジェクトで埋めて、drop
関数を使用して地図上の場所をプロットしようとしています。私が抱えている問題は、drop
関数の中で、その中にあるものがある長さの配列がゼロの長さを返しているので、ループが機能していないということです。ここで何が起こっているかについてのヒントやアイデアがあれば幸いです。埋め込まれたときに0の長さを示すJavaScript配列
var markers = [];
var locations = [];
var iterator = 0;
var map;
var geocoder;
var newYork = new google.maps.LatLng(40.7143528, -74.0059731);
function initialize() {
var mapOptions = {
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: newYork
};
map = new google.maps.Map(document.getElementById("map_canvas"),mapOptions);
}
function getPartnerLocations() {
geocoder = new google.maps.Geocoder();
$('.partner').each(function(index){
var street = $('.partner-streetaddress',this).text();
var city = $('.partner-city',this).text();
var state = $('.partner-state',this).text();
var country = $('.partner-country',this).text();
var address = street + ', ' + city + ', ' + state + ', ' + country;
geocoder.geocode({ 'address': address}, function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
locations.push(results[0].geometry.location);
console.log(locations[index]);
}
else
{
console.log('failed to geocode address: ' + address);
}
});
});
initialize();
drop();
}
function addMarker() {
console.log('add marker function');
markers.push(new google.maps.Marker({
position: locations[iterator],
map: map,
draggable: false,
animation: google.maps.Animation.DROP
}));
iterator++;
}
function drop()
{
console.log(locations.length);
for (var i = 0; i < locations.length; i++) {
setTimeout(function() {
addMarker();
}, i * 200);
}
}
getPartnerLocations();
http://jsfiddle.net/でデモを削除することは可能ですか? –