2

我正在尝试使用marker.setIcon()更改标记图像。然而,尽管这改变了marker.iconUrl图标本身marker.proprietary_marker.$.icon.image用于显示标记图像的属性,但似乎标记图标保持不变。有没有办法动态改变marker.proprietary_marker.$.icon.image

  1. 添加一个标记。
  2. 检查图标的图像 url 和专有图标的图像 - 它们是相同的。
  3. 更改图标。
  4. 再次检查网址。现在图标 URL 已更改,但标记仍显示专有标记对象中的旧图像。

 <head>
<title>Map Test</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=Your-Google-API-Key" type="text/javascript"></script>
<script src="mapstraction.js"></script>

<script type="text/javascript">
var map;
var marker;

function getMap(){
        map = new mxn.Mapstraction('myMap','google');
    map.setCenterAndZoom(new mxn.LatLonPoint(45.559242,-122.636467), 15);
}


function addMarker(){
        marker = new mxn.Marker(new mxn.LatLonPoint(45.559242, -122.636467));
    marker.addData({infoBubble : "Text", label : "Label",  marker : 4, icon: "http://mapscripting.com/examples/mashups/richter-high.png"});
    map.addMarker(marker);
}

function changeIcon(){
    marker.setIcon("http://assets1.mapufacture.com/images/markers/usgs_marker.png");
}


function showIconURL(){
        alert(marker.iconUrl);
} 


function showProprietaryIconURL(){
    alert(marker.proprietary_marker.$.icon.image);
}

</script>
</head>
<body onload="getMap()">
<div id="myMap" style="width:627px; height:412px;"></div>
<div>
    <input type="button" value="add marker" OnClick="addMarker();">
    <input type="button" value="change icon" OnClick="changeIcon();">
    <input type="button" value="show icon URL" OnClick="showIconURL();">
    <input type="button" value="show proprierty icon URL " OnClick="showProprietaryIconURL();">
</div>
</body>
</html>
4

1 回答 1

1

根据我的阅读理解,一旦创建标记,就不能再更改标记的“图标”。您可以更改标记本身的图像属性,但从我读过的内容来看,我不相信一旦生成标记就可以通过图标选项更改它。

我还相信我读到过,如果您确实更改了图标的图像,它将保持您最初在图标设置中为标记选项设置的大小属性。IE 如果第一张图片设置为 15x15,第二张图片设置为 5x5,则 5x5 将调整为 15x15。

于 2010-05-11T13:43:17.653 回答