2014-10-27 115 views
-1

我需要爲Google地圖分配50個地圖標記。我不想有(幾乎)相同的代碼行50次。什麼是最好的方式來循環通過這個容易和優化代碼?Javascript可變循環

var marker1 = new google.maps.Marker({position: new google.maps.LatLng(location1_latitude,location1_longitude),map: map1,title:location1}); 

var marker2 = new google.maps.Marker({position: new google.maps.LatLng(location2_latitude,location2_longitude),map: map1,title:location2}); 

var marker3 = ... 

重複到

var marker50 = new google.maps.Marker({position: new google.maps.LatLng(location50_latitude,location50_longitude),map: map1,title:location50}); 
+5

使用數組,搜索它。 – simonzack 2014-10-27 18:10:31

回答

0

可以使用兩個陣列和在它們之間迭代:

var location_latitude = [0,1,2,3,4,5] // all your latitudes 
var location_longitude = [0,1,2,3,4,5] // all your longitudes 
var location_titles = ['loc0','loc1','loc2','loc3','loc4','loc5'] 
var markers = [] 

for (var i = 0; i < location_latitude.length && i < location_longitude.length && i < location_titles.length; i++) { 
    markers[i] = new google.maps.Marker({position: new google.maps.LatLng(location_latitude[i],location_longitude[0]),map: map1,title:location_titles[i]}); 
} 

你也可以抽象緯度,經度和標題爲對象:

var locations = [{lat: 0, lng: 0, title: 'latlng0'},{lat: 0, lng: 0, title: 'latlng0'}] // depending on how you get you're data, you'll want to adjust your loop's format so you don't have to manually convert it 
var markers = [] 

for (var i = 0; i < locations.length; i++) { 
    var current = locations[i] 
    markers[i] = new google.maps.Marker({position: new google.maps.LatLng(current.lat,current.lng),map: map1,title:current.title}); 
}