Google マップ API を使用してマーカー マネージャーとマップラベルを組み合わせると問題が発生します。
ラベルをマーカーのマップにバインドして配置すると、すべてが期待どおりに機能します。マーカーを移動するとラベルが移動し、マップからマーカーを削除するとラベルも削除されます。この問題は、マーカーをマーカー マネージャーに追加すると発生します。すべてのバインディングが壊れているように見えるため、ラベルはマーカーと一緒に移動しなくなり、マーカーが削除された後もラベルはマップ上に残ります。
問題を示すJSフィドルは次のとおりです:http://jsfiddle.net/d6Su5/
最初のマーカー (マネージャーにはありません) はラベルと共に移動できますが、2 番目のマーカーはラベルを残します。
コード:
var map;
var mgr;
var elevator;
var myOptions = {
zoom: 6,
center: new google.maps.LatLng(46.87916, -3.32910),
mapTypeId: 'terrain'
};
map = new google.maps.Map(document.getElementById('map'), myOptions);
mgr = new MarkerManager(map);
var marker = new google.maps.Marker({
title: 'No manager',
position: new google.maps.LatLng(46.87916, -3.32910),
map: map,
draggable: true
});
var mapLabel = new MapLabel({
text: 'No manager'
});
mapLabel.bindTo('position', marker);
mapLabel.bindTo('map', marker);
var marker2 = new google.maps.Marker({
title: 'With manager',
position: new google.maps.LatLng(44.87916, -3.32910),
map: map,
draggable: true
});
var mapLabel2 = new MapLabel({
text: 'With manager'
});
mapLabel2.bindTo('map', marker2);
mapLabel2.bindTo('position', marker2);
google.maps.event.addListenerOnce(map, 'idle', function() {
mgr.addMarker(marker2, 1);
});
私は何が欠けていますか?