以下のマップ API を作成し、データベースから取得した住所の配列を持っています。マップは正しく読み込まれますが、次の問題があります。
ダイナミック マーカーは「i」の値でインクリメントされないため、マップにはすべてのマーカーが「1,2,3,4,5」ではなく「1」で表示されます。
// Define Vars var pinColor = "FE7569"; var marker, i; // Set default map center location var latlng = new google.maps.LatLng(-27.79014,153.18049); // Create pinShadow for each marker var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com /chart?chst=d_map_pin_shadow", new google.maps.Size(40, 37), new google.maps.Point(0, 0), new google.maps.Point(12, 35)); // Function to create the dynamic marker function pinImage(i){ return image = new google.maps.MarkerImage("http://www.googlemapsmarkers.com/v1/"+i+"/"+pinColor+"/", new google.maps.Size(21, 34), new google.maps.Point(0,0), new google.maps.Point(10, 34)); } // Function to run once page has loaded function initialize(){ // Set Default settigns for google map var settings = { zoom: 10, center: latlng, mapTypeControl: true, mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}, navigationControl: true, navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}, mapTypeId: google.maps.MapTypeId.ROADMAP}; // Start Google Maps and assign it to div on site var map = new google.maps.Map(document.getElementById("map_canvas"), settings); // loop though total numner of address in array for (i = 1; i < total; i++) { // Use geocoder to grab latlong for user inputed address geocoder.geocode( { 'address': address[i]}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { // Redefine map center location if (i = 1){ map.setCenter(results[0].geometry.location); } // Create dynamic markers on map as per the address array var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location, title:address[i], zIndex: i, // PROBLEM CODE --- Using the function below it creates all Markers with a "1" instead of the "i" value..?? icon: pinImage(i), shadow: pinShadow }); } }); } }