2016-02-05 90 views
1

下面是代碼,有一個包含62個地方名稱的數組,但地理編碼並非全部62個地方都在地圖上標記,只有極少數地方正在標記在地圖上。谷歌地圖地理編碼不標記地圖上的所有地方

功能createMarker(經緯度){ VAR標記=新google.maps.Marker({ 位置:經緯度, 圖:圖 });

var markers = ["chennai", "Kashmir", "Russia", "Jalandhar", "Netherlands", "Koregaon Park", "Piparia", "South Africa", "USA", "Siliguri", "Dhule", "United Kingdom", "Shendra", "Baramulla", "Haridwar", "New Delhi", "United Arab Emirates", "Ladakh", "Noida", "Shanghai", "Gurgaon", "Rajouri", "Netherlands", "Ranchi", "Abruzzo", "Waluj", "Ho Chi Minh", "Germany", "Bhopal", "Soenderborg", "Delhi", "Dindori", "Brazil", "Magarpatta", "Chennai", "Taiwan", "Jharsuguda", "Rakholi", "Turkey", "Denmark", "Bangalore", "Selangor", "Rajgarh", "Vardhaman Industrial Estate", "Sagar", "Jammu", "Beijing", "Jamshedpur", "Jabalpur", "SIDCUL", "Hyderabad", "PTB Rakholi", "Haimen", "Ahmedabad", "OFC Rakholi", "Mumbai", "Bafliaz", "Srinagar", "Argentina", "Dadra", "Mexico", "Tiruchirappalli"] 
 
var map; 
 
function initializeMaps(eventObject) 
 
{ 
 
    
 

 
    map = new google.maps.Map(document.getElementById('googlemap1'), { 
 
     zoom: 5, 
 
     center: new google.maps.LatLng(21.0000,78.0000), 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }); 
 

 
    var infowindow = new google.maps.InfoWindow(); 
 
    var geocoder = new google.maps.Geocoder(); 
 

 
    var marker, i; 
 

 
    for (i = 0; i < markers.length; i++) { 
 
     geocodeAddress(markers[i]); 
 
    } 
 
    
 
} 
 
function geocodeAddress(location) { 
 
var geocoder= new google.maps.Geocoder(); 
 
    geocoder.geocode({ 'address': location}, function(results, status) { 
 
// alert(status); 
 
    if (status == google.maps.GeocoderStatus.OK) { 
 

 
    // alert(results[0].geometry.location); 
 
    // map.setCenter(results[0].geometry.location); 
 
     createMarker(results[0].geometry.location,location); 
 
    
 
    } 
 
    else 
 
    { 
 
     alert("some problem in geocode" + status); 
 
    } 
 
    }); 
 
} 
 

 

 

 

 

 

 

 

 
function createMarker(latlng){ 
 
    var marker = new google.maps.Marker({ 
 
    position: latlng, 
 
    map: map 
 
    });

回答

0

嗨,我發現周圍的工作,以紀念所有places.at一次谷歌的地理編碼只有11個請求,所以我說每次迭代之間的延遲和因爲每個命中之間存在延遲對於地理編碼服務器,地理編碼可以用於陣列中的所有位置。

for(i = 1; i < markers.length; i++){ 
(function(i){ 
    setTimeout(function(){ 
     geocodeAddress(markers[i]); 
    }, 1000 * i); 
}(i)); 

}