1

我在 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);
4

1 回答 1

1

您的所有链接(锚标记)都具有相同的 ID 属性,因此当函数运行时,它会选择最后一个从中获取标记数据的链接。

尝试为每个链接使用不同的 ID 属性并将该 ID 作为参数发送函数。

于 2013-10-28T21:58:59.790 回答