リーフレットマップを更新すると、エラーが発生します:マップコンテナはすでに初期化されています
既存のマップを再初期化しようとしているようです...ここにある問題ボードは、バグや新機能の提案を処理するためのものです。 StackOverflow(http://stackoverflow.com/questions/tagged/leaflet)は、ライブラリの使用法のトラブルシューティングに適した場所です。 これがバグによるものであると思われる場合は、JSFiddleまたは別のデモサイトにサンプルケースを投稿してください。
問題はMVVMでの実装に関連しており、バグではないようです。 リーフレットを使用していくつかのMVVMの例を検索しようとします。
ここで同じ問題...それは何でしょうか?
@ralexrdzおそらく、複数回初期化するコンテナですか?
@mourner htmlは、基本的にhtmlヘッドローディングjsとcss、およびid="map"のdivです。 そして私が持っている唯一のjsは
map.setView([19.34、-99.15]、12);
L.tileLayer('https://api.tiles.mapbox.com/v4/ {id} / {z} / {x} / {y} .png?access_token = {accessToken}'、{
アトリビューション:'マップデータ© OpenStreetMap寄稿者、 CC-BY-SA 、画像© Mapbox '、
maxZoom:18
id:'mapboxMapId、
accessToken:'mapboxAccessToken'
})。addTo(map);
コンテナが以前に初期化されているのはどうしてですか?
私は同じ問題を抱えています、私はReactでリーフレットを使用しています
それはおそらく@epicallanのreact-leafletバグになります
@danzel私はreactを使用しています、そのreact-leafletバグ、ちょうどいくつかのハッキーな回避策をしました
@epicallan何をしたか説明していただけますか? ReactとLeafletでも同じ問題があります。
マップを初期化する前に、マップがすでに開始されているかどうかを確認してください
var container = L.DomUtil.get('map');
if(container!= null){
container._leaflet_id = null;
}
@Dipinrajcこの方法では、マップ上でマウスを使ってドラッグすることはできません。
マウス@adrielstarでマップを再度ドラッグする方法はありますか?
私たちはこの@fillipefeitosaを使用します。
HTML:
<div id = "map"> </ div>
マップのレンダリング:
document.getElementById('map')。innerHTML = "<div id ='map' style ='width:100%; height:100%;'>";
マップをレンダリングするdivのコンテンツをリロードします。
フープこれもあなたを助けます
友人に感謝しますが、それはうまくいきませんでした。 var map
をdivに置き換え、マップが読み込まれません
マップを初期化する前に、マップがすでに開始されているかどうかを確認してください
var container = L.DomUtil.get('map');
if(container!= null){
container._leaflet_id = null;
}
このための既存のリーフレット方法はありますか?
私と同じ問題:(
マップを初期化する前に、マップがすでに開始されているかどうかを確認してください
var container = L.DomUtil.get('map');
if(container!= null){
container._leaflet_id = null;
}このための既存のリーフレット方法はありますか?
@enzojimenez 、以下で作成したように、このための1つのメソッドを作成できます
function initializingMap()//マップを初期化する前にこのメソッドを呼び出します。
{{
var container = L.DomUtil.get('map');
if(container!= null){
container._leaflet_id = null;
}
}
問題を解決するには、次のように定義します。
import * as Map from'leaflet';
@ViewChild('map')mapElement:ElementRef;
マップ:Map.Map;
this.map = Map.map(this.mapElement.nativeElement、{
maxZoom:18
});
Solucionaquí: https ://www.designlimbo.com/leaflet-ionic-3-and-map-container-is-already-initialized/
ここで述べたように、これはそれを行うための最良の方法です:
if (map != undefined) {
map.remove();
}
マップを初期化する前に、マップがすでに開始されているかどうかを確認してください
var container = L.DomUtil.get('map');
if(container!= null){
container._leaflet_id = null;
}
あなたは天使だ
最も参考になるコメント
マップを初期化する前に、マップがすでに開始されているかどうかを確認してください
var container = L.DomUtil.get('map');
if(container!= null){
container._leaflet_id = null;
}