{"version":3,"sources":["jsdelivr-header.js","/npm/cqkj-map-2d@1.0.0/src/TianDiTu.ts","/npm/cqkj-map-2d@1.0.0/src/layers/RectanglePainter.ts","/npm/cqkj-map-2d@1.0.0/src/layers/CirclePainter.ts","/npm/cqkj-map-2d@1.0.0/node_modules/tslib/tslib.es6.js","/npm/cqkj-map-2d@1.0.0/src/Transform.ts","/npm/cqkj-map-2d@1.0.0/src/utils.ts","/npm/cqkj-map-2d@1.0.0/src/layers/PolygonPainter.ts"],"names":[],"mappings":"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","file":"/npm/cqkj-map-2d@1.0.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/cqkj-map-2d@1.0.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","let subdomains = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"]\r\nlet url = `http://t{s}.tianditu.gov.cn/DataServer?T={{type}}&X={x}&Y={y}&L={z}&tk=0a9cfb135e61b353ba6c8b4cb3386101`\r\nlet TianDiTu = {\r\n    vec_w: L.tileLayer(url.replace('{{type}}', 'vec_w'), { subdomains }),\r\n    cva_w: L.tileLayer(url.replace('{{type}}', 'cva_w'), { subdomains, pane: 'shadowPane' }),\r\n    img_w: L.tileLayer(url.replace('{{type}}', 'img_w'), { subdomains }),\r\n    cia_w: L.tileLayer(url.replace('{{type}}', 'cia_w'), { subdomains, pane: 'shadowPane' }),\r\n    ter_w: L.tileLayer(url.replace('{{type}}', 'ter_w'), { subdomains }),\r\n    cta_w: L.tileLayer(url.replace('{{type}}', 'cta_w'), { subdomains, pane: 'shadowPane' })\r\n}\r\nexport { TianDiTu }","class RectanglePainer implements ILayer {\r\n    dom: HTMLCanvasElement;\r\n    option: IOption;\r\n    map: L.Map;\r\n    points: Array<L.Point> = [];\r\n    _mousePosition?: L.Point\r\n    get pane() {\r\n        return this.option.pane || 'popupPane'\r\n    }\r\n    constructor(map: L.Map, option?: IOption) {\r\n        this.map = map\r\n        this.option = option || {}\r\n        let canvas = document.createElement('canvas')\r\n        canvas.className = 'leaflet-zoom-animated'\r\n        canvas.style.cursor = 'crosshair'\r\n        this.dom = canvas\r\n        this.setSize()\r\n        this.setPosition()\r\n        map.getPanes()[this.pane].appendChild(this.dom);\r\n        map.on('click', this.onClick, this)\r\n        map.on('mousemove', this.onMouseMove, this)\r\n        map.on('moveend', this.onMoveEnd, this)\r\n        map.on(\"zoomanim\", this.onAnimateZoom, this);\r\n    }\r\n    destroy() {\r\n        this.map.getPanes()[this.pane].removeChild(this.dom);\r\n        this.map.off('click', this.onClick, this)\r\n        this.map.off('mousemove', this.onMouseMove, this)\r\n        this.map.off('moveend', this.onMoveEnd, this)\r\n        this.map.off(\"zoomanim\", this.onAnimateZoom, this);\r\n    }\r\n    onAnimateZoom(e: L.ZoomAnimEvent) {\r\n        let scale = this.map.getZoomScale(e.zoom, this.map.getZoom()),\r\n            offset = this.map._latLngBoundsToNewLayerBounds(this.map.getBounds(), e.zoom, e.center).min;\r\n        L.DomUtil.setTransform(this.dom, offset, scale);\r\n    }\r\n    onClick(e: L.LeafletMouseEvent) {\r\n        this.points.push(L.Projection.SphericalMercator.project(e.latlng))\r\n    }\r\n    onMouseMove(e: L.LeafletMouseEvent) {\r\n        this._mousePosition = L.Projection.SphericalMercator.project(e.latlng)\r\n        if (this.points.length % 2 == 1) {\r\n            this.draw()\r\n        }\r\n    }\r\n    onMoveEnd() {\r\n        this.draw()\r\n    }\r\n    draw() {\r\n        let size = this.map.getSize();\r\n        this.dom.width = size.x\r\n        this.dom.height = size.y\r\n        let bounds = this.map.getBounds();\r\n        let point = this.map.latLngToLayerPoint(bounds.getNorthWest());\r\n        this.dom.style.transform = `translate(${point.x}px, ${point.y}px)`\r\n        let leftBottom = L.Projection.SphericalMercator.project(bounds.getSouthWest())\r\n        let rightTop = L.Projection.SphericalMercator.project(bounds.getNorthEast())\r\n        let scalex = (rightTop.x - leftBottom.x) / size.x\r\n        let scaley = (rightTop.y - leftBottom.y) / size.y\r\n        const ctx = this.dom.getContext(\"2d\");\r\n        if (ctx) {\r\n            ctx.fillStyle = this.option.fill || '#13d6ea88';\r\n            ctx.strokeStyle = this.option.color || '#4411e1';\r\n            ctx.lineWidth = 2 * scalex;\r\n            ctx.save();\r\n            ctx.scale(1 / scalex, -1 / scaley)\r\n            ctx.translate(-leftBottom.x, -rightTop.y)\r\n            for (let index = 0; index < this.points.length; index += 2) {\r\n                const start = this.points[index];\r\n                const end = this.points[index + 1] || this._mousePosition\r\n                let x = Math.min(start.x, end.x), y = Math.min(start.y, end.y), w = Math.abs(start.x - end.x), h = Math.abs(start.y - end.y)\r\n                ctx.fillRect(x, y, w, h);\r\n                ctx.strokeRect(x, y, w, h)\r\n            }\r\n        }\r\n\r\n    }\r\n    setSize() {\r\n        let size = this.map.getSize();\r\n        this.dom.width = size.x\r\n        this.dom.height = size.y\r\n    }\r\n    setPosition() {\r\n        let bounds = this.map.getBounds();\r\n        let point = this.map.latLngToLayerPoint(bounds.getNorthWest());\r\n        this.dom.style.transform = `translate(${point.x}px, ${point.y}px)`\r\n    }\r\n}\r\nexport { RectanglePainer } ","class CirclePainter implements ILayer {\r\n    dom: HTMLCanvasElement;\r\n    option: IOption;\r\n    map: L.Map;\r\n    points: Array<L.Point> = [];\r\n    _mousePosition?: L.Point\r\n    get pane() {\r\n        return this.option.pane || 'popupPane'\r\n    }\r\n    constructor(map: L.Map, option?: IOption) {\r\n        this.map = map\r\n        this.option = option || {}\r\n        let canvas = document.createElement('canvas')\r\n        canvas.className = 'leaflet-zoom-animated'\r\n        canvas.style.cursor = 'crosshair'\r\n        this.dom = canvas\r\n        this.setSize()\r\n        this.setPosition()\r\n        map.getPanes()[this.pane].appendChild(this.dom);\r\n        map.on('click', this.onClick, this)\r\n        map.on('mousemove', this.onMouseMove, this)\r\n        map.on('moveend', this.onMoveEnd, this)\r\n        map.on(\"zoomanim\", this.onAnimateZoom, this);\r\n    }\r\n    destroy() {\r\n        this.map.getPanes()[this.pane].removeChild(this.dom);\r\n        this.map.off('click', this.onClick, this)\r\n        this.map.off('mousemove', this.onMouseMove, this)\r\n        this.map.off('moveend', this.onMoveEnd, this)\r\n        this.map.off(\"zoomanim\", this.onAnimateZoom, this);\r\n    }\r\n    onAnimateZoom(e: L.ZoomAnimEvent) {\r\n        let scale = this.map.getZoomScale(e.zoom, this.map.getZoom()),\r\n            offset = this.map._latLngBoundsToNewLayerBounds(this.map.getBounds(), e.zoom, e.center).min;\r\n        L.DomUtil.setTransform(this.dom, offset, scale);\r\n    }\r\n    onClick(e: L.LeafletMouseEvent) {\r\n        this.points.push(L.Projection.SphericalMercator.project(e.latlng))\r\n    }\r\n    onMouseMove(e: L.LeafletMouseEvent) {\r\n        this._mousePosition = L.Projection.SphericalMercator.project(e.latlng)\r\n        if (this.points.length % 2 == 1) {\r\n            this.draw()\r\n        }\r\n    }\r\n    onMoveEnd() {\r\n        this.draw()\r\n    }\r\n    draw() {\r\n        let size = this.map.getSize();\r\n        this.dom.width = size.x\r\n        this.dom.height = size.y\r\n        let bounds = this.map.getBounds();\r\n        let point = this.map.latLngToLayerPoint(bounds.getNorthWest());\r\n        this.dom.style.transform = `translate(${point.x}px, ${point.y}px)`\r\n        let leftBottom = L.Projection.SphericalMercator.project(bounds.getSouthWest())\r\n        let rightTop = L.Projection.SphericalMercator.project(bounds.getNorthEast())\r\n        let scalex = (rightTop.x - leftBottom.x) / size.x\r\n        let scaley = (rightTop.y - leftBottom.y) / size.y\r\n        const ctx = this.dom.getContext(\"2d\");\r\n        if (ctx) {\r\n            ctx.fillStyle = this.option.fill || '#13d6ea88';\r\n            ctx.strokeStyle = this.option.color || '#4411e1';\r\n            ctx.lineWidth = 2 * scalex;\r\n            ctx.save();\r\n            ctx.scale(1 / scalex, -1 / scaley)\r\n            ctx.translate(-leftBottom.x, -rightTop.y)\r\n            for (let index = 0; index < this.points.length; index += 2) {\r\n                const start = this.points[index];\r\n                const end = this.points[index + 1] || this._mousePosition\r\n                ctx.beginPath();\r\n                ctx.arc(start.x, start.y, start.distanceTo(end), 0, 2 * Math.PI);\r\n                ctx.fill();\r\n                ctx.stroke();\r\n            }\r\n        }\r\n\r\n    }\r\n    setSize() {\r\n        let size = this.map.getSize();\r\n        this.dom.width = size.x\r\n        this.dom.height = size.y\r\n    }\r\n    setPosition() {\r\n        let bounds = this.map.getBounds();\r\n        let point = this.map.latLngToLayerPoint(bounds.getNorthWest());\r\n        this.dom.style.transform = `translate(${point.x}px, ${point.y}px)`\r\n    }\r\n}\r\nexport { CirclePainter } ","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","export default class Transform {\r\n    _left: number\r\n    left_: number\r\n    _up: number\r\n    up_: number\r\n    _right: number\r\n    right_: number\r\n    _down: number\r\n    down_: number\r\n    _w: number\r\n    w_: number\r\n    _h: number\r\n    h_: number\r\n    constructor([_up, _down, _left, _right]: [number, number, number, number], [up_, down_, left_, right_]: [number, number, number, number]) {\r\n        this._left = _left\r\n        this.left_ = left_\r\n        this._up = _up\r\n        this.up_ = up_\r\n        this._right = _right\r\n        this.right_ = right_\r\n\r\n\r\n\r\n        this._down = _down\r\n        this.down_ = down_\r\n\r\n\r\n        this._w = _right - _left\r\n        this.w_ = right_ - left_\r\n        this._h = _up - _down\r\n        this.h_ = up_ - down_\r\n\r\n    }\r\n    get _border() {\r\n        return {\r\n            east: this._right,\r\n            west: this._left,\r\n            south: this._down,\r\n            north: this._up,\r\n        }\r\n    }\r\n    get border_() {\r\n        return {\r\n            east: this.right_,\r\n            west: this.left_,\r\n            south: this.down_,\r\n            north: this.up_,\r\n        }\r\n    }\r\n    to([x, y]: [number, number]):[number,number] {\r\n\r\n        return [(x - this._left) / this._w * this.w_ + this.left_, (y - this._down) / this._h * this.h_ + this.down_]\r\n    }\r\n    from([x, y]: [number, number]):[number,number] {\r\n        return [(x - this.left_) / this.w_ * this._w + this._left, (y - this.down_) / this.h_ * this._h + this._down]\r\n    }\r\n}","import Transform from './Transform'\r\nfunction downloadCanvas(canvas: HTMLCanvasElement, title = '下载') {\r\n    let imgData = canvas.toDataURL(\"image/png\", 1.0);\r\n    let save_link = document.createElementNS(\r\n        \"http://www.w3.org/1999/xhtml\",\r\n        \"a\"\r\n    ) as HTMLAnchorElement;\r\n    save_link.href = imgData;\r\n    save_link.download = title + \".png\";\r\n\r\n    let event = document.createEvent(\"MouseEvents\");\r\n    event.initMouseEvent(\r\n        \"click\",\r\n        true,\r\n        false,\r\n        window,\r\n        0,\r\n        0,\r\n        0,\r\n        0,\r\n        0,\r\n        false,\r\n        false,\r\n        false,\r\n        false,\r\n        0,\r\n        null\r\n    );\r\n    save_link.dispatchEvent(event);\r\n}\r\nfunction DrawPolygon(line: Array<L.Point>, ctx: CanvasRenderingContext2D) {\r\n    let point = line[line.length - 1];\r\n    ctx.moveTo(point.x, point.y);\r\n    line.forEach(point => {\r\n        ctx.lineTo(point.x, point.y);\r\n    });\r\n}\r\nfunction DrawBezier(line: Array<L.Point>, ctx: CanvasRenderingContext2D, safe = true) {\r\n    if (line.length < 3) {\r\n        return;\r\n    }\r\n    if (!line[0].p1 || !safe) {\r\n        const p1 = line[0],\r\n            p2 = line[line.length - 1];\r\n        if (Math.abs(p1.x - p2.x) < 5 && Math.abs(p1.y - p2.y) < 5) {\r\n            line.splice(0, 1);\r\n        }\r\n        line.forEach((point, i, points) => {\r\n            let _p = points[(i + points.length - 1) % points.length],\r\n                p_ = points[(i + 1) % points.length],\r\n                p = point;\r\n            let v1 = { x: p_.x - _p.x, y: p_.y - _p.y },\r\n                v2 = { x: p.x - _p.x, y: p.y - _p.y },\r\n                v3 = { x: p_.x - p.x, y: p_.y - p.y };\r\n            let l1 = Math.sqrt(Math.pow(v1.x, 2) + Math.pow(v1.y, 2));\r\n\r\n            let l2 = Math.sqrt(Math.pow(v2.x, 2) + Math.pow(v2.y, 2)) / 2.5,\r\n                l3 = Math.sqrt(Math.pow(v3.x, 2) + Math.pow(v3.y, 2)) / 2.5;\r\n            v1.x /= l1;\r\n            v1.y /= l1;\r\n            point.p1 = {\r\n                x: p.x - v1.x * l2,\r\n                y: p.y - v1.y * l2\r\n            };\r\n            point.p2 = {\r\n                x: p.x + v1.x * l3,\r\n                y: p.y + v1.y * l3\r\n            };\r\n        });\r\n    } else {\r\n\r\n    }\r\n    if (line.length < 3) {\r\n        return;\r\n    }\r\n\r\n    let point = line[0];\r\n    ctx.moveTo(point.x, point.y);\r\n    line.forEach((point, i, points) => {\r\n        let target = points[(i + 1) % points.length];\r\n        try {\r\n            ctx.bezierCurveTo(\r\n                point.p2.x,\r\n                point.p2.y,\r\n                target.p1.x,\r\n                target.p1.y,\r\n                target.x,\r\n                target.y\r\n            );\r\n        } catch (error) {\r\n            debugger\r\n        }\r\n\r\n    });\r\n    return true\r\n}\r\nfunction filtPointsInPoligons(points: Array<L.Point>, poligons: Array<Array<L.Point>>, curve = false):Array<number> {\r\n    let canvas = document.createElement('canvas')\r\n    canvas.width = 512\r\n    canvas.height = 512\r\n    let ctx = canvas.getContext('2d')\r\n    if (ctx) {\r\n        ctx.fillStyle = '#ffffff'\r\n        let min_x = 10000000000, max_x = -10000000000, min_y = 10000000000, max_y = -10000000000\r\n        poligons.forEach(line => {\r\n            line.forEach(point => {\r\n                if (point.x < min_x) min_x = point.x\r\n                if (point.x > max_x) max_x = point.x\r\n                if (point.y < min_y) min_y = point.y\r\n                if (point.y > max_y) max_y = point.y\r\n            })\r\n        })\r\n        let transform = new Transform([min_y, max_y, min_x, max_x], [0, 512, 0, 512])\r\n        poligons.forEach((line) => {\r\n            let point = line[line.length - 1];\r\n            let p = transform.to([point.x, point.y])\r\n            ctx?.moveTo(p[0], p[1]);\r\n            line.forEach(point => {\r\n                p = transform.to([point.x, point.y])\r\n                ctx?.lineTo(p[0], p[1]);\r\n            });\r\n        })\r\n        ctx.fill()\r\n        let imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n        let result:Array<number>=[]\r\n        points.forEach((p ,i)=> {\r\n            let o=transform.to([p.x, p.y])\r\n            let x= Math.round(o[0]) \r\n            if(x<0||x>canvas.width-1){\r\n                return\r\n            }\r\n            let y= Math.round(o[1])\r\n            if(y<0||y>canvas.height-1){\r\n                return\r\n            }\r\n            let k=(canvas.width*y+x)*4\r\n            if(imageData.data[k]==255){\r\n                result.push(i)\r\n            }\r\n        });\r\n        return result\r\n    }\r\n    return []\r\n}\r\nexport default {\r\n    DrawPolygon,\r\n    DrawBezier,\r\n    filtPointsInPoligons\r\n}","import utils from '../utils'\r\nclass PolygonPainter implements ILayer {\r\n    dom: HTMLCanvasElement;\r\n    option: IOption;\r\n    map: L.Map;\r\n    lines: Array<Array<L.Point>> = []\r\n    points: Array<L.Point> = [];\r\n    _mousePosition?: L.Point\r\n    get curve():boolean {\r\n        return this.option.curve || false\r\n    }\r\n    get pane() {\r\n        return this.option.pane || 'popupPane'\r\n    }\r\n    constructor(map: L.Map, option?: IOption) {\r\n        this.map = map\r\n        this.option = option || {}\r\n        let canvas = document.createElement('canvas')\r\n        canvas.className = 'leaflet-zoom-animated'\r\n        canvas.style.cursor = 'crosshair'\r\n        this.dom = canvas\r\n        this.setSize()\r\n        this.setPosition()\r\n        map.getPanes()[this.pane].appendChild(this.dom);\r\n        map.on('click', this.onClick, this)\r\n        map.on('mousemove', this.onMouseMove, this)\r\n        map.on('moveend', this.onMoveEnd, this)\r\n        map.on(\"zoomanim\", this.onAnimateZoom, this);\r\n        map.on(\"dblclick\", this.onDblClick, this)\r\n    }\r\n    destroy() {\r\n        this.map.getPanes()[this.pane].removeChild(this.dom);\r\n        this.map.off('click', this.onClick, this)\r\n        this.map.off('mousemove', this.onMouseMove, this)\r\n        this.map.off('moveend', this.onMoveEnd, this)\r\n        this.map.off(\"zoomanim\", this.onAnimateZoom, this);\r\n        this.map.off(\"dblclick\", this.onDblClick, this)\r\n    }\r\n    onDblClick(e: L.LeafletMouseEvent) {\r\n        this.points.pop()\r\n        this.lines.push(this.points)\r\n        this.points = []\r\n    }\r\n    onAnimateZoom(e: L.ZoomAnimEvent) {\r\n        let scale = this.map.getZoomScale(e.zoom, this.map.getZoom()),\r\n            offset = this.map._latLngBoundsToNewLayerBounds(this.map.getBounds(), e.zoom, e.center).min;\r\n        L.DomUtil.setTransform(this.dom, offset, scale);\r\n    }\r\n    onClick(e: L.LeafletMouseEvent) {\r\n        this.points.push(L.Projection.SphericalMercator.project(e.latlng))\r\n    }\r\n    onMouseMove(e: L.LeafletMouseEvent) {\r\n        this._mousePosition = L.Projection.SphericalMercator.project(e.latlng)\r\n        if (this.points.length > 0) {\r\n            this.draw()\r\n        }\r\n    }\r\n    onMoveEnd() {\r\n        this.draw()\r\n    }\r\n    draw() {\r\n        let size = this.map.getSize();\r\n        this.dom.width = size.x\r\n        this.dom.height = size.y\r\n        let bounds = this.map.getBounds();\r\n        let point = this.map.latLngToLayerPoint(bounds.getNorthWest());\r\n        this.dom.style.transform = `translate(${point.x}px, ${point.y}px)`\r\n        let leftBottom = L.Projection.SphericalMercator.project(bounds.getSouthWest())\r\n        let rightTop = L.Projection.SphericalMercator.project(bounds.getNorthEast())\r\n        let scalex = (rightTop.x - leftBottom.x) / size.x\r\n        let scaley = (rightTop.y - leftBottom.y) / size.y\r\n        const ctx = this.dom.getContext(\"2d\");\r\n        if (ctx) {\r\n            ctx.fillStyle = this.option.fill || '#13d6ea88';\r\n            ctx.strokeStyle = this.option.color || '#4411e1';\r\n            ctx.lineWidth = 2 * scalex;\r\n            ctx.save();\r\n            ctx.scale(1 / scalex, -1 / scaley)\r\n            ctx.translate(-leftBottom.x, -rightTop.y)\r\n            this.lines.forEach(line => {\r\n               this.curve?utils.DrawBezier(line,ctx,false): utils.DrawPolygon(line, ctx)\r\n            })\r\n            if (this.points.length > 0 && this._mousePosition) {\r\n                this.curve? utils.DrawBezier([...this.points, this._mousePosition], ctx,false): utils.DrawPolygon([...this.points, this._mousePosition], ctx)\r\n               \r\n            }\r\n            ctx.fill();\r\n            ctx.stroke();\r\n        }\r\n\r\n    }\r\n    setSize() {\r\n        let size = this.map.getSize();\r\n        this.dom.width = size.x\r\n        this.dom.height = size.y\r\n    }\r\n    setPosition() {\r\n        let bounds = this.map.getBounds();\r\n        let point = this.map.latLngToLayerPoint(bounds.getNorthWest());\r\n        this.dom.style.transform = `translate(${point.x}px, ${point.y}px)`\r\n    }\r\n}\r\nexport { PolygonPainter } "]}