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.
- package/dist/gis-leaflet-helper.es.js +660 -606
- package/dist/gis-leaflet-helper.umd.js +1 -1
- package/package.json +2 -2
|
@@ -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
|
|
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
|
|
21329
|
-
extend
|
|
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
|
-
|
|
26564
|
-
|
|
26565
|
-
|
|
26566
|
-
|
|
26567
|
-
|
|
26568
|
-
|
|
26569
|
-
|
|
26570
|
-
|
|
26571
|
-
|
|
26572
|
-
|
|
26573
|
-
|
|
26574
|
-
|
|
26575
|
-
|
|
26576
|
-
|
|
26577
|
-
|
|
26578
|
-
|
|
26579
|
-
|
|
26580
|
-
|
|
26581
|
-
|
|
26582
|
-
|
|
26583
|
-
|
|
26584
|
-
|
|
26585
|
-
|
|
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
|
-
|
|
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
|
-
|
|
26637
|
-
|
|
26638
|
-
|
|
26639
|
-
|
|
26640
|
-
|
|
26641
|
-
|
|
26642
|
-
|
|
26643
|
-
|
|
26644
|
-
|
|
26645
|
-
|
|
26646
|
-
|
|
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
|
-
|
|
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
|
-
|
|
26652
|
-
}
|
|
26653
|
-
|
|
26654
|
-
if (!
|
|
26655
|
-
|
|
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
|
-
|
|
26662
|
-
|
|
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
|
-
|
|
26668
|
-
|
|
26669
|
-
|
|
26670
|
-
|
|
26671
|
-
|
|
26672
|
-
|
|
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
|
-
|
|
26675
|
-
|
|
26676
|
-
|
|
26677
|
-
|
|
26678
|
-
|
|
26679
|
-
|
|
26680
|
-
|
|
26681
|
-
|
|
26682
|
-
|
|
26683
|
-
|
|
26684
|
-
|
|
26685
|
-
|
|
26686
|
-
|
|
26687
|
-
|
|
26688
|
-
|
|
26689
|
-
|
|
26690
|
-
|
|
26691
|
-
|
|
26692
|
-
|
|
26693
|
-
|
|
26694
|
-
|
|
26695
|
-
|
|
26696
|
-
|
|
26697
|
-
|
|
26698
|
-
|
|
26699
|
-
|
|
26700
|
-
|
|
26701
|
-
|
|
26702
|
-
|
|
26703
|
-
|
|
26704
|
-
|
|
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
|
-
|
|
26708
|
-
|
|
26709
|
-
|
|
26710
|
-
|
|
26711
|
-
|
|
26712
|
-
|
|
26713
|
-
}
|
|
26714
|
-
|
|
26715
|
-
|
|
26716
|
-
|
|
26717
|
-
|
|
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
|
-
|
|
26720
|
-
|
|
26721
|
-
|
|
26722
|
-
|
|
26723
|
-
|
|
26724
|
-
|
|
26725
|
-
|
|
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
|
-
|
|
26745
|
-
|
|
26746
|
-
|
|
26747
|
-
|
|
26748
|
-
|
|
26749
|
-
|
|
26750
|
-
|
|
26751
|
-
|
|
26752
|
-
|
|
26753
|
-
|
|
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
|
-
|
|
26815
|
-
|
|
26816
|
-
|
|
26817
|
-
|
|
26818
|
-
|
|
26819
|
-
|
|
26820
|
-
|
|
26821
|
-
|
|
26822
|
-
|
|
26823
|
-
const
|
|
26824
|
-
|
|
26825
|
-
|
|
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
|
-
|
|
26903
|
-
|
|
26904
|
-
|
|
26905
|
-
|
|
26906
|
-
|
|
26907
|
-
|
|
26908
|
-
|
|
26909
|
-
|
|
26910
|
-
|
|
26911
|
-
|
|
26912
|
-
|
|
26913
|
-
|
|
26914
|
-
|
|
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
|
-
|
|
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
|
-
|
|
27110
|
-
|
|
26981
|
+
scale: {
|
|
26982
|
+
show: false,
|
|
26983
|
+
splitNum: 5,
|
|
26984
|
+
lineColor: "#000",
|
|
26985
|
+
labelColor: "#000"
|
|
27111
26986
|
},
|
|
27112
|
-
|
|
27113
|
-
|
|
27114
|
-
|
|
27115
|
-
|
|
27116
|
-
|
|
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
|
-
|
|
27119
|
-
|
|
27120
|
-
|
|
27121
|
-
|
|
27122
|
-
|
|
27123
|
-
|
|
27124
|
-
|
|
27125
|
-
|
|
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
|
-
|
|
27128
|
-
|
|
27129
|
-
|
|
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
|
-
|
|
27135
|
-
|
|
27136
|
-
|
|
27137
|
-
|
|
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(
|
|
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 =
|
|
27551
|
-
this._yField =
|
|
27552
|
-
this._valueField =
|
|
27553
|
-
if (
|
|
27554
|
-
this._cfgRadius =
|
|
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(
|
|
27739
|
-
var gradientConfig =
|
|
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(
|
|
27803
|
-
var container =
|
|
27854
|
+
function Canvas2dRenderer2(config) {
|
|
27855
|
+
var container = config.container;
|
|
27804
27856
|
var shadowCanvas = this.shadowCanvas = document.createElement("canvas");
|
|
27805
|
-
var canvas = this.canvas =
|
|
27857
|
+
var canvas = this.canvas = config.canvas || document.createElement("canvas");
|
|
27806
27858
|
this._renderBoundaries = [1e4, 1e4, 0, 0];
|
|
27807
|
-
var computed = getComputedStyle(
|
|
27859
|
+
var computed = getComputedStyle(config.container) || {};
|
|
27808
27860
|
canvas.className = "heatmap-canvas";
|
|
27809
|
-
this._width = canvas.width = shadowCanvas.width =
|
|
27810
|
-
this._height = canvas.height = shadowCanvas.height =
|
|
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(
|
|
27868
|
+
this._palette = _getColorPalette(config);
|
|
27817
27869
|
this._templates = {};
|
|
27818
|
-
this._setStyles(
|
|
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(
|
|
27835
|
-
this._palette = _getColorPalette(
|
|
27886
|
+
_updateGradient: function(config) {
|
|
27887
|
+
this._palette = _getColorPalette(config);
|
|
27836
27888
|
},
|
|
27837
|
-
updateConfig: function(
|
|
27838
|
-
if (
|
|
27839
|
-
this._updateGradient(
|
|
27889
|
+
updateConfig: function(config) {
|
|
27890
|
+
if (config["gradient"]) {
|
|
27891
|
+
this._updateGradient(config);
|
|
27840
27892
|
}
|
|
27841
|
-
this._setStyles(
|
|
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(
|
|
27854
|
-
this._blur =
|
|
27855
|
-
if (
|
|
27856
|
-
this.canvas.style.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 =
|
|
27859
|
-
this._height = this.canvas.height = this.shadowCanvas.height =
|
|
27860
|
-
this._opacity = (
|
|
27861
|
-
this._maxOpacity = (
|
|
27862
|
-
this._minOpacity = (
|
|
27863
|
-
this._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
|
|
28091
|
+
var config = this._config = Util2.merge(HeatmapConfig, arguments[0] || {});
|
|
28040
28092
|
this._coordinator = new Coordinator();
|
|
28041
|
-
if (
|
|
28042
|
-
var pluginToLoad =
|
|
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(
|
|
28048
|
-
this._store = new plugin.store(
|
|
28099
|
+
this._renderer = new plugin.renderer(config);
|
|
28100
|
+
this._store = new plugin.store(config);
|
|
28049
28101
|
}
|
|
28050
28102
|
} else {
|
|
28051
|
-
this._renderer = new Renderer(
|
|
28052
|
-
this._store = new Store(
|
|
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(
|
|
28078
|
-
this._config = Util2.merge(this._config,
|
|
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(
|
|
28107
|
-
return new Heatmap(
|
|
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(
|
|
28120
|
-
this.cfg =
|
|
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
|