0

これを行うことで、あるレイヤーから別のレイヤーにポイントを移動する理由を誰かに説明してもらえますか:

var previousLayer = activeItem.getLayers()[0];

activeItem.removeLayer(previousLayer); // activeItem is FeatureGroup
mapItems.addLayer(previousLayer); // mapItems is MarkerClusterGroup

そして、次のようにマーカー クラスを変更してみてください。

previousLayer._icon.classList.remove('marker-active');
previousLayer._icon.classList.add('marker-shown');

そのマーカーがマップ上の可視クラスター内に入ると、_icon が null であるというエラーが表示されますか?

それはある種の MarkerCluster バグですか、それとも何か不足していますか?

PS親クラスターを見つけようとしましたが、その中のすべてのマーカーを循環させましたが、それらのマーカーにはすべて _icon オプションがありません...

angular.forEach(mapItems.getVisibleParent(previousLayer)._markers, function (marker) {
     console.log(marker._icon); // error every time
});
4

1 に答える 1

0

それはある種の MarkerCluster バグですか、それとも何か不足していますか?

いいえ、前に気づいていない場合は、先頭に _ が付いているものはすべて、リーフレット用語のプライベート変数です。つまり、先頭に _ が付いているものに依存すると、簡単に壊れてしまいます。

  • リーフレットのアップグレード
  • プラグインを使用する
  • 別のブラウザを使用する

そして、この破損は Leaflet のせいではなく、あなた自身のせいです。

回答: を使用しないでください._icon。この場合、 でマーカーをイントロスペクトしconsole.logて、そのタイプを調べます。

于 2014-09-02T13:57:03.137 に答える