leaflet 基本案例-圖層控制元件:基礎圖層+業務圖層
阿新 • • 發佈:2021-12-10
可執行示例一個,如下:
<!DOCTYPE html> <html> <head> <title>Layers Control Tutorial - Leaflet</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico" /> <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/> <script src="https://unpkg.com/[email protected]/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script> <style> html, body { height: 100%; margin: 0; } #map { width: 1000px; height: 700px; } </style> </head> <body> <div id='map'></div> <script> //地圖marker陣列 var markers=[]; var marker1 =L.marker([39.61, -105.02]).bindPopup('This is Littleton, CO.'); var marker2 =L.marker([39.74, -104.99]).bindPopup('This is Denver, CO.'); var marker3 =L.marker([39.73, -104.8]).bindPopup('This is Aurora, CO.'); var marker4 =L.marker([39.77, -105.23]).bindPopup('This is Golden, CO.'); markers.push(marker1); markers.push(marker2); markers.push(marker3); markers.push(marker4); //利用marker陣列構建marker圖層 var citiesLayer = L.layerGroup(markers); //利用切片地圖服務地址,建立圖層 var grayscaleLayer= L.tileLayer('http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/tile/{z}/{y}/{x}', {id: 'map11'}); var streetsLayer = L.tileLayer('http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}', {id: 'map12'}); //1、基礎地圖 var baseLayers = { "Grayscale": grayscaleLayer, "Streets": streetsLayer }; //1、業務圖層 var overLayers = { "Cities": citiesLayer }; var map = L.map('map', { minZoom: 5, maxZoom: 12, center: [39.73, -104.99], zoom: 10, layers: [grayscaleLayer, citiesLayer],//預設顯示的圖層 //zoomDelta: 0.5,//點選+-按鈕的放縮刻度尺度,預設值1 //zoomSnap: 0.5,//地圖能放縮的zoom的最小刻度尺度,預設值1 fullscreenControl: false,//全屏控制元件,不顯示 zoomControl: false,//放大縮小控制元件,不顯示 attributionControl: false//右下角屬性控制元件,不顯示 }); //map的圖層控制元件 var layerControl=L.control.layers(baseLayers, overLayers); map.addControl(layerControl); //單個圖層,也可以通過,map,addLayer()來新增 //map.setView([36.045, 103.83333], 15);//切換地圖視野範圍 //和setView類似,但是flyTo會帶一個平滑的動畫 //map.flyTo([36.045, 103.83333], 15,{ animate: true, duration: 0.2 }); //map.setZoom(0); </script> </body> </html>