Leaflet: tidak semua ubin dimuat sampai mengubah ukuran jendela

Dibuat pada 21 Mei 2012  ·  8Komentar  ·  Sumber: Leaflet/Leaflet

semua ubin dimuat dengan benar hanya setelah ukuran jendela diubah atau secara manual memicu ._onResize()

Komentar yang paling membantu

Saya melihat masalah yang sama. Hanya beberapa ubin yang ditampilkan pada awalnya, tetapi jika saya mengubah ukuran jendela browser saya, semua ubin ditampilkan.

Semua 8 komentar

Mengubah ukuran pada windows mengubah ukuran berfungsi dengan benar, lihat contoh ini: http://leaflet.cloudmade.com/debug/map/map-mobile.html

Jika Anda mengubah ukuran wadah peta secara manual, Anda perlu memanggil map.invalidateSize() .

Saya melihat masalah yang sama. Hanya beberapa ubin yang ditampilkan pada awalnya, tetapi jika saya mengubah ukuran jendela browser saya, semua ubin ditampilkan.

TIDAK diperbaiki untuk bug ini di chrome27. Saya memiliki masalah yang sama
urlnya gagal

@mourner Saya harus mengubah peta secara dinamis.Dan saya menggunakan peta._onResize() untuk memperbaikinya.Url di atas adalah contoh layar penuh, bukan untuk mengubah ukuran peta.terima kasih atas peretasan Anda @ludinov-stuzo

@mourner Saya telah menemukan

    var is_fullScreen=0;
    $("#close_left").click(function(){
        if(is_fullScreen){
            $("#left_panel").animate({left:0,opacity:1},800);
            $("#right_panel").animate({marginLeft:280},800);
            this.className="icon-left";
            is_fullScreen=0;
            setTimeout(function(){ map.setView([5,40],2);},1000);
        }else{
            $("#left_panel").animate({left:-280,opacity:0},800);
            $("#right_panel").animate({marginLeft:0},800);
            this.className="icon-right";
            setTimeout(function(){map.invalidateSize();            map.setView([5,-20],3);},1000)
            is_fullScreen=1;
        }
    });

Mengubah ukuran pada windows mengubah ukuran berfungsi dengan benar, lihat contoh ini: http://leaflet.cloudmade.com/debug/map/map-mobile.html

Jika Anda mengubah ukuran wadah peta secara manual, Anda perlu memanggil map.invalidateSize() .

Anda membuat hari saya. Peta saya tidak akan berfungsi dengan baik. Tak satu pun dari fungsi termasuk setView , flyTo , panTo , fitbounds akan bekerja dengan baik. Itu akan berhasil kadang-kadang, dan kadang-kadang tidak. Aku hanya tidak bisa mengerti ketika itu terjadi . Kemudian saya melihatnya berfungsi ketika saya mengubah ukuran jendela, dan setelah berjam-jam R&D yang tidak berguna mencapai utas ini.

Terima kasih banyak.

Dengarkan Map obj membantu saya. tambahkan fungsi yang terpicu saat peta dimuat atau diubah ukurannya dan dijalankan di dalam - map.invalidateSize().

Cara kait reaksi:

import { Map as LeafletMap } from "react-leaflet";

export default const MyMap = () => {

   useEffect(()=>{
        mapElement.current.leafletElement.invalidateSize();
    },[mapElement])


  /*render and other function*/
}
Apakah halaman ini membantu?
0 / 5 - 0 peringkat