leaflet加载GeoServer的WMS地图服务.md

leaflet加载GeoServer的WMS地图服务,该示例涵盖了涵盖了 "WMS图层加载、WMS图层动态投影、图层index顺序调整、图层添加、高德地图、腾讯地图OpenStreet地图",WMS图层加载看代码中标注的核心代码部分即可

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>leaflet Demo 2</title>

    <style>
        #map {
            height: 900px;
        }
    </style>

    <!-- css文件 -->
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.4.0/dist/leaflet.css"/>
    <!-- js文件 -->
    <script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js"></script>
</head>

<body>
<div id="map"></div>
<script>
    /*涵盖了WMS图层动态投影、图层index顺序调整、图层添加、高德地图、腾讯地图OpenStreet地图*/
    var map = new L.Map('map', {
        //不写crs参数默认就是3857坐标了
        // crs: L.CRS.EPSG4326,
        center: new L.LatLng(39.86, 116.45),
        zoom: 4,
        maxZoom: 18,
        zoomControl: false

    });
    /*---------------------次要代码,增加背景地图,可删除,start-------------------------*/
    L.control.zoom({zoomInTitle: "放大", zoomOutTitle: "缩小"}).addTo(map)
    var baseLayers = {
        "高德影像": L.tileLayer('https://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}', {
            maxZoom: 18
        }).addTo(map),
        "OSM": L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
            maxZoom: 18
        }),
        "高德矢量": L.tileLayer('http://wprd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}', {
            maxZoom: 18
        }),
        "腾讯地图": L.tileLayer('http://rt0.map.gtimg.com/realtimerender?z={z}&x={x}&y={-y}&type=vector&style=0', {
            maxZoom: 18
        }),
    };
    var layerControl = L.control.layers(baseLayers, {}, {
        position: 'topleft',
        collapsed: true
    }).addTo(map);
    /*---------------------次要代码,增加背景地图,可删除,end-------------------------*/

    /*---------------------核心代码,加载WMS地图,start-------------------------*/
    // 加载WMS。地址中china表示工作区的名称。
    var wmsLayer = L.tileLayer.wms("http://localhost:8081/geoserver/china/wms?", {
        layers: '中国各省',// 要加载的图层名
        format: 'image/png',//返回的数据格式
        transparent: true,
        opacity: 0.6,//图层透明度设置,设为1时不透明。
        keepBuffer: 6,//平移地图时保留4行4列缓存不从div中卸载,以便平移过来后地图还在,默认值是2。
        zIndex: 10,//设置图层顺序的第一种方法
        //这里要设置WMS的坐标系哦,可动态投影成map里的crs坐标系
        crs: L.CRS.EPSG4326,//可省略该参数,一般取geoserver网格集里的坐标系。
        tileSize: 256,//默认就是256,可省略。
        maxNativeZoom: 15,//基于15级继续无极放大,该值一般等于maxZoom,无极放大的最大级数取决于map的maxZoom值。
        // styles: '',//geoserver里的图层样式,可省略该参数。
        // minZoom:0,
        // maxZoom:18,
        // bounds:[最小纬度,最小经度,最大纬度,最大经度],//超过该范围的地图就不请求了。
        // subdomains:多子域设置。后端部署多子域,摆脱大屏环境Chrome浏览器对并发请求的限制。

    });
    //设置图层顺序有3种方法:方法1直接在上面设置图层的zIndex属性,方法2如下,方法3见下面的注释。
    wmsLayer.setZIndex(10);//设置大一点的图层索引值,避免图层被其他图层遮盖。也可以通过pane方式调整索引https://blog.csdn.net/qq_37550440/article/details/130154128
    wmsLayer.addTo(map);
    // map.addLayer(wmsLayer);
    /*---------------------核心代码,加载WMS地图,end-------------------------*/
</script>
</body>
</html>
相关推荐
ReBeX6 天前
【WebGIS实例】(16)GeoServer 自定义样式 - 渲染矢量数据
geoserver·webgis
Modify_QmQ9 天前
leaflet【十】实时增加轨迹点轨迹回放效果实现
vue3·leaflet·轨迹回放·实时增加轨迹
猿儿本无心22 天前
Geoserver的 rest、wfs、wms、wps接口请求指南
前端·geoserver
千里马学框架1 个月前
安卓WMS层面分析窗口的位置变化-安卓framework实战开发
android·车载系统·wms·窗口·安卓framework开发·安卓窗口系统
双业云仓软件系统1 个月前
WMS如何实现与TMS的双向信息流?
云计算·wms·前端开发·京东云·云仓
双业云仓软件系统1 个月前
WMS中的数据安全措施有哪些?
网络·云计算·wms·京东云·云仓
几多心跳2 个月前
docker 安装 geoserver
docker·容器·geoserver
小纯洁w2 个月前
Uniapp 使用 Leaflet
uni-app·leaflet
Kbattery2 个月前
Android11 应用启动流程
android·wms·ams