gis-leaflet-helper 3.2.21 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  (function(){ try {var elementStyle = document.createElement('style'); elementStyle.appendChild(document.createTextNode(".leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:\"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:\"\"}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.marker-icon{background-color:#fff;border:1px solid #3388ff;border-radius:50%;margin:-8px 0 0 -8px!important;width:14px!important;height:14px!important;outline:0;transition:opacity ease .3s}.marker-icon-middle{opacity:.7;margin:-6px 0 0 -6px!important;width:10px!important;height:10px!important}.leaflet-pm-draggable{cursor:move!important}.cursor-marker{cursor:crosshair;pointer-events:none;opacity:0}.cursor-marker.visible{opacity:1!important}.geoman-draw-cursor,.geoman-draw-cursor .leaflet-interactive{cursor:crosshair}.rect-style-marker,.rect-start-marker{opacity:0}.rect-style-marker.visible,.rect-start-marker.visible{opacity:1!important}.vertexmarker-disabled{opacity:.7}.pm-text-marker{width:0;height:0}.pm-textarea{box-sizing:content-box;background-color:#fff;color:#000;resize:none;border:none;outline:0;cursor:pointer;border-radius:3px;padding-left:7px;padding-bottom:0;padding-top:4px}.leaflet-pm-draggable .pm-textarea{cursor:move}.pm-textarea:focus,.pm-textarea:focus-within,.pm-textarea:focus-visible,.pm-textarea:active{border:2px solid #000;outline:0}.pm-textarea.pm-disabled{border:none;-webkit-user-select:none;user-select:none}.pm-textarea.pm-hasfocus{cursor:auto}.leaflet-pm-toolbar .leaflet-buttons-control-button{padding:5px;box-sizing:border-box;position:relative;z-index:3}.leaflet-pm-toolbar .leaflet-pm-actions-container a.leaflet-pm-action:first-child:not(.pos-right),.leaflet-pm-toolbar .leaflet-pm-actions-container a.leaflet-pm-action:last-child.pos-right{border-radius:0}.leaflet-pm-toolbar .button-container a.leaflet-buttons-control-button{border-radius:0}.leaflet-pm-toolbar .button-container:last-child a.leaflet-buttons-control-button{border-radius:0 0 2px 2px}.leaflet-pm-toolbar .button-container:first-child a.leaflet-buttons-control-button{border-radius:2px 2px 0 0}.leaflet-pm-toolbar .button-container:last-child a.leaflet-buttons-control-button{border-bottom:none}.leaflet-pm-toolbar .control-fa-icon{font-size:19px;line-height:24px}.leaflet-pm-toolbar .control-icon{width:100%;height:100%;box-sizing:border-box;background-size:contain;background-repeat:no-repeat;background-position:center center}.leaflet-pm-toolbar .leaflet-pm-icon-marker{background-image:url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"UTF-8\"?>%0A<svg width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">%0A <!-- Generator: Sketch 52.5 (67469) - http://www.bohemiancoding.com/sketch -->%0A <title>Atoms/Icons/Tools/Marker</title>%0A <desc>Created with Sketch.</desc>%0A <defs>%0A <path d=\"M15.5,24.8782959 C15.2909201,24.8772219 15.1744857,24.8467817 14.6590866,24.2354163 C10.2196955,19.4118054 8,15.5014392 8,12.5043177 C8,8.35979746 11.3578644,5 15.5,5 C19.6421356,5 23,8.35979746 23,12.5043177 C23,17 18.2878217,21.9268378 16.3336601,24.2440186 C15.8224622,24.8501802 15.7090799,24.8793699 15.5,24.8782959 Z M15.5,15.5326948 C17.275201,15.5326948 18.7142857,14.1180004 18.7142857,12.3728864 C18.7142857,10.6277723 17.275201,9.21307792 15.5,9.21307792 C13.724799,9.21307792 12.2857143,10.6277723 12.2857143,12.3728864 C12.2857143,14.1180004 13.724799,15.5326948 15.5,15.5326948 Z\" id=\"path-1\"></path>%0A </defs>%0A <g id=\"Symbols\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">%0A <g id=\"Atoms/Icons/Tools/Marker\" transform=\"translate(-3.000000, -3.000000)\">%0A <mask id=\"mask-2\" fill=\"white\">%0A <use xlink:href=\"%23path-1\"></use>%0A </mask>%0A <use id=\"Mask\" fill=\"%235B5B5B\" fill-rule=\"nonzero\" xlink:href=\"%23path-1\"></use>%0A </g>%0A </g>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-polygon{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">%0A <defs>%0A <path id=\"polygon-a\" d=\"M19.4206892,9.16509725 C19.1523681,8.66992914 19,8.10275831 19,7.5 C19,5.56700338 20.5670034,4 22.5,4 C24.4329966,4 26,5.56700338 26,7.5 C26,9.26323595 24.6961471,10.7219407 23,10.9645556 L23,19.0354444 C24.6961471,19.2780593 26,20.736764 26,22.5 C26,24.4329966 24.4329966,26 22.5,26 C20.736764,26 19.2780593,24.6961471 19.0354444,23 L10.9645556,23 C10.7219407,24.6961471 9.26323595,26 7.5,26 C5.56700338,26 4,24.4329966 4,22.5 C4,20.5670034 5.56700338,19 7.5,19 C8.10275831,19 8.66992914,19.1523681 9.16509725,19.4206892 L19.4206892,9.16509725 Z M20.8349073,10.5793063 L10.5793108,20.8349027 C10.6086731,20.8890888 10.6366469,20.9441372 10.6631844,21 L19.3368156,21 C19.6825775,20.272154 20.272154,19.6825775 21,19.3368156 L21,10.6631844 C20.9441372,10.6366469 20.8890888,10.6086731 20.8349027,10.5793108 Z M22.5,9 C23.3284271,9 24,8.32842712 24,7.5 C24,6.67157288 23.3284271,6 22.5,6 C21.6715729,6 21,6.67157288 21,7.5 C21,8.32842712 21.6715729,9 22.5,9 Z M22.5,24 C23.3284271,24 24,23.3284271 24,22.5 C24,21.6715729 23.3284271,21 22.5,21 C21.6715729,21 21,21.6715729 21,22.5 C21,23.3284271 21.6715729,24 22.5,24 Z M7.5,24 C8.32842712,24 9,23.3284271 9,22.5 C9,21.6715729 8.32842712,21 7.5,21 C6.67157288,21 6,21.6715729 6,22.5 C6,23.3284271 6.67157288,24 7.5,24 Z\"/>%0A </defs>%0A <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(-3 -3)\">%0A <mask id=\"polygon-b\" fill=\"%23fff\">%0A <use xlink:href=\"%23polygon-a\"/>%0A </mask>%0A <use fill=\"%235B5B5B\" fill-rule=\"nonzero\" xlink:href=\"%23polygon-a\"/>%0A <g fill=\"%235B5B5B\" mask=\"url(%23polygon-b)\">%0A <rect width=\"30\" height=\"30\"/>%0A </g>%0A </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-polyline{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">%0A <defs>%0A <path id=\"line-a\" d=\"M9.16509725,19.4206892 L18.4206892,10.1650973 C18.1523681,9.66992914 18,9.10275831 18,8.5 C18,6.56700338 19.5670034,5 21.5,5 C23.4329966,5 25,6.56700338 25,8.5 C25,10.4329966 23.4329966,12 21.5,12 C20.8972417,12 20.3300709,11.8476319 19.8349027,11.5793108 L10.5793108,20.8349027 C10.8476319,21.3300709 11,21.8972417 11,22.5 C11,24.4329966 9.43299662,26 7.5,26 C5.56700338,26 4,24.4329966 4,22.5 C4,20.5670034 5.56700338,19 7.5,19 C8.10275831,19 8.66992914,19.1523681 9.16509725,19.4206892 Z M21.5,10 C22.3284271,10 23,9.32842712 23,8.5 C23,7.67157288 22.3284271,7 21.5,7 C20.6715729,7 20,7.67157288 20,8.5 C20,9.32842712 20.6715729,10 21.5,10 Z M7.5,24 C8.32842712,24 9,23.3284271 9,22.5 C9,21.6715729 8.32842712,21 7.5,21 C6.67157288,21 6,21.6715729 6,22.5 C6,23.3284271 6.67157288,24 7.5,24 Z\"/>%0A </defs>%0A <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(-3 -3)\">%0A <mask id=\"line-b\" fill=\"%23fff\">%0A <use xlink:href=\"%23line-a\"/>%0A </mask>%0A <use fill=\"%235B5B5B\" fill-rule=\"nonzero\" xlink:href=\"%23line-a\"/>%0A <g fill=\"%235B5B5B\" mask=\"url(%23line-b)\">%0A <rect width=\"30\" height=\"30\"/>%0A </g>%0A </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-circle{background-image:url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"UTF-8\"?>%0A<svg width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">%0A <!-- Generator: Sketch 52.5 (67469) - http://www.bohemiancoding.com/sketch -->%0A <title>Atoms/Icons/Tools/Circle</title>%0A <desc>Created with Sketch.</desc>%0A <defs>%0A <path d=\"M18.2897751,6.78602275 C18.8924131,6.29464981 19.661797,6 20.5,6 C22.4329966,6 24,7.56700338 24,9.5 C24,10.338203 23.7053502,11.1075869 23.2139772,11.7102249 C23.719599,12.8712053 24,14.1528571 24,15.5 C24,20.7467051 19.7467051,25 14.5,25 C9.25329488,25 5,20.7467051 5,15.5 C5,10.2532949 9.25329488,6 14.5,6 C15.8471429,6 17.1287947,6.28040098 18.2897751,6.78602275 Z M17.1504228,8.4817586 C16.3263581,8.17039236 15.4330777,8 14.5,8 C10.3578644,8 7,11.3578644 7,15.5 C7,19.6421356 10.3578644,23 14.5,23 C18.6421356,23 22,19.6421356 22,15.5 C22,14.5669223 21.8296076,13.6736419 21.5182414,12.8495772 C21.1960383,12.9473968 20.8541622,13 20.5,13 C18.5670034,13 17,11.4329966 17,9.5 C17,9.14583778 17.0526032,8.80396169 17.1504228,8.4817586 Z M14.5,17 C13.6715729,17 13,16.3284271 13,15.5 C13,14.6715729 13.6715729,14 14.5,14 C15.3284271,14 16,14.6715729 16,15.5 C16,16.3284271 15.3284271,17 14.5,17 Z M20.5,11 C21.3284271,11 22,10.3284271 22,9.5 C22,8.67157288 21.3284271,8 20.5,8 C19.6715729,8 19,8.67157288 19,9.5 C19,10.3284271 19.6715729,11 20.5,11 Z\" id=\"path-1\"></path>%0A </defs>%0A <g id=\"Symbols\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">%0A <g id=\"Atoms/Icons/Tools/Circle\" transform=\"translate(-3.000000, -3.000000)\">%0A <mask id=\"mask-2\" fill=\"white\">%0A <use xlink:href=\"%23path-1\"></use>%0A </mask>%0A <use id=\"Mask\" fill=\"%235B5B5B\" fill-rule=\"nonzero\" xlink:href=\"%23path-1\"></use>%0A <g id=\"Atoms/Color/Grey\" mask=\"url(%23mask-2)\" fill=\"%235B5B5B\">%0A <rect id=\"Rectangle\" x=\"0\" y=\"0\" width=\"30\" height=\"30\"></rect>%0A </g>%0A </g>%0A </g>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-circle-marker{background-image:url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"UTF-8\"?>%0A%0A<svg viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" stroke=\"%235B5B5B\" stroke-width=\"8\"%0A fill=\"none\">%0A<circle cx=\"50\" cy=\"50\" r=\"35\"/>%0A <circle cx=\"50\" cy=\"50\" r=\"3\" fill=\"%235B5B5B\"/>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-rectangle{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">%0A <defs>%0A <path id=\"rectangle-a\" d=\"M23,10.9645556 L23,19.0354444 C24.6961471,19.2780593 26,20.736764 26,22.5 C26,24.4329966 24.4329966,26 22.5,26 C20.736764,26 19.2780593,24.6961471 19.0354444,23 L10.9645556,23 C10.7219407,24.6961471 9.26323595,26 7.5,26 C5.56700338,26 4,24.4329966 4,22.5 C4,20.736764 5.30385293,19.2780593 7,19.0354444 L7,10.9645556 C5.30385293,10.7219407 4,9.26323595 4,7.5 C4,5.56700338 5.56700338,4 7.5,4 C9.26323595,4 10.7219407,5.30385293 10.9645556,7 L19.0354444,7 C19.2780593,5.30385293 20.736764,4 22.5,4 C24.4329966,4 26,5.56700338 26,7.5 C26,9.26323595 24.6961471,10.7219407 23,10.9645556 Z M21,10.6631844 C20.272154,10.3174225 19.6825775,9.72784598 19.3368156,9 L10.6631844,9 C10.3174225,9.72784598 9.72784598,10.3174225 9,10.6631844 L9,19.3368156 C9.72784598,19.6825775 10.3174225,20.272154 10.6631844,21 L19.3368156,21 C19.6825775,20.272154 20.272154,19.6825775 21,19.3368156 L21,10.6631844 Z M7.5,9 C8.32842712,9 9,8.32842712 9,7.5 C9,6.67157288 8.32842712,6 7.5,6 C6.67157288,6 6,6.67157288 6,7.5 C6,8.32842712 6.67157288,9 7.5,9 Z M22.5,9 C23.3284271,9 24,8.32842712 24,7.5 C24,6.67157288 23.3284271,6 22.5,6 C21.6715729,6 21,6.67157288 21,7.5 C21,8.32842712 21.6715729,9 22.5,9 Z M22.5,24 C23.3284271,24 24,23.3284271 24,22.5 C24,21.6715729 23.3284271,21 22.5,21 C21.6715729,21 21,21.6715729 21,22.5 C21,23.3284271 21.6715729,24 22.5,24 Z M7.5,24 C8.32842712,24 9,23.3284271 9,22.5 C9,21.6715729 8.32842712,21 7.5,21 C6.67157288,21 6,21.6715729 6,22.5 C6,23.3284271 6.67157288,24 7.5,24 Z\"/>%0A </defs>%0A <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(-3 -3)\">%0A <mask id=\"rectangle-b\" fill=\"%23fff\">%0A <use xlink:href=\"%23rectangle-a\"/>%0A </mask>%0A <use fill=\"%235B5B5B\" fill-rule=\"nonzero\" xlink:href=\"%23rectangle-a\"/>%0A <g fill=\"%235B5B5B\" mask=\"url(%23rectangle-b)\">%0A <rect width=\"30\" height=\"30\"/>%0A </g>%0A </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-delete{background-image:url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"UTF-8\"?>%0A<svg width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">%0A <!-- Generator: Sketch 52.5 (67469) - http://www.bohemiancoding.com/sketch -->%0A <title>Atoms/Icons/Tools/Eraser</title>%0A <desc>Created with Sketch.</desc>%0A <defs>%0A <path d=\"M17.7874219,18.4812552 L11.6480079,13.3498184 L6.40466009,19.3816001 L10.5539156,22.9884929 L13.86934,22.9884929 L17.7874219,18.4812552 Z M16.5074252,22.9884929 L26.0000002,22.9884929 L26.0000002,24.9884929 L10.0000002,24.9884929 L9.80708313,24.9884929 L5.09254204,20.8910192 C4.25891285,20.1663564 4.17057814,18.9031112 4.89524093,18.069482 L16.0482444,5.23941916 C16.7729072,4.40578998 18.0361525,4.31745526 18.8697816,5.04211806 L24.9074583,10.2905903 C25.7410875,11.0152531 25.8294222,12.2784983 25.1047594,13.1121275 L16.5074252,22.9884929 Z\" id=\"path-1\"></path>%0A </defs>%0A <g id=\"Symbols\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">%0A <g id=\"Atoms/Icons/Tools/Eraser\" transform=\"translate(-3.000000, -3.000000)\">%0A <mask id=\"mask-2\" fill=\"white\">%0A <use xlink:href=\"%23path-1\"></use>%0A </mask>%0A <use id=\"Combined-Shape\" fill=\"%235B5B5B\" fill-rule=\"nonzero\" xlink:href=\"%23path-1\"></use>%0A </g>%0A </g>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-edit{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">%0A <defs>%0A <path id=\"edit_anchor-a\" d=\"M13.5,11 C11.5670034,11 10,9.43299662 10,7.5 C10,5.56700338 11.5670034,4 13.5,4 C15.4329966,4 17,5.56700338 17,7.5 C17,9.43299662 15.4329966,11 13.5,11 Z M13.5,9 C14.3284271,9 15,8.32842712 15,7.5 C15,6.67157288 14.3284271,6 13.5,6 C12.6715729,6 12,6.67157288 12,7.5 C12,8.32842712 12.6715729,9 13.5,9 Z M12.0002889,7.52973893 C12.0125983,8.16273672 12.4170197,8.6996643 12.9807111,8.90767966 L3,15 L3,13 L12.0002889,7.52973893 Z M14.2172722,6.18228472 L19.453125,3 L22.6589355,3 L14.989102,7.68173885 C14.9962971,7.62216459 15,7.56151472 15,7.5 C15,6.93138381 14.6836098,6.4366645 14.2172722,6.18228472 Z M23.4434042,19.2851736 L20.1282799,19.2851736 L21.8729983,23.5349525 C21.9945296,23.8295773 21.8556546,24.1599209 21.5778734,24.2849208 L20.0414675,24.9545142 C19.7550613,25.0795141 19.4338738,24.9366704 19.3123426,24.6509518 L17.6544367,20.6154541 L14.9461873,23.4010151 C14.5852811,23.7721711 14,23.4860463 14,22.9992653 L14,9.57183533 C14,9.05933561 14.6225311,8.809492 14.946156,9.17008555 L23.8340292,18.3120179 C24.1925291,18.6613615 23.9279979,19.2851736 23.4434042,19.2851736 Z\"/>%0A </defs>%0A <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(-3 -3)\">%0A <mask id=\"edit_anchor-b\" fill=\"%23fff\">%0A <use xlink:href=\"%23edit_anchor-a\"/>%0A </mask>%0A <use fill=\"%235B5B5B\" fill-rule=\"nonzero\" xlink:href=\"%23edit_anchor-a\"/>%0A <g fill=\"%235B5B5B\" mask=\"url(%23edit_anchor-b)\">%0A <rect width=\"30\" height=\"30\"/>%0A </g>%0A </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-drag{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">%0A <defs>%0A <path id=\"move-a\" d=\"M21,14 L21,10 L27,15 L21,20 L21,16 L16,16 L16,21 L20,21 L15,27 L10,21 L14,21 L14,16 L9,16 L9,20 L3,15 L9,10 L9,14 L14,14 L14,9 L10,9 L15,3 L20,9 L16,9 L16,14 L21,14 Z\"/>%0A </defs>%0A <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(-3 -3)\">%0A <mask id=\"move-b\" fill=\"%23fff\">%0A <use xlink:href=\"%23move-a\"/>%0A </mask>%0A <use fill=\"%23D8D8D8\" xlink:href=\"%23move-a\"/>%0A <g fill=\"%235B5B5B\" mask=\"url(%23move-b)\">%0A <rect width=\"30\" height=\"30\"/>%0A </g>%0A </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-cut{background-image:url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"UTF-8\"?>%0A<svg width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">%0A <!-- Generator: Sketch 52.5 (67469) - http://www.bohemiancoding.com/sketch -->%0A <title>Atoms/Icons/Tools/Scissors</title>%0A <desc>Created with Sketch.</desc>%0A <defs>%0A <path d=\"M12.9691574,13.4939435 L21.0317032,5.54167013 L23.4649499,5.67722957 L17.0470713,14.5106816 L27.5660336,17.1333535 L25.7891944,18.8012588 L14.5854951,17.8987506 L13.6487955,19.188007 C13.794639,19.2650958 13.9367985,19.3534417 14.0741377,19.4532245 C15.6379648,20.5894114 15.9846357,22.7782052 14.8484488,24.3420324 C13.7122619,25.9058595 11.5234681,26.2525304 9.95964096,25.1163435 C8.39581384,23.9801565 8.04914296,21.7913627 9.18532986,20.2275356 C9.74587276,19.4560145 10.5626188,18.9807475 11.4341218,18.8336407 L12.6805656,17.1180579 L12.5239724,16.3747216 L11.9506932,15.3012391 L9.89310646,14.7882251 C9.13093796,15.2357261 8.19977854,15.3966447 7.27445355,15.1659352 C5.39887519,14.698301 4.25751094,12.7987519 4.72514515,10.9231736 C5.19277935,9.04759519 7.09232846,7.90623094 8.96790682,8.37386515 C10.8434852,8.84149935 11.9848494,10.7410485 11.5172152,12.6166268 C11.4761464,12.7813449 11.4240335,12.9404001 11.3618627,13.0931999 L12.9691574,13.4939435 Z M7.75829735,13.2253438 C8.56211664,13.4257584 9.37620912,12.9366023 9.57662378,12.132783 C9.77703844,11.3289637 9.28788233,10.5148713 8.48406303,10.3144566 C7.68024373,10.1140419 6.86615126,10.603198 6.6657366,11.4070173 C6.46532194,12.2108366 6.95447805,13.0249291 7.75829735,13.2253438 Z M10.8033639,21.4031061 C10.3164266,22.0733177 10.4649998,23.0113722 11.1352115,23.4983095 C11.8054231,23.9852467 12.7434776,23.8366735 13.2304148,23.1664619 C13.7173521,22.4962502 13.5687788,21.5581957 12.8985672,21.0712585 C12.2283556,20.5843212 11.2903011,20.7328945 10.8033639,21.4031061 Z\" id=\"path-1\"></path>%0A </defs>%0A <g id=\"Symbols\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">%0A <g id=\"Atoms/Icons/Tools/Scissors\" transform=\"translate(-3.000000, -3.000000)\">%0A <mask id=\"mask-2\" fill=\"white\">%0A <use xlink:href=\"%23path-1\"></use>%0A </mask>%0A <use id=\"Mask\" fill=\"%235B5B5B\" fill-rule=\"nonzero\" transform=\"translate(16.093194, 15.663351) rotate(-32.000000) translate(-16.093194, -15.663351) \" xlink:href=\"%23path-1\"></use>%0A </g>%0A </g>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-snapping{background-image:url('data:image/svg+xml,<?xml version=\"1.0\" encoding=\"UTF-8\"?>%0A<svg width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">%0A <!-- Generator: Sketch 57.1 (83088) - https://sketch.com -->%0A <title>Atoms/Icons/Tools/Magnet</title>%0A <desc>Created with Sketch.</desc>%0A <defs>%0A <path d=\"M21.9994759,10.9428183 L21.9999985,16.3710417 C22,16.6872007 22,17.0058278 22,17.3269411 C22,21.5646545 18.6421356,25 14.5,25 C10.3578644,25 7,21.5646545 7,17.3269411 L7.00087508,10.9907507 L11.0022808,10.9984125 C11.0017033,11.6980114 11.001247,12.4168248 11.0008992,13.1554887 L11,17.3269411 C11,19.3756809 12.5876841,21 14.5,21 C16.4123159,21 18,19.3756809 18,17.3269411 C18,15.0702032 17.9995696,12.9619668 17.998539,10.9910032 L21.9994759,10.9428183 Z M10,7 C10.5522847,7 11,7.44771525 11,8 L11,10 L7,10 L7,8 C7,7.44771525 7.44771525,7 8,7 L10,7 Z M21,7 C21.5522847,7 22,7.44771525 22,8 L22,10 L18,10 L18,8 C18,7.44771525 18.4477153,7 19,7 L21,7 Z\" id=\"path-1\"></path>%0A </defs>%0A <g id=\"Symbols\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">%0A <g id=\"Atoms/Icons/Tools/Magnet\" transform=\"translate(-3.000000, -3.000000)\">%0A <mask id=\"mask-2\" fill=\"white\">%0A <use xlink:href=\"%23path-1\"></use>%0A </mask>%0A <use id=\"Mask\" fill=\"%235B5B5B\" fill-rule=\"nonzero\" transform=\"translate(14.500000, 16.000000) rotate(45.000000) translate(-14.500000, -16.000000) \" xlink:href=\"%23path-1\"></use>%0A </g>%0A </g>%0A</svg>')}.leaflet-pm-toolbar .leaflet-pm-icon-rotate{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">%0A <defs>%0A <path id=\"rotate\" d=\"M21.2,5.8c-0.1-0.2-0.2-0.3-0.3-0.5l-0.1-0.2c-0.1-0.2-0.2-0.3-0.3-0.5l-0.1-0.2c-0.1-0.2-0.2-0.3-0.4-0.5l-0.2-0.3l2.8-3.1L18,0.6l-4.6,0.1l0.5,4.5l0.5,4.5l3.2-3.6v0.1l0.1,0.2c0.1,0.1,0.1,0.2,0.2,0.2l0.1,0.2C18,7,18,7.1,18.1,7.2c0.3,0.7,0.6,1.4,0.7,2.1c0.2,1.4,0,2.9-0.6,4.2L18,13.9L17.9,14l-0.3,0.5l-0.1,0.2c-0.2,0.2-0.4,0.5-0.6,0.7c-0.5,0.5-1.1,1-1.7,1.3c-0.6,0.4-1.3,0.6-2.1,0.8c-0.7,0.1-1.5,0.2-2.2,0.1c-0.8-0.1-1.5-0.3-2.2-0.5c-0.7-0.3-1.3-0.7-1.9-1.2l-0.4-0.4l-0.2-0.3L6,15c-0.1-0.1-0.2-0.2-0.2-0.3l-0.3-0.4l-0.1-0.1l-0.2-0.4c0-0.1-0.1-0.1-0.1-0.2l-0.3-0.5l-0.1-0.2c-0.1-0.3-0.2-0.6-0.3-0.9c-0.2-0.8-0.3-1.6-0.3-2.4c0-0.2,0-0.3,0-0.5V8.9c0-0.2,0-0.3,0.1-0.4l0.1-0.6l0.2-0.6c0.3-0.8,0.7-1.5,1.2-2.2c0.5-0.7,1.1-1.3,1.8-1.8c0.2-0.1,0.3-0.4,0.1-0.6C7.5,2.6,7.4,2.5,7.3,2.5H7.1L7,2.6C6.1,3,5.4,3.6,4.7,4.2C4,4.9,3.5,5.7,3,6.6c-0.9,1.8-1.2,3.8-0.8,5.8c0.1,0.5,0.2,0.9,0.3,1.4l0.3,0.8C2.9,14.7,3,14.8,3,15l0.2,0.4c0,0.1,0.1,0.2,0.1,0.2l0.3,0.5c0.1,0.2,0.2,0.3,0.3,0.5l0.1,0.2c0.1,0.1,0.2,0.3,0.3,0.4L5,17.8c0.7,0.7,1.6,1.3,2.5,1.8c0.9,0.5,1.9,0.8,3,0.9c0.5,0.1,1,0.1,1.5,0.1c0.6,0,1.1,0,1.6-0.1c1-0.2,2.1-0.5,3-1l0.2-0.1c0.2-0.1,0.3-0.2,0.5-0.3l0.7-0.4c0.2-0.1,0.3-0.2,0.4-0.3l0.2-0.2c0.2-0.1,0.4-0.3,0.5-0.5l0.1-0.1c0.3-0.3,0.7-0.7,0.9-1l0.6-0.9l0.4-0.6c1-1.9,1.4-4.1,1.1-6.2C22,7.8,21.7,6.7,21.2,5.8z\"/>%0A </defs>%0A <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0 2)\">%0A <mask id=\"rotate-b\" fill=\"%23fff\">%0A <use xlink:href=\"%23rotate\"/>%0A </mask>%0A <use fill=\"%235B5B5B\" fill-rule=\"nonzero\" xlink:href=\"%23rotate\"/>%0A <g fill=\"%235B5B5B\" mask=\"url(%23rotate-b)\">%0A <rect width=\"30\" height=\"30\"/>%0A </g>%0A </g>%0A</svg>%0A')}.leaflet-pm-toolbar .leaflet-pm-icon-text{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><defs><style>.cls-1{fill:none;stroke:%235b5b5b;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5px;}<\\/style></defs><title>Text</title><g id=\"Ebene_2\" data-name=\"Ebene 2\"><polyline class=\"cls-1\" points=\"19.64 7.27 19.64 4 12 4 12 20 15.91 20 8.09 20 12 20 12 4 4.36 4 4.36 7.27\"/></g></svg>')}.leaflet-buttons-control-button:hover,.leaflet-buttons-control-button:focus{cursor:pointer;background-color:#f4f4f4}.active>.leaflet-buttons-control-button{box-shadow:inset 0 -1px 5px 2px #514d4d4f}.leaflet-buttons-control-text-hide{display:none}.button-container{position:relative}.button-container .leaflet-pm-actions-container{z-index:2;position:absolute;top:0;left:100%;display:none;white-space:nowrap;direction:ltr}.leaflet-right .leaflet-pm-toolbar .button-container .leaflet-pm-actions-container{right:100%;left:auto}.button-container.active .leaflet-pm-actions-container{display:block}.button-container .leaflet-pm-actions-container:not(.pos-right) a.leaflet-pm-action:last-child{border-radius:0 3px 3px 0;border-right:0}.button-container .leaflet-pm-actions-container.pos-right a.leaflet-pm-action:first-child{border-radius:3px 0 0 3px}.button-container .leaflet-pm-actions-container.pos-right a.leaflet-pm-action:last-child{border-right:0}.button-container .leaflet-pm-actions-container .leaflet-pm-action{padding:0 10px;background-color:#666;color:#fff;display:inline-block;width:auto;border-right:1px solid #eee;-webkit-user-select:none;user-select:none;border-bottom:none;height:29px;line-height:29px;vertical-align:middle}.leaflet-pm-toolbar .button-container:first-child.pos-right.active a.leaflet-buttons-control-button{border-top-left-radius:0}.leaflet-pm-toolbar .button-container:first-child.active:not(.pos-right) a.leaflet-buttons-control-button{border-top-right-radius:0}.button-container .leaflet-pm-actions-container .leaflet-pm-action:hover,.button-container .leaflet-pm-actions-container .leaflet-pm-action:focus{cursor:pointer;background-color:#777}.button-container .leaflet-pm-actions-container .leaflet-pm-action.active-action{background-color:#8e8e8e}.leaflet-pm-toolbar.activeChild{z-index:801}.leaflet-buttons-control-button.pm-disabled{background-color:#f4f4f4}.leaflet-buttons-control-button.pm-disabled>.control-icon{filter:opacity(.6)}.button-container .leaflet-pm-actions-container .pm-action-button-mode.control-icon{filter:brightness(0) invert(1);width:18px}body{height:100%;margin:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-family:Microsoft YaHei,Arial,sans-serif}label{font-weight:700}html{height:100%;box-sizing:border-box}#app{height:100%}*,*:before,*:after{box-sizing:inherit}a:focus,a:active{outline:none}a,a:focus,a:hover{cursor:pointer;text-decoration:none}div:focus{outline:none}.clearfix:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}.leaflet-left .leaflet-control{margin-left:5px}.leaflet-right .leaflet-control{margin-right:5px}.leaflet-top .leaflet-control{margin-top:5px}.leaflet-bottom .leaflet-control{margin-bottom:5px}.leaflet-div-icon{border:none!important;background:transparent!important;text-align:center}.leaflet-measure-path-measurement{position:absolute;left:0;top:0;font-size:13px;font-weight:700;color:red;text-shadow:-1px 0 0 white,-1px -1px 0 white,0 -1px 0 white,1px -1px 0 white,1px 0 0 white,1px 1px 0 white,0 1px 0 white,-1px 1px 0 white;white-space:nowrap;transform-origin:0;pointer-events:none;z-index:9999}.leaflet-measure-path-measurement>div{position:relative;margin-top:-50%;left:-50%}.leaflet-control-scale-line{border:1px solid #999;border-top:none;padding:0;text-align:center;white-space:nowrap;overflow:hidden;color:#fff;height:26px;line-height:26px;text-shadow:0 0 2px #fff}.leaflet-control-container>div{display:flex;align-items:flex-end}.leaflet-text-label{position:absolute;transform:translate(calc(-50% + 4px),-6px);padding:2px 4px;white-space:nowrap;cursor:default}")); document.head.appendChild(elementStyle);} catch(e) {console.error('vite-plugin-css-injected-by-js', e);} })();var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { Color, CoordsUtil, Util, DomUtil, ArrayUtil, StringUtil } from "gis-common";
4
+ import { Color, CoordsUtil, Util, DomUtil, ObjectUtil, MathUtil, GeoUtil, ExceptionUtil, ArrayUtil, StringUtil } from "gis-common";
5
5
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
6
6
  function getDefaultExportFromCjs(x) {
7
7
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
@@ -19350,7 +19350,7 @@ function parse(code) {
19350
19350
  return code;
19351
19351
  }
19352
19352
  }
19353
- function extend$1(destination, source) {
19353
+ function extend(destination, source) {
19354
19354
  destination = destination || {};
19355
19355
  var value, property;
19356
19356
  if (!source) {
@@ -21325,8 +21325,8 @@ function Projection(srsCode, callback) {
21325
21325
  ecc.ep2,
21326
21326
  nadgrids
21327
21327
  );
21328
- extend$1(this, json);
21329
- extend$1(this, ourProj);
21328
+ extend(this, json);
21329
+ extend(this, ourProj);
21330
21330
  this.a = sphere_.a;
21331
21331
  this.b = sphere_.b;
21332
21332
  this.rf = sphere_.rf;
@@ -26560,582 +26560,634 @@ const CanvasMarker = leafletSrcExports.Layer.extend({
26560
26560
  }
26561
26561
  }
26562
26562
  });
26563
- function quickselect(arr, k, left, right, compare) {
26564
- quickselectStep(arr, k, left || 0, right || arr.length - 1, compare || defaultCompare);
26565
- }
26566
- function quickselectStep(arr, k, left, right, compare) {
26567
- while (right > left) {
26568
- if (right - left > 600) {
26569
- var n = right - left + 1;
26570
- var m = k - left + 1;
26571
- var z = Math.log(n);
26572
- var s = 0.5 * Math.exp(2 * z / 3);
26573
- var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
26574
- var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
26575
- var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
26576
- quickselectStep(arr, k, newLeft, newRight, compare);
26577
- }
26578
- var t = arr[k];
26579
- var i = left;
26580
- var j = right;
26581
- swap(arr, left, k);
26582
- if (compare(arr[right], t) > 0) swap(arr, left, right);
26583
- while (i < j) {
26584
- swap(arr, i, j);
26585
- i++;
26586
- j--;
26587
- while (compare(arr[i], t) < 0) i++;
26588
- while (compare(arr[j], t) > 0) j--;
26589
- }
26590
- if (compare(arr[left], t) === 0) swap(arr, left, j);
26591
- else {
26592
- j++;
26593
- swap(arr, j, right);
26594
- }
26595
- if (j <= k) left = j + 1;
26596
- if (k <= j) right = j - 1;
26597
- }
26598
- }
26599
- function swap(arr, i, j) {
26600
- var tmp = arr[i];
26601
- arr[i] = arr[j];
26602
- arr[j] = tmp;
26603
- }
26604
- function defaultCompare(a, b) {
26605
- return a < b ? -1 : a > b ? 1 : 0;
26606
- }
26607
- class RBush {
26608
- constructor(maxEntries = 9) {
26609
- this._maxEntries = Math.max(4, maxEntries);
26610
- this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4));
26611
- this.clear();
26612
- }
26613
- all() {
26614
- return this._all(this.data, []);
26615
- }
26616
- search(bbox) {
26617
- let node = this.data;
26618
- const result = [];
26619
- if (!intersects(bbox, node)) return result;
26620
- const toBBox = this.toBBox;
26621
- const nodesToSearch = [];
26622
- while (node) {
26623
- for (let i = 0; i < node.children.length; i++) {
26624
- const child = node.children[i];
26625
- const childBBox = node.leaf ? toBBox(child) : child;
26626
- if (intersects(bbox, childBBox)) {
26627
- if (node.leaf) result.push(child);
26628
- else if (contains(bbox, childBBox)) this._all(child, result);
26629
- else nodesToSearch.push(child);
26630
- }
26631
- }
26632
- node = nodesToSearch.pop();
26563
+ const Sector = leafletSrcExports.Circle.extend({
26564
+ options: {},
26565
+ initialize: function(latlng, options, legacyOptions) {
26566
+ if (options) {
26567
+ this._startAngle = options.startAngle - 90;
26568
+ this._endAngle = options.endAngle - 90;
26569
+ this.angle = this._endAngle - this._startAngle;
26570
+ this.type = options.type;
26571
+ L.Circle.prototype.initialize.call(this, latlng, options, legacyOptions);
26572
+ }
26573
+ },
26574
+ _updatePath() {
26575
+ switch (this.type) {
26576
+ case CircleMaterialType.Scan:
26577
+ this._renderer._updateSector1(this);
26578
+ break;
26579
+ case CircleMaterialType.Wave:
26580
+ case CircleMaterialType.Breath:
26581
+ this._renderer._updateCircle(this);
26582
+ break;
26583
+ default:
26584
+ this._renderer._updateSector(this);
26585
+ break;
26633
26586
  }
26634
- return result;
26587
+ },
26588
+ setStyle: function(options) {
26589
+ this._startAngle = options.startAngle - 90;
26590
+ this._endAngle = options.endAngle - 90;
26591
+ L.Circle.prototype.setStyle.call(this, options);
26635
26592
  }
26636
- collides(bbox) {
26637
- let node = this.data;
26638
- if (!intersects(bbox, node)) return false;
26639
- const nodesToSearch = [];
26640
- while (node) {
26641
- for (let i = 0; i < node.children.length; i++) {
26642
- const child = node.children[i];
26643
- const childBBox = node.leaf ? this.toBBox(child) : child;
26644
- if (intersects(bbox, childBBox)) {
26645
- if (node.leaf || contains(bbox, childBBox)) return true;
26646
- nodesToSearch.push(child);
26593
+ });
26594
+ const LabelTextCollision = L.Canvas.extend({
26595
+ options: {
26596
+ /**
26597
+ * Collision detection
26598
+ */
26599
+ collisionFlg: true
26600
+ },
26601
+ initialize(options) {
26602
+ options = L.Util.setOptions(this, options);
26603
+ L.Util.stamp(this);
26604
+ this._layers = this._layers || {};
26605
+ },
26606
+ _handleMouseHover(e, point) {
26607
+ let id, layer;
26608
+ for (id in this._drawnLayers) {
26609
+ layer = this._drawnLayers[id];
26610
+ if (layer.options.interactive && layer._containsPoint(point)) {
26611
+ L.DomUtil.addClass(this._containerText, "leaflet-interactive");
26612
+ this._fireEvent([layer], e, "mouseover");
26613
+ this._hoveredLayer = layer;
26614
+ }
26615
+ }
26616
+ if (this._hoveredLayer) {
26617
+ this._fireEvent([this._hoveredLayer], e);
26618
+ }
26619
+ },
26620
+ _handleMouseOut(e, point) {
26621
+ const layer = this._hoveredLayer;
26622
+ if (layer && (e.type === "mouseout" || !layer._containsPoint(point))) {
26623
+ L.DomUtil.removeClass(this._containerText, "leaflet-interactive");
26624
+ this._fireEvent([layer], e, "mouseout");
26625
+ this._hoveredLayer = null;
26626
+ }
26627
+ },
26628
+ _updateTransform(center, zoom) {
26629
+ L.Canvas.prototype._updateTransform.call(this, center, zoom);
26630
+ const scale = this._map.getZoomScale(zoom, this._zoom);
26631
+ const position = L.DomUtil.getPosition(this._container);
26632
+ const viewHalf = this._map.getSize().multiplyBy(0.5 + this.options.padding);
26633
+ const currentCenterPoint = this._map.project(this._center, zoom);
26634
+ const destCenterPoint = this._map.project(center, zoom);
26635
+ const centerOffset = destCenterPoint.subtract(currentCenterPoint);
26636
+ const topLeftOffset = viewHalf.multiplyBy(-scale).add(position).add(viewHalf).subtract(centerOffset);
26637
+ if (L.Browser.any3d) {
26638
+ L.DomUtil.setTransform(this._containerText, topLeftOffset, scale);
26639
+ } else {
26640
+ L.DomUtil.setPosition(this._containerText, topLeftOffset);
26641
+ }
26642
+ },
26643
+ _initContainer(options) {
26644
+ L.Canvas.prototype._initContainer.call(this);
26645
+ this._containerText = document.createElement("canvas");
26646
+ L.DomEvent.on(this._containerText, "mousemove", L.Util.throttle(this._onMouseMove, 32, this), this).on(this._containerText, "dblclick mousedown mouseup contextmenu", this._onClick, this).on(this._containerText, "mouseout", this._handleMouseOut, this);
26647
+ this._ctxLabel = this._containerText.getContext("2d");
26648
+ L.DomUtil.addClass(this._containerText, "leaflet-zoom-animated2");
26649
+ this.getPane().appendChild(this._containerText);
26650
+ },
26651
+ _update() {
26652
+ this._textList = [];
26653
+ L.Renderer.prototype._update.call(this);
26654
+ const b = this._bounds;
26655
+ const container = this._containerText;
26656
+ const size = b.getSize();
26657
+ const m = L.Browser.retina ? 2 : 1;
26658
+ L.DomUtil.setPosition(container, b.min);
26659
+ container.width = m * size.x;
26660
+ container.height = m * size.y;
26661
+ container.style.width = size.x + "px";
26662
+ container.style.height = size.y + "px";
26663
+ container.style.zIndex = "4";
26664
+ this._container.style.zIndex = "3";
26665
+ if (L.Browser.retina) {
26666
+ this._ctxLabel.scale(2, 2);
26667
+ }
26668
+ this._ctxLabel.translate(-b.min.x, -b.min.y);
26669
+ L.Canvas.prototype._update.call(this);
26670
+ },
26671
+ _updatePoly(layer, closed) {
26672
+ L.Canvas.prototype._updatePoly.call(this, layer, closed);
26673
+ this._text(this._ctxLabel, layer);
26674
+ },
26675
+ _updateCircle(layer) {
26676
+ if (layer.options.gradient) {
26677
+ const ctx = this._ctx;
26678
+ const p = layer._point;
26679
+ const r = Math.max(Math.round(layer._radius), 1);
26680
+ const s = (Math.max(Math.round(layer._radiusY), 1) || r) / r;
26681
+ const gradient = ctx.createRadialGradient(p.x, p.y / s, 0, p.x, p.y / s, r);
26682
+ gradient.addColorStop(0.8, "rgba(0, 255, 255, 0)");
26683
+ gradient.addColorStop(1, layer.fillColor.toString());
26684
+ layer.options.fillColor = gradient;
26685
+ }
26686
+ L.Canvas.prototype._updateCircle.call(this, layer);
26687
+ this._text(this._ctxLabel, layer);
26688
+ },
26689
+ _updateSector1(layer) {
26690
+ const speed = parseFloat(layer.options.scaleSpeed);
26691
+ const degLen = parseFloat(layer.options.scaleAngle);
26692
+ layer.options._currentAngle += speed;
26693
+ if (layer._map) {
26694
+ var p = layer._map.latLngToLayerPoint(layer._latlng);
26695
+ } else {
26696
+ var p = layer._point;
26697
+ }
26698
+ const ctx = this._ctx;
26699
+ const r = Math.max(Math.round(layer._radius), 1);
26700
+ const s = (Math.max(Math.round(layer._radiusY), 1) || r) / r;
26701
+ const Point2 = (r2, deg) => ({
26702
+ x: p.x + r2 * Math.cos(Math.PI / 180 * deg),
26703
+ y: p.y + r2 * Math.sin(Math.PI / 180 * deg)
26704
+ });
26705
+ for (let i = 0, l = degLen; i < l; i++) {
26706
+ let deg1, deg2;
26707
+ if (layer.angle === 360) {
26708
+ deg1 = layer.options._currentAngle - i;
26709
+ deg2 = layer.options._currentAngle - i + 1;
26710
+ } else {
26711
+ if (layer.options._currentAngle > layer.angle) {
26712
+ deg1 = layer.options._currentAngle - i - 1 - layer.angle;
26713
+ deg2 = layer.options._currentAngle - i - layer.angle;
26714
+ } else {
26715
+ deg1 = -layer.options._currentAngle + i + 1 + layer.angle;
26716
+ deg2 = -layer.options._currentAngle + i + layer.angle;
26647
26717
  }
26648
26718
  }
26649
- node = nodesToSearch.pop();
26719
+ const point1 = Point2(r, deg1 + layer._startAngle);
26720
+ const point2 = Point2(r, deg2 + layer._startAngle);
26721
+ const opacity = 0.7 - i / degLen;
26722
+ ctx.beginPath();
26723
+ ctx.fillStyle = layer.fillColor.setAlpha(opacity).toString();
26724
+ ctx.moveTo(p.x, p.y / s);
26725
+ ctx.lineTo(point1.x, point1.y);
26726
+ ctx.lineTo(point2.x, point2.y);
26727
+ ctx.fill();
26650
26728
  }
26651
- return false;
26652
- }
26653
- load(data) {
26654
- if (!(data && data.length)) return this;
26655
- if (data.length < this._minEntries) {
26656
- for (let i = 0; i < data.length; i++) {
26657
- this.insert(data[i]);
26658
- }
26659
- return this;
26729
+ this._text(this._ctxLabel, layer);
26730
+ },
26731
+ _updateSector2(layer) {
26732
+ if (!this._drawing || layer._empty()) {
26733
+ return;
26660
26734
  }
26661
- let node = this._build(data.slice(), 0, data.length - 1, 0);
26662
- if (!this.data.children.length) {
26663
- this.data = node;
26664
- } else if (this.data.height === node.height) {
26665
- this._splitRoot(this.data, node);
26735
+ if (layer._map) {
26736
+ var p = layer._map.latLngToLayerPoint(layer._latlng);
26666
26737
  } else {
26667
- if (this.data.height < node.height) {
26668
- const tmpNode = this.data;
26669
- this.data = node;
26670
- node = tmpNode;
26671
- }
26672
- this._insert(node, this.data.height - node.height - 1, true);
26738
+ var p = layer._point;
26739
+ }
26740
+ const ctx = this._ctx;
26741
+ const sa = layer._startAngle / 180 * Math.PI;
26742
+ const ea = layer._endAngle / 180 * Math.PI;
26743
+ const r = Math.max(Math.round(layer._radius), 1);
26744
+ const s = (Math.max(Math.round(layer._radiusY), 1) || r) / r;
26745
+ if (s !== 1) {
26746
+ ctx.save();
26747
+ ctx.scale(1, s);
26748
+ }
26749
+ ctx.beginPath();
26750
+ ctx.moveTo(p.x, p.y / s);
26751
+ ctx.arc(p.x, p.y / s, r, sa, ea, false);
26752
+ ctx.closePath();
26753
+ if (s !== 1) {
26754
+ ctx.restore();
26755
+ }
26756
+ const gradient = ctx.createRadialGradient(p.x, p.y / s, 0, p.x, p.y / s, r);
26757
+ gradient.addColorStop(0, "rgb(0,0,255)");
26758
+ gradient.addColorStop(1, "rgb(255,255,0)");
26759
+ layer.options.fillColor = gradient;
26760
+ this._fillStroke(ctx, layer);
26761
+ this._text(this._ctxLabel, layer);
26762
+ },
26763
+ _updateSector(layer) {
26764
+ if (!this._drawing || layer._empty()) {
26765
+ return;
26673
26766
  }
26674
- return this;
26675
- }
26676
- insert(item) {
26677
- if (item) this._insert(item, this.data.height - 1);
26678
- return this;
26679
- }
26680
- clear() {
26681
- this.data = createNode([]);
26682
- return this;
26683
- }
26684
- remove(item, equalsFn) {
26685
- if (!item) return this;
26686
- let node = this.data;
26687
- const bbox = this.toBBox(item);
26688
- const path = [];
26689
- const indexes = [];
26690
- let i, parent, goingUp;
26691
- while (node || path.length) {
26692
- if (!node) {
26693
- node = path.pop();
26694
- parent = path[path.length - 1];
26695
- i = indexes.pop();
26696
- goingUp = true;
26697
- }
26698
- if (node.leaf) {
26699
- const index = findItem(item, node.children, equalsFn);
26700
- if (index !== -1) {
26701
- node.children.splice(index, 1);
26702
- path.push(node);
26703
- this._condense(path);
26704
- return this;
26767
+ if (layer._map) {
26768
+ var p = layer._map.latLngToLayerPoint(layer._latlng);
26769
+ } else {
26770
+ var p = layer._point;
26771
+ }
26772
+ const ctx = this._ctx;
26773
+ const sa = layer._startAngle / 180 * Math.PI;
26774
+ const ea = layer._endAngle / 180 * Math.PI;
26775
+ const r = Math.max(Math.round(layer._radius), 1);
26776
+ const s = (Math.max(Math.round(layer._radiusY), 1) || r) / r;
26777
+ if (s !== 1) {
26778
+ ctx.save();
26779
+ ctx.scale(1, s);
26780
+ }
26781
+ ctx.beginPath();
26782
+ ctx.moveTo(p.x, p.y / s);
26783
+ ctx.arc(p.x, p.y / s, r, sa, ea, false);
26784
+ ctx.closePath();
26785
+ if (s !== 1) {
26786
+ ctx.restore();
26787
+ }
26788
+ this._fillStroke(ctx, layer);
26789
+ this._text(this._ctxLabel, layer);
26790
+ },
26791
+ _updateRadarGrid(layer) {
26792
+ if (!this._drawing || layer._empty()) {
26793
+ return;
26794
+ }
26795
+ if (layer._map) {
26796
+ var p = layer._map.latLngToLayerPoint(layer._latlng);
26797
+ } else {
26798
+ var p = layer._point;
26799
+ }
26800
+ const ctx = this._ctx;
26801
+ const sa = layer._startAngle / 180 * Math.PI;
26802
+ const ea = layer._endAngle / 180 * Math.PI;
26803
+ const r = Math.max(Math.round(layer._radius), 1);
26804
+ const s = (Math.max(Math.round(layer._radiusY), 1) || r) / r;
26805
+ if (s !== 1) {
26806
+ ctx.save();
26807
+ ctx.scale(1, s);
26808
+ }
26809
+ ctx.beginPath();
26810
+ ctx.moveTo(p.x, p.y / s);
26811
+ ctx.arc(p.x, p.y / s, r, sa, ea, false);
26812
+ ctx.closePath();
26813
+ if (s !== 1) {
26814
+ ctx.restore();
26815
+ }
26816
+ layer.options.fillColor = layer.options.color;
26817
+ this._fillStroke(ctx, layer);
26818
+ this._text(this._ctxLabel, layer);
26819
+ },
26820
+ _updateRing(layer) {
26821
+ var ctx = this._ctx;
26822
+ if (!this._drawing || layer._empty()) {
26823
+ return;
26824
+ }
26825
+ const p = layer._point;
26826
+ var ctx = this._ctx;
26827
+ const mr = Math.max(Math.round(layer._radiuMaxs), 1);
26828
+ const r = Math.max(Math.round(layer._radius), 1);
26829
+ const s = (Math.max(Math.round(layer._radiusY), 1) || r) / r;
26830
+ if (s !== 1) {
26831
+ ctx.save();
26832
+ ctx.scale(1, s);
26833
+ }
26834
+ ctx.beginPath();
26835
+ ctx.arc(p.x, p.y / s, mr, 0, Math.PI * 2, false);
26836
+ ctx.moveTo(p.x + r / s, p.y / s);
26837
+ ctx.arc(p.x, p.y / s, r, 0, Math.PI * 2, true);
26838
+ ctx.closePath();
26839
+ if (s !== 1) {
26840
+ ctx.restore();
26841
+ }
26842
+ this._fillStroke(ctx, layer);
26843
+ this._text(this._ctxLabel, layer);
26844
+ },
26845
+ _initLine(layer) {
26846
+ },
26847
+ _text(ctx, layer) {
26848
+ if (layer.options.text != void 0 && this._map.getZoom() > 14) {
26849
+ ctx.globalAlpha = 1;
26850
+ let p = layer._point;
26851
+ if (p == void 0) {
26852
+ if (layer._parts.length == 0 || layer._parts[0].length == 0) {
26853
+ return;
26854
+ }
26855
+ p = this._getCenter(layer._parts[0]);
26856
+ }
26857
+ const offsetX = 7;
26858
+ const offsetY = 5;
26859
+ ctx.lineWidth = 4;
26860
+ ctx.font = "12px 'Meiryo'";
26861
+ const textWidth = ctx.measureText(layer.options.text).width + p.x;
26862
+ const textHeight = p.y + offsetY + 20;
26863
+ const bounds = L.bounds(L.point(p.x + offsetX, p.y + offsetY), L.point(textWidth, textHeight));
26864
+ if (this.options.collisionFlg) {
26865
+ for (const index in this._textList) {
26866
+ const pointBounds = this._textList[index];
26867
+ if (pointBounds.intersects(bounds)) {
26868
+ return;
26869
+ }
26705
26870
  }
26706
26871
  }
26707
- if (!goingUp && !node.leaf && contains(node, bbox)) {
26708
- path.push(node);
26709
- indexes.push(i);
26710
- i = 0;
26711
- parent = node;
26712
- node = node.children[0];
26713
- } else if (parent) {
26714
- i++;
26715
- node = parent.children[i];
26716
- goingUp = false;
26717
- } else node = null;
26872
+ this._textList.push(bounds);
26873
+ this._drawBubble(ctx, p.x, p.y, ctx.measureText(layer.options.text).width + 10, 20);
26874
+ if (layer.options.textColor == void 0) {
26875
+ ctx.fillStyle = "blue";
26876
+ } else {
26877
+ ctx.fillStyle = layer.options.textColor;
26878
+ }
26879
+ ctx.fillText(layer.options.text, p.x + offsetX, p.y + offsetY);
26880
+ }
26881
+ },
26882
+ _drawBubble(ctx, x, y, w, h) {
26883
+ ctx.fillStyle = "rgba(212,212,212,.8)";
26884
+ ctx.beginPath();
26885
+ ctx.moveTo(x, y);
26886
+ ctx.lineTo(x + 3, y + 3);
26887
+ ctx.lineTo(x + 3, y + h / 2);
26888
+ ctx.lineTo(x + w, y + h / 2);
26889
+ ctx.lineTo(x + w, y - h / 2);
26890
+ ctx.lineTo(x + 3, y - h / 2);
26891
+ ctx.lineTo(x + 3, y);
26892
+ ctx.fill();
26893
+ },
26894
+ _updateDashArray(layer) {
26895
+ if (typeof layer.options.dashArray === "string") {
26896
+ const parts = layer.options.dashArray.split(/[, ]+/);
26897
+ const dashArray = [];
26898
+ let dashValue;
26899
+ let i;
26900
+ for (i = 0; i < parts.length; i++) {
26901
+ dashValue = Number(parts[i]);
26902
+ if (isNaN(dashValue)) {
26903
+ return;
26904
+ }
26905
+ dashArray.push(dashValue);
26906
+ }
26907
+ layer.options._dashArray = dashArray;
26908
+ layer.options._dashOffset = layer.options.dashOffset;
26909
+ } else {
26910
+ layer.options._dashArray = layer.options.dashArray;
26911
+ layer.options._dashOffset = layer.options.dashOffset || 0;
26718
26912
  }
26719
- return this;
26720
- }
26721
- toBBox(item) {
26722
- return item;
26723
- }
26724
- compareMinX(a, b) {
26725
- return a.minX - b.minX;
26726
- }
26727
- compareMinY(a, b) {
26728
- return a.minY - b.minY;
26729
- }
26730
- toJSON() {
26731
- return this.data;
26732
- }
26733
- fromJSON(data) {
26734
- this.data = data;
26735
- return this;
26736
- }
26737
- _all(node, result) {
26738
- const nodesToSearch = [];
26739
- while (node) {
26740
- if (node.leaf) result.push(...node.children);
26741
- else nodesToSearch.push(...node.children);
26742
- node = nodesToSearch.pop();
26913
+ },
26914
+ _fillStroke(ctx, layer) {
26915
+ const options = layer.options;
26916
+ if (options.fill) {
26917
+ ctx.globalAlpha = options.fillOpacity;
26918
+ ctx.fillStyle = options.fillColor || options.color;
26919
+ ctx.fill(options.fillRule || "evenodd");
26743
26920
  }
26744
- return result;
26745
- }
26746
- _build(items, left, right, height) {
26747
- const N = right - left + 1;
26748
- let M2 = this._maxEntries;
26749
- let node;
26750
- if (N <= M2) {
26751
- node = createNode(items.slice(left, right + 1));
26752
- calcBBox(node, this.toBBox);
26753
- return node;
26754
- }
26755
- if (!height) {
26756
- height = Math.ceil(Math.log(N) / Math.log(M2));
26757
- M2 = Math.ceil(N / Math.pow(M2, height - 1));
26758
- }
26759
- node = createNode([]);
26760
- node.leaf = false;
26761
- node.height = height;
26762
- const N2 = Math.ceil(N / M2);
26763
- const N1 = N2 * Math.ceil(Math.sqrt(M2));
26764
- multiSelect(items, left, right, N1, this.compareMinX);
26765
- for (let i = left; i <= right; i += N1) {
26766
- const right2 = Math.min(i + N1 - 1, right);
26767
- multiSelect(items, i, right2, N2, this.compareMinY);
26768
- for (let j = i; j <= right2; j += N2) {
26769
- const right3 = Math.min(j + N2 - 1, right2);
26770
- node.children.push(this._build(items, j, right3, height - 1));
26771
- }
26772
- }
26773
- calcBBox(node, this.toBBox);
26774
- return node;
26775
- }
26776
- _chooseSubtree(bbox, node, level, path) {
26777
- while (true) {
26778
- path.push(node);
26779
- if (node.leaf || path.length - 1 === level) break;
26780
- let minArea = Infinity;
26781
- let minEnlargement = Infinity;
26782
- let targetNode;
26783
- for (let i = 0; i < node.children.length; i++) {
26784
- const child = node.children[i];
26785
- const area = bboxArea(child);
26786
- const enlargement = enlargedArea(bbox, child) - area;
26787
- if (enlargement < minEnlargement) {
26788
- minEnlargement = enlargement;
26789
- minArea = area < minArea ? area : minArea;
26790
- targetNode = child;
26791
- } else if (enlargement === minEnlargement) {
26792
- if (area < minArea) {
26793
- minArea = area;
26794
- targetNode = child;
26795
- }
26796
- }
26797
- }
26798
- node = targetNode || node.children[0];
26799
- }
26800
- return node;
26801
- }
26802
- _insert(item, level, isNode) {
26803
- const bbox = isNode ? item : this.toBBox(item);
26804
- const insertPath = [];
26805
- const node = this._chooseSubtree(bbox, this.data, level, insertPath);
26806
- node.children.push(item);
26807
- extend(node, bbox);
26808
- while (level >= 0) {
26809
- if (insertPath[level].children.length > this._maxEntries) {
26810
- this._split(insertPath, level);
26811
- level--;
26812
- } else break;
26921
+ if (options.stroke && options.weight !== 0) {
26922
+ if (ctx.setLineDash) {
26923
+ ctx.setLineDash(layer.options && layer.options._dashArray || []);
26924
+ ctx.lineDashOffset = layer.options && layer.options._dashOffset || 0;
26925
+ }
26926
+ ctx.globalAlpha = options.opacity;
26927
+ ctx.lineWidth = options.weight;
26928
+ ctx.strokeStyle = options.color;
26929
+ ctx.lineCap = options.lineCap;
26930
+ ctx.lineJoin = options.lineJoin;
26931
+ ctx.stroke();
26813
26932
  }
26814
- this._adjustParentBBoxes(bbox, insertPath, level);
26815
- }
26816
- // split overflowed node into two
26817
- _split(insertPath, level) {
26818
- const node = insertPath[level];
26819
- const M2 = node.children.length;
26820
- const m = this._minEntries;
26821
- this._chooseSplitAxis(node, m, M2);
26822
- const splitIndex = this._chooseSplitIndex(node, m, M2);
26823
- const newNode = createNode(node.children.splice(splitIndex, node.children.length - splitIndex));
26824
- newNode.height = node.height;
26825
- newNode.leaf = node.leaf;
26826
- calcBBox(node, this.toBBox);
26827
- calcBBox(newNode, this.toBBox);
26828
- if (level) insertPath[level - 1].children.push(newNode);
26829
- else this._splitRoot(node, newNode);
26830
- }
26831
- _splitRoot(node, newNode) {
26832
- this.data = createNode([node, newNode]);
26833
- this.data.height = node.height + 1;
26834
- this.data.leaf = false;
26835
- calcBBox(this.data, this.toBBox);
26836
- }
26837
- _chooseSplitIndex(node, m, M2) {
26838
- let index;
26839
- let minOverlap = Infinity;
26840
- let minArea = Infinity;
26841
- for (let i = m; i <= M2 - m; i++) {
26842
- const bbox1 = distBBox(node, 0, i, this.toBBox);
26843
- const bbox2 = distBBox(node, i, M2, this.toBBox);
26844
- const overlap = intersectionArea(bbox1, bbox2);
26845
- const area = bboxArea(bbox1) + bboxArea(bbox2);
26846
- if (overlap < minOverlap) {
26847
- minOverlap = overlap;
26848
- index = i;
26849
- minArea = area < minArea ? area : minArea;
26850
- } else if (overlap === minOverlap) {
26851
- if (area < minArea) {
26852
- minArea = area;
26853
- index = i;
26854
- }
26855
- }
26856
- }
26857
- return index || M2 - m;
26858
- }
26859
- // sorts node children by the best axis for split
26860
- _chooseSplitAxis(node, m, M2) {
26861
- const compareMinX = node.leaf ? this.compareMinX : compareNodeMinX;
26862
- const compareMinY = node.leaf ? this.compareMinY : compareNodeMinY;
26863
- const xMargin = this._allDistMargin(node, m, M2, compareMinX);
26864
- const yMargin = this._allDistMargin(node, m, M2, compareMinY);
26865
- if (xMargin < yMargin) node.children.sort(compareMinX);
26866
- }
26867
- // total margin of all possible split distributions where each node is at least m full
26868
- _allDistMargin(node, m, M2, compare) {
26869
- node.children.sort(compare);
26870
- const toBBox = this.toBBox;
26871
- const leftBBox = distBBox(node, 0, m, toBBox);
26872
- const rightBBox = distBBox(node, M2 - m, M2, toBBox);
26873
- let margin = bboxMargin(leftBBox) + bboxMargin(rightBBox);
26874
- for (let i = m; i < M2 - m; i++) {
26875
- const child = node.children[i];
26876
- extend(leftBBox, node.leaf ? toBBox(child) : child);
26877
- margin += bboxMargin(leftBBox);
26878
- }
26879
- for (let i = M2 - m - 1; i >= m; i--) {
26880
- const child = node.children[i];
26881
- extend(rightBBox, node.leaf ? toBBox(child) : child);
26882
- margin += bboxMargin(rightBBox);
26883
- }
26884
- return margin;
26885
- }
26886
- _adjustParentBBoxes(bbox, path, level) {
26887
- for (let i = level; i >= 0; i--) {
26888
- extend(path[i], bbox);
26889
- }
26890
- }
26891
- _condense(path) {
26892
- for (let i = path.length - 1, siblings; i >= 0; i--) {
26893
- if (path[i].children.length === 0) {
26894
- if (i > 0) {
26895
- siblings = path[i - 1].children;
26896
- siblings.splice(siblings.indexOf(path[i]), 1);
26897
- } else this.clear();
26898
- } else calcBBox(path[i], this.toBBox);
26933
+ },
26934
+ _getCenter(points) {
26935
+ let i;
26936
+ let halfDist;
26937
+ let segDist;
26938
+ let dist;
26939
+ let p1;
26940
+ let p2;
26941
+ let ratio;
26942
+ const len = points.length;
26943
+ if (!len) {
26944
+ return null;
26899
26945
  }
26900
- }
26901
- }
26902
- function findItem(item, items, equalsFn) {
26903
- if (!equalsFn) return items.indexOf(item);
26904
- for (let i = 0; i < items.length; i++) {
26905
- if (equalsFn(item, items[i])) return i;
26906
- }
26907
- return -1;
26908
- }
26909
- function calcBBox(node, toBBox) {
26910
- distBBox(node, 0, node.children.length, toBBox, node);
26911
- }
26912
- function distBBox(node, k, p, toBBox, destNode) {
26913
- if (!destNode) destNode = createNode(null);
26914
- destNode.minX = Infinity;
26915
- destNode.minY = Infinity;
26916
- destNode.maxX = -Infinity;
26917
- destNode.maxY = -Infinity;
26918
- for (let i = k; i < p; i++) {
26919
- const child = node.children[i];
26920
- extend(destNode, node.leaf ? toBBox(child) : child);
26921
- }
26922
- return destNode;
26923
- }
26924
- function extend(a, b) {
26925
- a.minX = Math.min(a.minX, b.minX);
26926
- a.minY = Math.min(a.minY, b.minY);
26927
- a.maxX = Math.max(a.maxX, b.maxX);
26928
- a.maxY = Math.max(a.maxY, b.maxY);
26929
- return a;
26930
- }
26931
- function compareNodeMinX(a, b) {
26932
- return a.minX - b.minX;
26933
- }
26934
- function compareNodeMinY(a, b) {
26935
- return a.minY - b.minY;
26936
- }
26937
- function bboxArea(a) {
26938
- return (a.maxX - a.minX) * (a.maxY - a.minY);
26939
- }
26940
- function bboxMargin(a) {
26941
- return a.maxX - a.minX + (a.maxY - a.minY);
26942
- }
26943
- function enlargedArea(a, b) {
26944
- return (Math.max(b.maxX, a.maxX) - Math.min(b.minX, a.minX)) * (Math.max(b.maxY, a.maxY) - Math.min(b.minY, a.minY));
26945
- }
26946
- function intersectionArea(a, b) {
26947
- const minX = Math.max(a.minX, b.minX);
26948
- const minY = Math.max(a.minY, b.minY);
26949
- const maxX = Math.min(a.maxX, b.maxX);
26950
- const maxY = Math.min(a.maxY, b.maxY);
26951
- return Math.max(0, maxX - minX) * Math.max(0, maxY - minY);
26952
- }
26953
- function contains(a, b) {
26954
- return a.minX <= b.minX && a.minY <= b.minY && b.maxX <= a.maxX && b.maxY <= a.maxY;
26955
- }
26956
- function intersects(a, b) {
26957
- return b.minX <= a.maxX && b.minY <= a.maxY && b.maxX >= a.minX && b.maxY >= a.minY;
26958
- }
26959
- function createNode(children) {
26960
- return {
26961
- children,
26962
- height: 1,
26963
- leaf: true,
26964
- minX: Infinity,
26965
- minY: Infinity,
26966
- maxX: -Infinity,
26967
- maxY: -Infinity
26968
- };
26969
- }
26970
- function multiSelect(arr, left, right, n, compare) {
26971
- const stack = [left, right];
26972
- while (stack.length) {
26973
- right = stack.pop();
26974
- left = stack.pop();
26975
- if (right - left <= n) continue;
26976
- const mid = left + Math.ceil((right - left) / n / 2) * n;
26977
- quickselect(arr, mid, left, right, compare);
26978
- stack.push(left, mid, mid, right);
26979
- }
26980
- }
26981
- var isMSIE8 = !("getComputedStyle" in window && typeof window.getComputedStyle === "function");
26982
- function extensions(parentClass) {
26983
- return {
26984
- initialize: function(options) {
26985
- parentClass.prototype.initialize.call(this, options);
26986
- this._originalLayers = [];
26987
- this._visibleLayers = [];
26988
- this._staticLayers = [];
26989
- this._rbush = [];
26990
- this._cachedRelativeBoxes = [];
26991
- this._margin = options.margin || 0;
26992
- this._rbush = null;
26993
- },
26994
- addLayer: function(layer) {
26995
- if (!("options" in layer) || !("icon" in layer.options)) {
26996
- this._staticLayers.push(layer);
26997
- parentClass.prototype.addLayer.call(this, layer);
26998
- return;
26999
- }
27000
- this._originalLayers.push(layer);
27001
- if (this._map) {
27002
- this._maybeAddLayerToRBush(layer);
27003
- }
27004
- },
27005
- removeLayer: function(layer) {
27006
- this._rbush.remove(this._cachedRelativeBoxes[layer._leaflet_id]);
27007
- delete this._cachedRelativeBoxes[layer._leaflet_id];
27008
- parentClass.prototype.removeLayer.call(this, layer);
27009
- var i;
27010
- i = this._originalLayers.indexOf(layer);
27011
- if (i !== -1) {
27012
- this._originalLayers.splice(i, 1);
27013
- }
27014
- i = this._visibleLayers.indexOf(layer);
27015
- if (i !== -1) {
27016
- this._visibleLayers.splice(i, 1);
27017
- }
27018
- i = this._staticLayers.indexOf(layer);
27019
- if (i !== -1) {
27020
- this._staticLayers.splice(i, 1);
27021
- }
27022
- },
27023
- clearLayers: function() {
27024
- this._rbush = RBush();
27025
- this._originalLayers = [];
27026
- this._visibleLayers = [];
27027
- this._staticLayers = [];
27028
- this._cachedRelativeBoxes = [];
27029
- parentClass.prototype.clearLayers.call(this);
27030
- },
27031
- onAdd: function(map) {
27032
- this._map = map;
27033
- for (let i = 0, l = this._staticLayers.length; i < l; i++) {
27034
- map.addLayer(this._staticLayers[i]);
27035
- }
27036
- this._onZoomEnd();
27037
- map.on("zoomend", this._onZoomEnd, this);
27038
- },
27039
- onRemove: function(map) {
27040
- for (let i = 0, l = this._staticLayers.length; i < l; i++) {
27041
- map.removeLayer(this._staticLayers[i]);
27042
- }
27043
- map.off("zoomend", this._onZoomEnd, this);
27044
- parentClass.prototype.onRemove.call(this, map);
27045
- },
27046
- _maybeAddLayerToRBush: function(layer) {
27047
- this._map.getZoom();
27048
- var bush = this._rbush;
27049
- var boxes = this._cachedRelativeBoxes[layer._leaflet_id];
27050
- var visible = false;
27051
- if (!boxes) {
27052
- parentClass.prototype.addLayer.call(this, layer);
27053
- var visible = true;
27054
- var box = this._getIconBox(layer._icon);
27055
- boxes = this._getRelativeBoxes(layer._icon.children, box);
27056
- boxes.push(box);
27057
- this._cachedRelativeBoxes[layer._leaflet_id] = boxes;
27058
- }
27059
- boxes = this._positionBoxes(this._map.latLngToLayerPoint(layer.getLatLng()), boxes);
27060
- var collision = false;
27061
- for (var i = 0; i < boxes.length && !collision; i++) {
27062
- collision = bush.search(boxes[i]).length > 0;
27063
- }
27064
- if (!collision) {
27065
- if (!visible) {
27066
- parentClass.prototype.addLayer.call(this, layer);
27067
- }
27068
- this._visibleLayers.push(layer);
27069
- bush.load(boxes);
27070
- } else {
27071
- parentClass.prototype.removeLayer.call(this, layer);
27072
- }
27073
- },
27074
- // Returns a plain array with the relative dimensions of a L.Icon, based
27075
- // on the computed values from iconSize and iconAnchor.
27076
- _getIconBox: function(el) {
27077
- if (isMSIE8) {
27078
- return [0, 0, el.offsetWidth, el.offsetHeight];
27079
- }
27080
- var styles = window.getComputedStyle(el);
27081
- return [
27082
- parseInt(styles.marginLeft),
27083
- parseInt(styles.marginTop),
27084
- parseInt(styles.marginLeft) + parseInt(styles.width),
27085
- parseInt(styles.marginTop) + parseInt(styles.height)
27086
- ];
27087
- },
27088
- // Much like _getIconBox, but works for positioned HTML elements, based on offsetWidth/offsetHeight.
27089
- _getRelativeBoxes: function(els, baseBox) {
27090
- var boxes = [];
27091
- for (var i = 0; i < els.length; i++) {
27092
- var el = els[i];
27093
- var box = [el.offsetLeft, el.offsetTop, el.offsetLeft + el.offsetWidth, el.offsetTop + el.offsetHeight];
27094
- box = this._offsetBoxes(box, baseBox);
27095
- boxes.push(box);
27096
- if (el.children.length) {
27097
- var parentBox = baseBox;
27098
- if (!isMSIE8) {
27099
- var positionStyle = window.getComputedStyle(el).position;
27100
- if (positionStyle === "absolute" || positionStyle === "relative") {
27101
- parentBox = box;
27102
- }
27103
- }
27104
- boxes = boxes.concat(this._getRelativeBoxes(el.children, parentBox));
27105
- }
26946
+ for (i = 0, halfDist = 0; i < len - 1; i++) {
26947
+ halfDist += points[i].distanceTo(points[i + 1]) / 2;
26948
+ }
26949
+ if (halfDist === 0) {
26950
+ return points[0];
26951
+ }
26952
+ for (i = 0, dist = 0; i < len - 1; i++) {
26953
+ p1 = points[i];
26954
+ p2 = points[i + 1];
26955
+ segDist = p1.distanceTo(p2);
26956
+ dist += segDist;
26957
+ if (dist > halfDist) {
26958
+ ratio = (dist - halfDist) / segDist;
26959
+ const resutl = [p2.x - ratio * (p2.x - p1.x), p2.y - ratio * (p2.y - p1.y)];
26960
+ return L.point(resutl[0], resutl[1]);
27106
26961
  }
27107
- return boxes;
26962
+ }
26963
+ }
26964
+ });
26965
+ const CircleMaterialType = {
26966
+ Wave: 0,
26967
+ // 扩散
26968
+ Scan: 1,
26969
+ // 扫描
26970
+ Breath: 2
26971
+ // 呼吸
26972
+ };
26973
+ const RadarCircle = L.LayerGroup.extend({
26974
+ options: {
26975
+ fillColor: "#ff0",
26976
+ color: "#fff",
26977
+ axis: {
26978
+ show: false,
26979
+ color: "#000"
27108
26980
  },
27109
- _offsetBoxes: function(a, b) {
27110
- return [a[0] + b[0], a[1] + b[1], a[2] + b[0], a[3] + b[1]];
26981
+ scale: {
26982
+ show: false,
26983
+ splitNum: 5,
26984
+ lineColor: "#000",
26985
+ labelColor: "#000"
27111
26986
  },
27112
- // Adds the coordinate of the layer (in pixels / map canvas units) to each box coordinate.
27113
- _positionBoxes: function(offset, boxes) {
27114
- var newBoxes = [];
27115
- for (var i = 0; i < boxes.length; i++) {
27116
- newBoxes.push(this._positionBox(offset, boxes[i]));
26987
+ material: {
26988
+ show: false,
26989
+ type: CircleMaterialType.Wave,
26990
+ color: "#0ff",
26991
+ speed: 10,
26992
+ clockwise: true,
26993
+ angle: 60
26994
+ }
26995
+ },
26996
+ initialize(options) {
26997
+ ObjectUtil.deepAssign(this.options, options);
26998
+ const { lng, lat } = this.options.center;
26999
+ if (!GeoUtil.isLnglat(lng, lat)) {
27000
+ ExceptionUtil.throwCoordinateException();
27001
+ }
27002
+ this.latLng = new L.LatLng(lat, lng);
27003
+ this.labelTextCollision = new LabelTextCollision({
27004
+ collisionFlg: true,
27005
+ padding: 0.5
27006
+ });
27007
+ this.axisEntity = [];
27008
+ this.scaleCircleEntity = [];
27009
+ this.labelCircleEntity = [];
27010
+ L.LayerGroup.prototype.initialize.call(this, options);
27011
+ },
27012
+ onAdd(map) {
27013
+ this.initializeCircle();
27014
+ this.initializeScale();
27015
+ this.initializeMaterial();
27016
+ },
27017
+ onRemove() {
27018
+ L.LayerGroup.prototype.removeLayer.call(this, this.materialEntity);
27019
+ L.LayerGroup.prototype.removeLayer.call(this, this.circleEntity);
27020
+ this.stopMotion();
27021
+ },
27022
+ initializeCircle() {
27023
+ var _a;
27024
+ (_a = this.circleEntity) == null ? void 0 : _a.remove();
27025
+ this.axisEntity.forEach((entity) => entity.remove());
27026
+ this.circleEntity = new L.Circle(this.latLng, this.getCircleStyle());
27027
+ L.LayerGroup.prototype.addLayer.call(this, this.circleEntity);
27028
+ if (!this.options.axis.show) return;
27029
+ const bounds = this.circleEntity.getBounds();
27030
+ this.axisEntity[0] = L.polyline(
27031
+ [
27032
+ [bounds._northEast.lat, this.latLng.lng],
27033
+ [bounds._southWest.lat, this.latLng.lng]
27034
+ ],
27035
+ {
27036
+ weight: 1,
27037
+ color: this.options.axis.color
27117
27038
  }
27118
- return newBoxes;
27119
- },
27120
- _positionBox: function(offset, box) {
27121
- return [box[0] + offset.x - this._margin, box[1] + offset.y - this._margin, box[2] + offset.x + this._margin, box[3] + offset.y + this._margin];
27122
- },
27123
- _onZoomEnd: function() {
27124
- for (var i = 0; i < this._visibleLayers.length; i++) {
27125
- parentClass.prototype.removeLayer.call(this, this._visibleLayers[i]);
27039
+ );
27040
+ L.LayerGroup.prototype.addLayer.call(this, this.axisEntity[0]);
27041
+ this.axisEntity[1] = L.polyline(
27042
+ [
27043
+ [this.latLng.lat, bounds._northEast.lng],
27044
+ [this.latLng.lat, bounds._southWest.lng]
27045
+ ],
27046
+ {
27047
+ weight: 1,
27048
+ color: this.options.axis.color
27126
27049
  }
27127
- this._rbush = RBush();
27128
- for (var i = 0; i < this._originalLayers.length; i++) {
27129
- this._maybeAddLayerToRBush(this._originalLayers[i]);
27050
+ );
27051
+ L.LayerGroup.prototype.addLayer.call(this, this.axisEntity[1]);
27052
+ },
27053
+ initializeScale() {
27054
+ this.scaleCircleEntity.forEach((entity) => entity.remove());
27055
+ this.labelCircleEntity.forEach((entity) => entity.remove());
27056
+ if (!this.options.scale.show) return;
27057
+ for (let i = 1, l = this.options.scale.splitNum; i <= l; i++) {
27058
+ const radius = this.options.radius * i / l;
27059
+ if (radius) {
27060
+ const circle = this.scaleCircleEntity[i - 1] = L.circle(this.latLng, radius, {
27061
+ color: this.options.scale.lineColor,
27062
+ weight: 1,
27063
+ fill: false,
27064
+ renderer: L.canvas()
27065
+ });
27066
+ L.LayerGroup.prototype.addLayer.call(this, circle);
27067
+ const bounds = circle.getBounds();
27068
+ const label = this.labelCircleEntity[i - 1] = new L.Text(L.latLng(this.latLng.lat, bounds.getEast()), MathUtil.formatLength(radius), {
27069
+ color: this.options.scale.labelColor,
27070
+ offset: [24, 16]
27071
+ });
27072
+ L.LayerGroup.prototype.addLayer.call(this, label);
27130
27073
  }
27131
27074
  }
27132
- };
27133
- }
27134
- const Collision = {
27135
- LayerGroup: leafletSrcExports.LayerGroup.extend(extensions(leafletSrcExports.LayerGroup)),
27136
- FeatureGroup: leafletSrcExports.FeatureGroup.extend(extensions(leafletSrcExports.FeatureGroup)),
27137
- GeoJSON: leafletSrcExports.GeoJSON.extend(extensions(leafletSrcExports.GeoJSON))
27138
- };
27075
+ },
27076
+ initializeMaterial() {
27077
+ var _a;
27078
+ (_a = this.materialEntity) == null ? void 0 : _a.remove();
27079
+ this.stopMotion();
27080
+ if (!this.options.material.show) return;
27081
+ switch (this.options.material.type) {
27082
+ case CircleMaterialType.Wave:
27083
+ this.materialEntity = new Sector(this.latLng, {
27084
+ ...this.getMaterialStyle(),
27085
+ gradient: true,
27086
+ _currentRadius: 0
27087
+ });
27088
+ this._motionWave();
27089
+ break;
27090
+ case CircleMaterialType.Scan:
27091
+ this.materialEntity = new Sector(this.latLng, {
27092
+ ...this.getMaterialStyle(),
27093
+ _currentAngle: 0,
27094
+ scaleSpeed: this.options.material.speed
27095
+ // 转一圈需要的时间
27096
+ });
27097
+ this._motionScan();
27098
+ break;
27099
+ case CircleMaterialType.Breath:
27100
+ this.counter = this.createCounter(0, 100, this.options.material.speed);
27101
+ this.materialEntity = new Sector(this.latLng, {
27102
+ ...this.getMaterialStyle(),
27103
+ gradient: true,
27104
+ _currentOpacity: 0
27105
+ });
27106
+ this._motionBreath();
27107
+ break;
27108
+ }
27109
+ if (this.materialEntity) {
27110
+ L.LayerGroup.prototype.addLayer.call(this, this.materialEntity);
27111
+ }
27112
+ },
27113
+ getMaterialStyle() {
27114
+ return {
27115
+ fillColor: this.options.material.color,
27116
+ weight: 0,
27117
+ radius: this.options.radius,
27118
+ scaleAngle: this.options.material.angle,
27119
+ renderer: this.labelTextCollision,
27120
+ angle: 360,
27121
+ startAngle: 0,
27122
+ endAngle: 360,
27123
+ type: this.options.material.type
27124
+ };
27125
+ },
27126
+ getCircleStyle() {
27127
+ return {
27128
+ radius: this.options.radius,
27129
+ weight: 1,
27130
+ color: this.options.color,
27131
+ fill: !!this.options.fillColor,
27132
+ fillColor: this.options.fillColor,
27133
+ renderer: L.canvas()
27134
+ };
27135
+ },
27136
+ _motionScan() {
27137
+ this.materialEntity.setStyle(this.getMaterialStyle());
27138
+ this.animation = L.Util.requestAnimFrame(() => {
27139
+ this._motionScan();
27140
+ }, this);
27141
+ },
27142
+ _motionWave() {
27143
+ this.materialEntity.options._currentRadius += this.options.material.speed;
27144
+ if (this.materialEntity.options._currentRadius > this.options.radius) {
27145
+ this.materialEntity.options._currentRadius = 0;
27146
+ }
27147
+ this.materialEntity.setRadius(this.materialEntity.options._currentRadius);
27148
+ this.animation = L.Util.requestAnimFrame(() => {
27149
+ this._motionWave();
27150
+ }, this);
27151
+ },
27152
+ _motionBreath() {
27153
+ const valpha = this.counter.next() / 100;
27154
+ if (valpha === 1) {
27155
+ this.counter.setMode(false);
27156
+ } else if (valpha === 0) {
27157
+ this.counter.setMode(true);
27158
+ }
27159
+ this.materialEntity.setStyle({ fillOpacity: valpha });
27160
+ this.animation = L.Util.requestAnimFrame(() => {
27161
+ this._motionBreath();
27162
+ }, this);
27163
+ },
27164
+ stopMotion() {
27165
+ L.Util.cancelAnimFrame(this.animation);
27166
+ },
27167
+ setStyle(style = {}) {
27168
+ ObjectUtil.deepAssign(this.options, style);
27169
+ this.circleEntity.setStyle(this.getCircleStyle());
27170
+ this.initializeMaterial();
27171
+ },
27172
+ createCounter(s = 5, e = 30, speed = 1) {
27173
+ let c = s;
27174
+ return {
27175
+ mode: true,
27176
+ next() {
27177
+ if (this.mode && c <= e) {
27178
+ c = c + speed;
27179
+ } else if (!this.mode && c >= s) {
27180
+ c = c - speed;
27181
+ }
27182
+ return c;
27183
+ },
27184
+ setMode(v) {
27185
+ this.mode = v;
27186
+ }
27187
+ };
27188
+ }
27189
+ });
27190
+ RadarCircle.CircleMaterialType = CircleMaterialType;
27139
27191
  const WebMercatorTiledLayer = leafletSrcExports.Layer.extend({
27140
27192
  provide: {
27141
27193
  TDT: "tdt",
@@ -27541,17 +27593,17 @@ var heatmap = { exports: {} };
27541
27593
  plugins: {}
27542
27594
  };
27543
27595
  var Store = function StoreClosure() {
27544
- var Store2 = function Store3(config2) {
27596
+ var Store2 = function Store3(config) {
27545
27597
  this._coordinator = {};
27546
27598
  this._data = [];
27547
27599
  this._radi = [];
27548
27600
  this._min = 10;
27549
27601
  this._max = 1;
27550
- this._xField = config2["xField"] || config2.defaultXField;
27551
- this._yField = config2["yField"] || config2.defaultYField;
27552
- this._valueField = config2["valueField"] || config2.defaultValueField;
27553
- if (config2["radius"]) {
27554
- this._cfgRadius = config2["radius"];
27602
+ this._xField = config["xField"] || config.defaultXField;
27603
+ this._yField = config["yField"] || config.defaultYField;
27604
+ this._valueField = config["valueField"] || config.defaultValueField;
27605
+ if (config["radius"]) {
27606
+ this._cfgRadius = config["radius"];
27555
27607
  }
27556
27608
  };
27557
27609
  var defaultRadius = HeatmapConfig.defaultRadius;
@@ -27735,8 +27787,8 @@ var heatmap = { exports: {} };
27735
27787
  return Store2;
27736
27788
  }();
27737
27789
  var Canvas2dRenderer = function Canvas2dRendererClosure() {
27738
- var _getColorPalette = function(config2) {
27739
- var gradientConfig = config2.gradient || config2.defaultGradient;
27790
+ var _getColorPalette = function(config) {
27791
+ var gradientConfig = config.gradient || config.defaultGradient;
27740
27792
  var paletteCanvas = document.createElement("canvas");
27741
27793
  var paletteCtx = paletteCanvas.getContext("2d");
27742
27794
  paletteCanvas.width = 256;
@@ -27799,23 +27851,23 @@ var heatmap = { exports: {} };
27799
27851
  data: renderData
27800
27852
  };
27801
27853
  };
27802
- function Canvas2dRenderer2(config2) {
27803
- var container = config2.container;
27854
+ function Canvas2dRenderer2(config) {
27855
+ var container = config.container;
27804
27856
  var shadowCanvas = this.shadowCanvas = document.createElement("canvas");
27805
- var canvas = this.canvas = config2.canvas || document.createElement("canvas");
27857
+ var canvas = this.canvas = config.canvas || document.createElement("canvas");
27806
27858
  this._renderBoundaries = [1e4, 1e4, 0, 0];
27807
- var computed = getComputedStyle(config2.container) || {};
27859
+ var computed = getComputedStyle(config.container) || {};
27808
27860
  canvas.className = "heatmap-canvas";
27809
- this._width = canvas.width = shadowCanvas.width = config2.width || +computed.width.replace(/px/, "");
27810
- this._height = canvas.height = shadowCanvas.height = config2.height || +computed.height.replace(/px/, "");
27861
+ this._width = canvas.width = shadowCanvas.width = config.width || +computed.width.replace(/px/, "");
27862
+ this._height = canvas.height = shadowCanvas.height = config.height || +computed.height.replace(/px/, "");
27811
27863
  this.shadowCtx = shadowCanvas.getContext("2d");
27812
27864
  this.ctx = canvas.getContext("2d");
27813
27865
  canvas.style.cssText = shadowCanvas.style.cssText = "position:absolute;left:0;top:0;";
27814
27866
  container.style.position = "relative";
27815
27867
  container.appendChild(canvas);
27816
- this._palette = _getColorPalette(config2);
27868
+ this._palette = _getColorPalette(config);
27817
27869
  this._templates = {};
27818
- this._setStyles(config2);
27870
+ this._setStyles(config);
27819
27871
  }
27820
27872
  Canvas2dRenderer2.prototype = {
27821
27873
  renderPartial: function(data) {
@@ -27831,14 +27883,14 @@ var heatmap = { exports: {} };
27831
27883
  this._colorize();
27832
27884
  }
27833
27885
  },
27834
- _updateGradient: function(config2) {
27835
- this._palette = _getColorPalette(config2);
27886
+ _updateGradient: function(config) {
27887
+ this._palette = _getColorPalette(config);
27836
27888
  },
27837
- updateConfig: function(config2) {
27838
- if (config2["gradient"]) {
27839
- this._updateGradient(config2);
27889
+ updateConfig: function(config) {
27890
+ if (config["gradient"]) {
27891
+ this._updateGradient(config);
27840
27892
  }
27841
- this._setStyles(config2);
27893
+ this._setStyles(config);
27842
27894
  },
27843
27895
  setDimensions: function(width, height) {
27844
27896
  this._width = width;
@@ -27850,17 +27902,17 @@ var heatmap = { exports: {} };
27850
27902
  this.shadowCtx.clearRect(0, 0, this._width, this._height);
27851
27903
  this.ctx.clearRect(0, 0, this._width, this._height);
27852
27904
  },
27853
- _setStyles: function(config2) {
27854
- this._blur = config2.blur == 0 ? 0 : config2.blur || config2.defaultBlur;
27855
- if (config2.backgroundColor) {
27856
- this.canvas.style.backgroundColor = config2.backgroundColor;
27905
+ _setStyles: function(config) {
27906
+ this._blur = config.blur == 0 ? 0 : config.blur || config.defaultBlur;
27907
+ if (config.backgroundColor) {
27908
+ this.canvas.style.backgroundColor = config.backgroundColor;
27857
27909
  }
27858
- this._width = this.canvas.width = this.shadowCanvas.width = config2.width || this._width;
27859
- this._height = this.canvas.height = this.shadowCanvas.height = config2.height || this._height;
27860
- this._opacity = (config2.opacity || 0) * 255;
27861
- this._maxOpacity = (config2.maxOpacity || config2.defaultMaxOpacity) * 255;
27862
- this._minOpacity = (config2.minOpacity || config2.defaultMinOpacity) * 255;
27863
- this._useGradientOpacity = !!config2.useGradientOpacity;
27910
+ this._width = this.canvas.width = this.shadowCanvas.width = config.width || this._width;
27911
+ this._height = this.canvas.height = this.shadowCanvas.height = config.height || this._height;
27912
+ this._opacity = (config.opacity || 0) * 255;
27913
+ this._maxOpacity = (config.maxOpacity || config.defaultMaxOpacity) * 255;
27914
+ this._minOpacity = (config.minOpacity || config.defaultMinOpacity) * 255;
27915
+ this._useGradientOpacity = !!config.useGradientOpacity;
27864
27916
  },
27865
27917
  _drawAlpha: function(data) {
27866
27918
  var min = this._min = data.min;
@@ -28036,20 +28088,20 @@ var heatmap = { exports: {} };
28036
28088
  store.setCoordinator(coordinator);
28037
28089
  };
28038
28090
  function Heatmap2() {
28039
- var config2 = this._config = Util2.merge(HeatmapConfig, arguments[0] || {});
28091
+ var config = this._config = Util2.merge(HeatmapConfig, arguments[0] || {});
28040
28092
  this._coordinator = new Coordinator();
28041
- if (config2["plugin"]) {
28042
- var pluginToLoad = config2["plugin"];
28093
+ if (config["plugin"]) {
28094
+ var pluginToLoad = config["plugin"];
28043
28095
  if (!HeatmapConfig.plugins[pluginToLoad]) {
28044
28096
  throw new Error("Plugin '" + pluginToLoad + "' not found. Maybe it was not registered.");
28045
28097
  } else {
28046
28098
  var plugin = HeatmapConfig.plugins[pluginToLoad];
28047
- this._renderer = new plugin.renderer(config2);
28048
- this._store = new plugin.store(config2);
28099
+ this._renderer = new plugin.renderer(config);
28100
+ this._store = new plugin.store(config);
28049
28101
  }
28050
28102
  } else {
28051
- this._renderer = new Renderer(config2);
28052
- this._store = new Store(config2);
28103
+ this._renderer = new Renderer(config);
28104
+ this._store = new Store(config);
28053
28105
  }
28054
28106
  _connect(this);
28055
28107
  }
@@ -28074,8 +28126,8 @@ var heatmap = { exports: {} };
28074
28126
  this._store.setDataMin.apply(this._store, arguments);
28075
28127
  return this;
28076
28128
  },
28077
- configure: function(config2) {
28078
- this._config = Util2.merge(this._config, config2);
28129
+ configure: function(config) {
28130
+ this._config = Util2.merge(this._config, config);
28079
28131
  this._renderer.updateConfig(this._config);
28080
28132
  this._coordinator.emit("renderall", this._store._getInternalData());
28081
28133
  return this;
@@ -28103,8 +28155,8 @@ var heatmap = { exports: {} };
28103
28155
  return Heatmap2;
28104
28156
  }();
28105
28157
  var heatmapFactory = {
28106
- create: function(config2) {
28107
- return new Heatmap(config2);
28158
+ create: function(config) {
28159
+ return new Heatmap(config);
28108
28160
  },
28109
28161
  register: function(pluginKey, plugin) {
28110
28162
  HeatmapConfig.plugins[pluginKey] = plugin;
@@ -28116,8 +28168,8 @@ var heatmap = { exports: {} };
28116
28168
  var heatmapExports = heatmap.exports;
28117
28169
  const h337 = /* @__PURE__ */ getDefaultExportFromCjs(heatmapExports);
28118
28170
  var HeatLayer = L.Layer.extend({
28119
- initialize: function(config2) {
28120
- this.cfg = config2;
28171
+ initialize: function(config) {
28172
+ this.cfg = config;
28121
28173
  this._el = L.DomUtil.create("div", "leaflet-zoom-hide");
28122
28174
  this._data = [];
28123
28175
  this._max = 1;
@@ -30044,7 +30096,7 @@ function injectCss(cls) {
30044
30096
  getLayers() {
30045
30097
  return Object.values(this._layers);
30046
30098
  },
30047
- openWidget(name, options = {}, events = {}) {
30099
+ openWidget(name, options = {}, events = {}, config = {}) {
30048
30100
  this.fire("widget-mount", {
30049
30101
  name,
30050
30102
  options,
@@ -30077,15 +30129,16 @@ function injectCss(cls) {
30077
30129
  _L.Text = TextMarker;
30078
30130
  _L.VertexMarkers = VertexMarker;
30079
30131
  _L.Measurement = MeasureMent;
30080
- _L.Collision = Collision;
30081
30132
  _L.Symbol = Symbol$1;
30082
30133
  _L.PolylineDecorator = PolylineDecorator;
30134
+ _L.RadarCircle = RadarCircle;
30083
30135
  return _this.L = _L;
30084
30136
  })(window);
30085
30137
  export {
30086
30138
  BaiDuCRS,
30087
30139
  BlinkMarker,
30088
30140
  CanvasMarker,
30141
+ CircleMaterialType,
30089
30142
  ContextMenu,
30090
30143
  Draw,
30091
30144
  EagleMap,
@@ -30093,6 +30146,7 @@ export {
30093
30146
  Knob,
30094
30147
  LayerManager,
30095
30148
  MeasureMent,
30149
+ RadarCircle,
30096
30150
  StatusBar,
30097
30151
  TextMarker,
30098
30152
  VertexMarker