2

我正在尝试转换为 API v2 编写的以下代码

<!--- Add position and date information --->
var trackIcon = new GIcon({image:"/images/www2/icons/map_track_marker.png"});
trackIcon.iconSize = new GSize(6,6);
trackIcon.iconAnchor = new GPoint(3,3);
for (var i=0; i<trackArray.length;i++)
{
map.addOverlay(new GMarker(trackArray[i],{title:trackArrayInfo[i],icon:trackIcon}));
}

到V3,但没有成功。这是我不成功的尝试:

<!--- Add position and date information --->
var trackIcon = new google.maps.Icon({image:"/images/www2/icons/map_track_marker.png"});
trackIcon.iconSize = new google.maps.Size(6,6);
trackIcon.iconAnchor = new google.maps.Point(3,3);                          
for (var i=0; i<trackArray.length;i++)
{
   new google.maps.Marker(trackArray[i], {title:trackArrayInfo[i],icon:trackIcon}).setMap(map);
}

有人可以帮我吗?我越来越绝望了:(

4

3 回答 3

3

图标对象在 API v3中没有image,iconSize 或属性。iconAnchor相反,它们只是url,sizeanchor

您还需要将新标记的结果分配给变量。我假设您此时遇到了 JS 错误,尽管您的问题中不存在该错误(如果存在,可能会有用)。

/* Add position and date information */
var trackIcon = new google.maps.Icon({
    url :"/images/www2/icons/map_track_marker.png",
    size : new google.maps.Size(6,6),
    anchor : new google.maps.Point(3,3)
});

for (var i=0; i<trackArray.length;i++)
{
   var marker = new google.maps.Marker({
          position: trackArray[i],
          map: map, 
          title: trackArrayInfo[i], 
          icon: trackIcon
   });
}
于 2013-01-08T16:12:15.827 回答
1
/* Add position and date information */
for (var i=0; i<trackArray.length;i++)
{
   var marker = new google.maps.Marker({
    position: trackArray[i],
    map: map, 
    title: trackArrayInfo[i],                                        
    icon: "/images/www2/icons/map_track_marker.png",
    size: new google.maps.Size(6,6),
    anchor: new google.maps.Point(3,3)
   });
}

它是这样工作的。感谢@duncan 的帮助!

于 2013-01-09T13:40:13.227 回答
1

如果其他人遇到与我相同的相关问题并用谷歌搜索他/她的方式,似乎在当前版本(3.11)中google.maps.Icon只有一个google.maps.MarkerImage构造函数。因此,以前的答案看起来像:

for (var i=0; i<trackArray.length;i++)
{
  var marker = new google.maps.Marker({
    position: trackArray[i],
    map: map, 
    title: trackArrayInfo[i],                                        
    icon: new google.maps.MarkerImage(
      "/images/www2/icons/map_track_marker.png", // url
      new google.maps.Size(6,6), // size
      new google.maps.Point(0,0), // origin
      new google.maps.Point(3,3), // anchor
      new google.maps.Size(6,6) // resized size
    )
  });
}

虽然文档中没有提到它,所以我不确定这是官方的,但是官方的 .Icon 已经消失了,这对我有用。

于 2013-03-26T10:32:13.943 回答