2013-10-28 99 views
1

我在Google地圖上顯示地址時遇到問題。我嘗試了一切,但它不工作。它只顯示第一個標記,即使我點擊其他地址。我怎樣才能讓它顯示其他標記?只有在google地圖上顯示的第一個標記

<xsl:for-each select="Attractions/Museums"> 
<a href="#maps" data-role="button" id="addMarker" onclick="addMarker();" data-theme="c">  <xsl:value-of select="address"/></a> 
</xsl:for-each> 
<script type="text/javascript"> 

var map; 
var geocoder = new google.maps.Geocoder(); 
$("#maps").on('pageshow', function() { 
google.maps.event.trigger(map,'resize'); 
}) 

// initialize the map 
function initialize() { 
var mapOptions = { 
zoom: 12, 
mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
map = new google.maps.Map(document.getElementById("map-canvas"), 
     mapOptions);  
function addMarker() { 
var address = document.getElementById("addMarker").text; 
geocoder.geocode({ 'address': address}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
    map.setCenter(results[0].geometry.location); 
    var image = 'flag1.png'; 
    var markers = new google.maps.Marker({ 
     map: map, 
     icon: image, 
     position: results[0].geometry.location 
    }); 
    } else { 
    alert("Geocode was not successful for the following reason: " + status); 
    } 
}); 
} 
google.maps.event.addDomListener(window, 'load', initialize); 

回答

1

所有的鏈接(錨點標記)都具有相同的ID屬性,所以當函數運行時,它會選擇最後一個從中獲取標記數據。

嘗試爲每個鏈接使用不同的ID屬性併發送ID作爲參數的函數。

+0

謝謝你的回覆。 我注意到,但是因爲數據是使用xsl從XML文件中讀取的,所以很棘手。它循環讀取數據,因此我正在尋找一種替代方法! – Zen

+0

它不應該是棘手的,你只需要改變每個鏈接的ID。我假設每個地址在數據庫中都有不同的ID,爲什麼不使用它呢? – amosmos

+0

不,數據標籤在XML文檔內部是相似的,這就是爲什麼我使用xsl循環並獲取數據的原因。我試圖通過tagName,名稱和其他不同的方式獲取元素,但它不起作用。嘗試標記陣列,它並沒有工作,我是新手谷歌地圖 – Zen

相關問題