@panzhiyue/leaflet-canvas.clip

1.0.0 • Public • Published

leaflet-Canvas.Clip

Canvas.Clip是一个能够裁剪或显示任意多边形内部数据的渲染器。 demo

npm下载

npm i @panzhiyue/leaflet-canvas.clip

使用

import {canvasclip,CanvasClip} from "@panzhiyue/leaflet-canvas.clip"

示例

        window.onload = function () {
            var renderer = L.canvas.clip({ mode: "show" });
            var map = L.map('map', { crs: L.CRS.EPSG4326, renderer: renderer }).setView([30.46337852800008, 120.967045726], 6);

            //天地图影像底图
            L.tileLayer('http://t4.tianditu.gov.cn/vec_c/wmts?tk=6dfd31e3b55a8466f34997aee5551a9c&layer=vec&style=default&tilematrixset=c&Service=WMTS&Request=GetTile&Version=1.0.0&Format=tiles&TileMatrix={z}&TileCol={x}&TileRow={y}', {
                name: "中国天地图影像",
                maxZoom: 20,
                tileSize: 256,
                zoomOffset: 1
            }).addTo(map);

            L.tileLayer('http://t2.tianditu.gov.cn/cva_c/wmts?tk=6dfd31e3b55a8466f34997aee5551a9c&layer=cva&style=default&tilematrixset=c&Service=WMTS&Request=GetTile&Version=1.0.0&Format=tiles&TileMatrix={z}&TileCol={x}&TileRow={y}', {
                name: "中国天地图影像标注",
                maxZoom: 20,
                tileSize: 256,
                zoomOffset: 1
            }).addTo(map);

            var geojson;
            var layer;
            $.ajax({
                url: "../resources/json/ZJ_quxian_RH.json",
                success: function (data) {
                    //添加GeoJSON数据,在地图中显示
                    geojson = L.geoJSON(data);
                    renderer.setPolygons(geojson.getLayers());

                    let bounds = geojson.getBounds();
                    let min = bounds.getSouthWest();
                    let max = bounds.getNorthEast();
                    let minX = min.lng, maxX = max.lng, minY = min.lat, maxY = max.lat;
                    //minX = -180; maxX = 180; minY = -90; maxY = 90;
                    for (let i = minX; i < maxX; i = i + 0.3) {
                        for (let j = minY; j < maxY; j = j + 0.3) {
                            L.circle([j, i], { radius: 200, color: "#ff0000", fillColor: "#ff0000" }).addTo(map);
                        }
                    }
                }
            });

            //修改显示模式
            var select = document.getElementById("ddlMode");
            select.onchange = function (event) {
                renderer.setMode(event.target.value);
            };
        }

效果图

clip:

1626922228619

show:

1626922215229

构造函数

L.Canvas.clip(<CanvasClip options> options?)

options:

  • polygons(Array<L.Polygon>):面集合,用于表示显示或者不显示瓦片的区域
  • mode(string):显示模式:clip:polygons表示的区域不显示瓦片,show:polygons表示的区域显示瓦片
  • 继承L.Canvas的参数

方法

名称 返回值 描述
getMode() string 获取显示模式
getPolygons() Array<L.Polygon> 获取面集合
setMode() this 设置显示模式
setPolygons() this 设置面集合

Package Sidebar

Install

npm i @panzhiyue/leaflet-canvas.clip

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

14.9 MB

Total Files

71

Last publish

Collaborators

  • panzhiyue