lapisan peta


Konsep lapisan peta

Sebuah peta boleh mengandungi satu atau lebih lapisan, setiap lapisan terdiri daripada beberapa jubin pada setiap peringkat, dan ia meliputi seluruh permukaan bumi. Sebagai contoh, paparan peta yang anda lihat termasuk jalan, tempat menarik, sekolah, taman, dan lain-lain adalah lapisan Selain itu, paparan aliran trafik juga direalisasikan melalui lapisan.

Lapisan yang disediakan oleh Peta Baidu pada masa ini termasuk:

Lapisan Trafik: Lapisan aliran trafik.

Tambah dan alih keluar lapisan

Anda boleh menambah lapisan pada peta melalui kaedah map.addTileLayer Contohnya, kod berikut akan memaparkan aliran trafik di Beijing.

var map = new BMap.Map("l-map");         // 创建地图实例      
var point = new BMap.Point(116.404, 39.915);  // 创建点坐标     
map.centerAndZoom(point, 15);                 // 初始化地图,设置中心点坐标和地图级别     
var traffic = new BMap.TrafficLayer();        // 创建交通流量图层实例      
map.addTileLayer(traffic);                    // 将图层添加到地图上

Untuk mengalih keluar lapisan daripada peta, anda perlu memanggil kaedah map.removeTileLayer.

map.removeTileLayer(traffic);                // 将图层移除

Lapisan tersuai

Sistem koordinat peta

Sebelum menggunakan lapisan tersuai, anda perlu memahami sistem koordinat peta bagi Baidu Map: 🜎 Sistem Baidu Map

Latitud dan sistem koordinat sfera longitud

Sistem koordinat satah mercator

Sistem penomboran blok

Latitud dan longitud ialah sistem koordinat sfera. yang menggunakan ruang sfera di atas bumi boleh menandakan Di mana-mana di Bumi. Longitud yang melalui tapak asal Balai Cerap Greenwich di London ialah longitud 0 darjah, dan ia dibahagikan kepada 180 darjah timur dan barat dari longitud 0 darjah. Khatulistiwa ialah 0 darjah latitud, latitud utara khatulistiwa dipanggil latitud utara, dan selatan khatulistiwa dipanggil latitud selatan. Dalam Peta Baidu, longitud timur dan latitud utara diwakili oleh nombor positif, manakala longitud barat dan latitud selatan diwakili oleh nombor negatif. Sebagai contoh, lokasi Beijing adalah lebih kurang 39.9 darjah latitud utara dan 116.4 darjah bujur timur, jadi perwakilan berangka ialah longitud 116.6 dan latitud 39.9. Dalam peta Baidu, adalah kebiasaan untuk meletakkan longitud di hadapan dan latitud terakhir, contohnya:

var point = new BMap.Point(116.404, 39.915);  // 创建点坐标,经度在前,纬度在后

Memandangkan peta Baidu dipaparkan pada satah, koordinat sfera perlu ditukar kepada koordinat satah dalam sistem peta dalaman Proses penukaran ini dipanggil unjuran. Peta Baidu menggunakan unjuran Mercator. Koordinat satah Mercator ditunjukkan dalam rajah di bawah Koordinat satah bertepatan dengan asal sistem koordinat latitud dan longitud.

jsguide05.jpg


Peta Baidu membahagikan keseluruhan peta kepada beberapa jubin pada setiap peringkat, dan menyepadukan keseluruhan jubin bersama-sama melalui sistem penomboran untuk memaparkan peta lengkap. Apabila peta diseret atau tahap berubah, API peta akan mengira bilangan jubin yang perlu dipaparkan dalam medan pandangan semasa berdasarkan koordinat satah. Peraturan penomboran jubin Peta Baidu adalah seperti yang ditunjukkan dalam rajah di bawah:

jsguide06.jpg


Jubin di arah kanan atas bermula dari asal koordinat satah bernombor 0,0, dan seterusnya. Pada tahap zum terendah (Tahap 1), seluruh Bumi terdiri daripada 4 jubin. Apabila tahap meningkat, bilangan jubin yang digunakan dalam peta juga meningkat.

Tentukan peraturan pengambilan imej

Pembangun boleh melaksanakan lapisan tersuai melalui kelas TileLayer. Antaranya, kaedah getTilesUrl bagi contoh TileLayer perlu dilaksanakan untuk memberitahu API peraturan lukisan. Parameter kaedah getTilesUrl termasuk tileCoord dan zum, dengan tileCoord ialah maklumat penomboran jubin dan zum ialah tahap jubin Kaedah ini dipanggil secara automatik apabila peta perlu memaparkan jubin pada lokasi tertentu pada tahap tertentu , dan kedua-dua parameter ini disediakan. Pengguna perlu memaklumkan API alamat jubin yang sepadan dengan nombor dan tahap tertentu, supaya API boleh memaparkan lapisan tersuai secara normal.

Tambah dan Alih Keluar Lapisan Tersuai

Kod berikut memaparkan tindanan lutsinar ringkas pada setiap jubin pada semua peringkat zum, menggunakan titisan merah terapung kecil untuk mewakili garis besar jubin.

var map = new BMap.Map("l-map");          // 创建地图实例     
var point = new BMap.Point(116.404, 39.915);  // 创建点坐标     
map.centerAndZoom(point,15);                  // 初始化地图,设置中心点坐标和地图级别     
var tilelayer = new BMap.TileLayer();         // 创建地图层实例    
tilelayer.getTilesUrl=function(){             // 设置图块路径     
          return "layer.gif";      
};      
map.addTileLayer(tilelayer);                // 将图层添加到地图上