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

imageアイコン オブジェクトには、API v3の ,iconSize またはiconAnchor プロパティがありません。代わりに、それらは単にurlsizeおよびanchorです。

また、新しいマーカーの結果を変数に割り当てる必要があります。この時点で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.Icongoogle.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 に答える