1. 程式人生 > 其它 >leaflet 基本案例-圖層控制元件:基礎圖層+業務圖層

leaflet 基本案例-圖層控制元件:基礎圖層+業務圖層

可執行示例一個,如下:
<!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>