0

google map api v3にいくつかのマーカーがあり、定期的にマーカーを再配置する必要があります。マーカーにmarkerA、markerB、...markerOなどの特定の名前を付けました。

この関数を実行して、再配置するための正しいマーカーにアクセスしようとしています。

function moveMarker(marker,lat,lng) {
  var newLatLng = new google.maps.LatLng(lat,lng);
  marker.setPosition(newLatLng);
}

マーカーは、マップとともにロードプロセスで作成されます。

  markerA = new google.maps.Marker({position: new google.maps.LatLng(59.870131, 10.819168), map: map, icon: rodIcon, title: 'Car A'});
  markerB = new google.maps.Marker({position: new google.maps.LatLng(59.870131, 10.819168), map: map, icon: rodIcon, title: 'Car B'});
  markerC = new google.maps.Marker({position: new google.maps.LatLng(59.870131, 10.819168), map: map, icon: blaIcon, title: 'Car C'});

しかし、私の関数は失敗したようで、関数の「マーカー」入力で指定されたマーカー「名前」を認識しません。

関数への入力は次のようになります。

moveMarker(markerA,60,10)

しかし、マーカーはまったく動きません...

私は真剣に基本的なものを見逃していますか、それとも各マーカーをその名前で再配置するという私の考えは行く方法ではありませんか?

つまり、ハードコーディングできます

マーカーA.setPositionmarkerB.setPositionなど...しかし、それはやり過ぎのようですか?

4

1 に答える 1

0

.setPosition()メソッドを使用するだけです。http://jsfiddle.net/Ln2BM/1/を参照してください。

google.maps.event.addListener(marker, 'click', function() {
    var pos = this.getPosition();
    this.setPosition(new google.maps.LatLng(pos.lat(), pos.lng() + 1)); 
});

うまくいかない場合は、別の間違いを犯したに違いありません。「私の関数は失敗し、関数の「マーカー」入力で指定されたマーカー「名前」を認識しません」という文は非常に不審に聞こえます。関数呼び出しに問題がある可能性があります。

于 2013-12-29T03:50:56.697 に答える