@antv/aimapui 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1,49 @@
1
- var AimapUI=(function(U,l,u,Ne,O1,at,ct,ut){"use strict";function dt(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const p1=dt(Ne),M1={basemap:"map",center:[105,35],zoom:4,pitch:0,rotation:0};function j1(e){return{basemap:e.basemap??M1.basemap,token:e.token,style:e.style,center:e.center??[...M1.center],zoom:e.zoom??M1.zoom,pitch:e.pitch??M1.pitch,rotation:e.rotation??M1.rotation,minZoom:e.minZoom,maxZoom:e.maxZoom,bounds:e.bounds,gestureConfig:e.gestureConfig}}let ht=0;function ft(){return`aimap-layer-${++ht}`}function _e(e){return{id:e.id??ft(),type:e.type,name:e.name??e.type,visible:e.visible??!0,zIndex:e.zIndex??0,minZoom:e.minZoom,maxZoom:e.maxZoom,autoFit:e.autoFit??!1,source:e.source,sourceType:e.sourceType,sourceConfig:e.sourceConfig,color:e.color,colorField:e.colorField,colorValues:e.colorValues,size:e.size,sizeField:e.sizeField,sizeValues:e.sizeValues,shape:e.shape,shapeField:e.shapeField,shapeValues:e.shapeValues,style:e.style,filterField:e.filterField,filterValues:e.filterValues,animate:e.animate,active:e.active,select:e.select,events:e.events}}const pt={zoom:"topright",scale:"bottomleft",fullscreen:"topright",geoLocate:"topright",mapTheme:"topright",mouseLocation:"bottomright",exportImage:"topright",layerSwitch:"topright",draw:"topright"};function De(e){return{type:e.type,position:e.position??pt[e.type]??"topright",options:e.options}}const gt={breakpoint:768};function yt(e){return{breakpoint:(e==null?void 0:e.breakpoint)??gt.breakpoint,mobile:e==null?void 0:e.mobile}}function ee(e){return{map:j1(e.map),layers:(e.layers??[]).map(_e),controls:(e.controls??[]).map(De),interactions:e.interactions??[],legends:e.legends??[],responsive:e.responsive?yt(e.responsive):void 0,events:e.events}}function $e(e){return ee(e)}function mt(e){const n=[];if(e.basemap||n.push("map.basemap is required"),e.center){const[t,r]=e.center;(t<-180||t>180)&&n.push("map.center[0] (longitude) must be between -180 and 180"),(r<-90||r>90)&&n.push("map.center[1] (latitude) must be between -90 and 90")}return n}function Ct(e,n){const t=[];return e.type||t.push(`layers[${n}].type is required`),e.source===void 0&&e.source,e.colorField&&!e.colorValues&&e.color,t}function vt(e){const n=[];return n.push(...mt(e.map)),(e.layers??[]).forEach((t,r)=>{n.push(...Ct(t,r))}),{valid:n.length===0,errors:n}}const Oe=u.createContext(null);function je({schema:e,children:n}){return l.jsx(Oe.Provider,{value:e,children:n})}function Lt(){return u.useContext(Oe)}class Be{constructor(){this.listeners=new Map}on(n,t){return this.listeners.has(n)||this.listeners.set(n,new Set),this.listeners.get(n).add(t),()=>{var r;(r=this.listeners.get(n))==null||r.delete(t)}}once(n,t){const r=(...i)=>{t(...i),o()},o=this.on(n,r);return o}emit(n,...t){const r=this.listeners.get(n);r&&r.forEach(o=>{try{o(...t)}catch(i){console.error(`[aimapui EventBus] Error in event "${n}":`,i)}})}off(n){this.listeners.delete(n)}clear(){this.listeners.clear()}}function Ue(){return new Be}const We=u.createContext(null);function qe({events:e,children:n}){const t=u.useRef(null);return t.current||(t.current=Ue()),u.useEffect(()=>{if(!e||!t.current)return;const r=t.current,o=[];for(const[i,s]of Object.entries(e))s&&o.push(r.on(i,s));return()=>{o.forEach(i=>i())}},[e]),l.jsx(We.Provider,{value:t.current,children:n})}function te(){const e=u.useContext(We);if(!e)throw new Error("[aimapui] useEventBus must be used within an EventBusProvider");return e}const Ge=u.createContext({resolvedTheme:"light",theme:"light",setTheme:()=>{},toggleTheme:()=>{}});function Ye({defaultTheme:e="light",target:n="container",children:t}){const[r,o]=u.useState(e),[i,s]=u.useState("light");u.useEffect(()=>{const h=window.matchMedia("(prefers-color-scheme: dark)");s(h.matches?"dark":"light");const y=f=>{s(f.matches?"dark":"light")};return h.addEventListener("change",y),()=>h.removeEventListener("change",y)},[]);const a=r==="system"?i:r,c=u.useCallback(()=>{o(h=>h==="system"?i==="light"?"dark":"light":h==="light"?"dark":"light")},[i]);u.useEffect(()=>{n==="root"&&document.documentElement.setAttribute("data-theme",a)},[a,n]);const d=u.useMemo(()=>({resolvedTheme:a,theme:r,setTheme:o,toggleTheme:c}),[a,r,c]);return l.jsx(Ge.Provider,{value:d,children:n==="container"?l.jsx("div",{"data-theme":a,style:{display:"contents"},children:t}):t})}function Je(){return u.useContext(Ge)}const bt=u.createContext({isMobile:!1,breakpoint:768,width:typeof window<"u"?window.innerWidth:1024,schema:void 0});function xt({responsive:e,children:n}){const[t,r]=u.useState(typeof window<"u"?window.innerWidth:1024);u.useEffect(()=>{let a;const c=()=>{cancelAnimationFrame(a),a=requestAnimationFrame(()=>r(window.innerWidth))};return window.addEventListener("resize",c),()=>{window.removeEventListener("resize",c),cancelAnimationFrame(a)}},[]);const o=(e==null?void 0:e.breakpoint)??768,i=t<o,s=u.useMemo(()=>({isMobile:i,breakpoint:o,width:t,schema:e}),[i,o,t,e]);return l.jsx(bt.Provider,{value:s,children:n})}const Xe=u.createContext(null);function Ke({scene:e,children:n}){const t=u.useRef(e);return t.current=e,l.jsx(Xe.Provider,{value:t.current,children:n})}function h1(){return u.useContext(Xe)}async function Qe(e){var i,s,a;const n=e.basemap??M1.basemap,t=e.token??"",r=e.style??"normal",o={center:e.center??M1.center,zoom:e.zoom??M1.zoom,pitch:e.pitch??M1.pitch,rotation:e.rotation??M1.rotation,minZoom:e.minZoom,maxZoom:e.maxZoom,dragEnable:((i=e.gestureConfig)==null?void 0:i.dragPan)??!0,zoomEnable:((s=e.gestureConfig)==null?void 0:s.pinchZoom)??!0,rotateEnable:((a=e.gestureConfig)==null?void 0:a.dragRotate)??!0};switch(n){case"gaode":{const{GaodeMap:c}=await import("@antv/l7-maps/gaode");return new c({...o,style:Mt(r),token:t})}case"mapbox":{const{Mapbox:c}=await import("@antv/l7-maps/mapbox");return new c({...o,style:wt(r),token:t})}case"tianditu":{const{TMap:c}=await import("@antv/l7-maps/tianditu");return new c({...o,token:t})}case"tencent":{const{TencentMap:c}=await import("@antv/l7-maps/tencent");return new c({...o,token:t})}case"baidu":{const{BaiduMap:c}=await import("@antv/l7-maps/baidu");return new c({...o,style:Ht(r),token:t})}case"maplibre":{const{MapLibre:c}=await import("@antv/l7-maps/maplibre");return new c({...o,style:zt(r),token:t})}case"google":{const{GoogleMap:c}=await import("@antv/l7-maps/google"),d=new c({...o,style:St(r),token:t});return Vt(d),d}case"map":default:{const{Map:c}=await import("@antv/l7-maps/simple");return new c({center:e.center??M1.center,zoom:e.zoom??M1.zoom})}}}function Mt(e){return{light:"light",dark:"dark",normal:"normal",darkblue:"dark",satellite:"satellite"}[e]??e}function wt(e){return{light:"https://tiles.openfreemap.org/styles/positron",dark:"https://tiles.openfreemap.org/styles/dark",normal:"https://tiles.openfreemap.org/styles/bright",liberty:"https://tiles.openfreemap.org/styles/liberty",fiord:"https://tiles.openfreemap.org/styles/fiord"}[e]??e}function Ht(e){return{light:"light",dark:"dark",normal:"normal",darkblue:"dark",satellite:"satellite"}[e]??e}function St(e){return{light:"roadmap",dark:"roadmap",normal:"roadmap",darkblue:"roadmap",satellite:"satellite",hybrid:"hybrid",terrain:"terrain"}[e]??"roadmap"}function zt(e){return{light:"https://tiles.openfreemap.org/styles/positron",dark:"https://tiles.openfreemap.org/styles/dark",normal:"https://tiles.openfreemap.org/styles/bright",liberty:"https://tiles.openfreemap.org/styles/liberty",fiord:"https://tiles.openfreemap.org/styles/fiord"}[e]??e}function Vt(e){const n=["zoomControl","mapTypeControl","streetViewControl","fullscreenControl","scaleControl","rotateControl","panControl"],t={};for(const s of n)t[s]=!1;const r=()=>{const s=e.map;if(!s||typeof s.setOptions!="function")return!1;s.setOptions(t);const a=s.setOptions.bind(s);return s.setOptions=c=>{const d={...c};for(const h of n)h in d&&delete d[h];a(d)},!0};if(r())return;let o=0;const i=setInterval(()=>{o+=1,(r()||o>40)&&clearInterval(i)},100)}function Re({mapSchema:e,children:n,onSceneReady:t,mapEventHandlers:r,events:o,className:i,style:s}){const a=u.useRef(null),c=u.useRef(null),[d,h]=u.useState(null),y=u.useRef(t);y.current=t;const f=u.useRef(r);f.current=r;const g=te(),p=u.useCallback((S,x)=>{var M,A,O;if(x.basemap==="map")return;const Z=((M=x.gestureConfig)==null?void 0:M.dragPan)??!0,z=((A=x.gestureConfig)==null?void 0:A.pinchZoom)??!0,P=((O=x.gestureConfig)==null?void 0:O.dragRotate)??!0;try{const V=S.mapService;V&&typeof V.setMapStatus=="function"&&V.setMapStatus({dragEnable:Z,zoomEnable:z,rotateEnable:P,doubleClickZoom:z})}catch{}},[]);u.useEffect(()=>{if(!a.current)return;let S=!1;const x=j1(e);Qe(x).then(z=>{if(S||!a.current)return;const P=new Ne.Scene({id:a.current,map:z,logoVisible:!1});c.current=P,P.on("loaded",()=>{var M;S||(p(P,x),h(P),(M=y.current)==null||M.call(y,P),Z(P))}),x.bounds&&P.on("loaded",()=>{try{const[M,A]=x.bounds;P.fitBounds([M[0],M[1],A[0],A[1]])}catch{}})});function Z(z){z.on("mapmove",()=>{var M,A;const P={originalEvent:null,center:[z.getCenter().lng,z.getCenter().lat],zoom:z.getZoom(),pitch:z.getPitch(),rotation:z.getRotation()};(A=(M=f.current)==null?void 0:M.onMove)==null||A.call(M,P),o!=null&&o.mapMove&&g.emit(o.mapMove,P)}),z.on("zoomchange",()=>{var M,A;const P={originalEvent:null,center:[z.getCenter().lng,z.getCenter().lat],zoom:z.getZoom(),pitch:z.getPitch(),rotation:z.getRotation()};(A=(M=f.current)==null?void 0:M.onZoom)==null||A.call(M,P),o!=null&&o.mapZoom&&g.emit(o.mapZoom,P)})}return()=>{if(S=!0,c.current){try{c.current.destroy()}catch{}c.current=null}h(null)}},[e.basemap,p]);const C=JSON.stringify(e.center),L=JSON.stringify(e.gestureConfig);u.useEffect(()=>{if(!d)return;const S=j1(e);try{d.setCenter(S.center)}catch{}try{d.setZoom(S.zoom)}catch{}try{d.setPitch(S.pitch)}catch{}try{d.setRotation(S.rotation)}catch{}p(d,S)},[d,C,e.zoom,e.pitch,e.rotation,L,p]);const w=u.useCallback(()=>{if(c.current)try{const S=c.current.map;S&&typeof S.resize=="function"&&S.resize()}catch{}},[]);return u.useEffect(()=>(window.addEventListener("resize",w),()=>window.removeEventListener("resize",w)),[w]),l.jsx("div",{ref:a,className:i??"aimapui-container",style:s??{width:"100%",height:"100%"},children:d&&l.jsx(Ke,{scene:d,children:n})})}function e0(e){if(e.colorField)return{field:e.colorField,values:e.colorValues};if(e.color)return{values:e.color}}function kt(e){if(e.sizeField)return{field:e.sizeField,values:e.sizeValues};if(e.size!==void 0)return{values:e.size}}function t0(e){if(e.shapeField)return{field:e.shapeField,values:e.shapeValues};if(e.shape)return{values:e.shape}}function ne(e){return{color:e0(e),size:kt(e),shape:t0(e),style:e.style?{...e.style}:void 0}}function Et(e){var n,t;return{data:e.source,options:{parser:{type:"json",x:((n=e.sourceConfig)==null?void 0:n.x)??"lng",y:((t=e.sourceConfig)==null?void 0:t.y)??"lat"}}}}function At(e){var n,t;return{data:e.source,options:{parser:{type:"csv",x:(n=e.sourceConfig)==null?void 0:n.x,y:(t=e.sourceConfig)==null?void 0:t.y}}}}function re(e){return{data:e.source,options:void 0}}function Zt(e){var n;return(n=e.sourceConfig)!=null&&n.parser?{data:e.source,options:{parser:e.sourceConfig.parser}}:e.sourceType==="geojson"?re(e):e.sourceType==="csv"?At(e):Et(e)}function n0(e){return{type:"PointLayer",sourceConfig:Zt(e),visual:ne(e),schema:e}}function r0(e){return{type:"LineLayer",sourceConfig:Pt(e),visual:ne(e),schema:e}}function Pt(e){var n,t,r,o,i,s,a,c,d,h;return(n=e.sourceConfig)!=null&&n.parser?{data:e.source,options:{parser:e.sourceConfig.parser}}:e.sourceType==="geojson"?re(e):e.sourceType==="csv"?{data:e.source,options:{parser:{type:"csv",x:(t=e.sourceConfig)==null?void 0:t.x,y:(r=e.sourceConfig)==null?void 0:r.y,x1:(o=e.sourceConfig)==null?void 0:o.x1,y1:(i=e.sourceConfig)==null?void 0:i.y1}}}:{data:e.source,options:{parser:{type:"json",x:((s=e.sourceConfig)==null?void 0:s.x)??"lng",y:((a=e.sourceConfig)==null?void 0:a.y)??"lat",x1:(c=e.sourceConfig)==null?void 0:c.x1,y1:(d=e.sourceConfig)==null?void 0:d.y1,coordinates:(h=e.sourceConfig)==null?void 0:h.coordinates}}}}function o0(e){return{type:"PolygonLayer",sourceConfig:It(e),visual:ne(e),schema:e}}function It(e){var n;return e.sourceType==="geojson"?re(e):{data:e.source,options:{parser:{type:"json",coordinates:((n=e.sourceConfig)==null?void 0:n.coordinates)??"coordinates"}}}}function s0(e){return{type:"HeatmapLayer",sourceConfig:Ft(e),visual:Tt(e),schema:e}}function Ft(e){var n,t,r,o,i,s,a,c;return(n=e.sourceConfig)!=null&&n.parser?{data:e.source,options:{parser:e.sourceConfig.parser,...e.sourceConfig.transforms?{transforms:e.sourceConfig.transforms}:{}}}:e.sourceType==="geojson"?{data:e.source,options:(t=e.sourceConfig)!=null&&t.transforms?{transforms:e.sourceConfig.transforms}:void 0}:e.sourceType==="csv"?{data:e.source,options:{parser:{type:"csv",x:(r=e.sourceConfig)==null?void 0:r.x,y:(o=e.sourceConfig)==null?void 0:o.y},...(i=e.sourceConfig)!=null&&i.transforms?{transforms:e.sourceConfig.transforms}:{}}}:{data:e.source,options:{parser:{type:"json",x:((s=e.sourceConfig)==null?void 0:s.x)??"lng",y:((a=e.sourceConfig)==null?void 0:a.y)??"lat"},...(c=e.sourceConfig)!=null&&c.transforms?{transforms:e.sourceConfig.transforms}:{}}}}function Tt(e){const n=e.sizeField?{field:e.sizeField,values:e.sizeValues}:void 0,t=e0(e),r=t0(e),o=e.style?{...e.style}:void 0;return{color:t,size:n,shape:r,style:o}}function i0(e){return{type:"RasterLayer",sourceConfig:Nt(e),visual:_t(e),schema:e}}function Nt(e){var n;return(n=e.sourceConfig)!=null&&n.parser?{data:e.source,options:{parser:e.sourceConfig.parser}}:{data:e.source,options:e.sourceType==="raster"?{parser:{type:"raster",extent:[73.482190241,3.82501784112,135.106618732,53.557926206]}}:e.sourceType==="rasterTile"?{parser:{type:"rasterTile",tileSize:256,zoomOffset:1}}:void 0}}function _t(e){return{color:void 0,size:void 0,shape:void 0,style:e.style?{...e.style}:void 0}}function l0(e){var n;return{type:"ImageLayer",sourceConfig:{data:e.source,options:{parser:((n=e.sourceConfig)==null?void 0:n.parser)??(e.sourceType==="image"?{type:"image"}:void 0)}},visual:{color:void 0,size:void 0,shape:void 0,style:e.style?{...e.style}:void 0},schema:e}}function oe(e,n,t,r){const o=u.useRef(n),i=u.useRef(t);o.current=n,i.current=t;const s=u.useRef(r);s.current=r;const a=u.useRef(null),c=u.useRef(e);c.current=e;const d=u.useCallback(()=>{const y=c.current;if(y)try{const f=y.mapService;if(f){const g=f.lngLatToContainer([o.current,i.current]);g&&s.current(g.x,g.y)}else{const g=y.lngLatToContainer([o.current,i.current]);g&&s.current(g.x,g.y)}}catch{}},[]),h=u.useCallback(()=>{d()},[d]);u.useEffect(()=>{if(!e)return;const y=()=>{setTimeout(()=>d(),0)};return e.loaded?y():e.on("loaded",y),()=>{e.off("loaded",y)}},[e,d]),u.useEffect(()=>{d()},[n,t,d]),u.useEffect(()=>{if(e){try{const y=e.mapService;if(y)return y.on("camerachange",h),y.on("viewchange",h),()=>{y.off("camerachange",h),y.off("viewchange",h)}}catch{}return e.on("camerachange",h),e.on("resize",h),()=>{e.off("camerachange",h),e.off("resize",h)}}},[e,h]),u.useEffect(()=>()=>{a.current!==null&&(cancelAnimationFrame(a.current),a.current=null)},[])}function d1(...e){return at(e)}function Dt(e,n=1){const t=e.replace("#","").match(/.{2}/g);if(!t||t.length<3)return e;const[r,o,i]=t.map(s=>parseInt(s,16));return`rgba(${r}, ${o}, ${i}, ${n})`}function B1(e){return typeof e=="string"&&/<[a-zA-Z][^>]*>/.test(e)}let N1=null;const se=new Set;function $t(e,n){N1&&N1!==e&&se.forEach(t=>t(e)),N1=e}function Ot(e){N1===e&&(N1=null)}function jt(e,n,t,r,o,i,s,a){if(s!=="auto")return I1(s,a);const c=n,d=i-n,h=e,y=o-e,f=8;if(c>=r+a+f)return I1("top",a);if(d>=r+a+f)return I1("bottom",a);if(y>=t+a+f)return I1("right",a);if(h>=t+a+f)return I1("left",a);const p=Object.entries({top:c,bottom:d,right:y,left:h}).sort((C,L)=>L[1]-C[1])[0][0];return I1(p,a)}function I1(e,n){switch(e){case"top":return{placement:"top",transform:`translate(-50%, -100%) translateY(-${n}px)`};case"bottom":return{placement:"bottom",transform:`translate(-50%, 0) translateY(${n}px)`};case"left":return{placement:"left",transform:`translate(-100%, -50%) translateX(-${n}px)`};case"right":return{placement:"right",transform:`translate(0, -50%) translateX(${n}px)`}}}function U1({onClick:e}){return l.jsx("button",{onClick:n=>{n.stopPropagation(),e()},className:"aimapui-popup-close-btn absolute top-2 right-2 size-8 flex items-center justify-center text-on-surface-variant rounded-lg transition-[color,background] duration-200 cursor-pointer bg-transparent border-none p-0 hover:text-on-surface hover:bg-surface-container-high [&_.material-symbols-outlined]:text-xl","aria-label":"关闭",children:l.jsx("span",{className:"material-symbols-outlined",children:"close"})})}const Bt={top:"M0 0L8 8L16 0",bottom:"M0 8L8 0L16 8",left:"M0 0L8 8L0 16",right:"M8 0L0 8L8 16"};function W1({placement:e}){const n=e==="top"||e==="bottom",t=n?16:8,r=n?8:16,o=n?"0 0 16 8":"0 0 8 16",i=Bt[e];return l.jsx("div",{className:`aimapui-popup-tip-arrow aimapui-popup-tip-arrow--${e==="top"?"bottom":e==="bottom"?"top":e}`,children:l.jsxs("svg",{width:t,height:r,viewBox:o,fill:"none",children:[l.jsx("path",{d:i,fill:"rgba(248, 249, 255, 0.95)"}),l.jsx("path",{d:i,stroke:"rgba(195, 198, 215, 0.3)",strokeWidth:"0.5",fill:"none"})]})})}function Ut({header:e,onClose:n}){return e.coverUrl?l.jsxs("div",{className:"aimapui-popup-cover relative aspect-video overflow-hidden",children:[l.jsx("img",{src:e.coverUrl,alt:e.title,className:"aimapui-popup-cover-img w-full h-full object-cover"}),l.jsx("button",{className:"aimapui-popup-close-btn aimapui-popup-close-btn--cover absolute top-2 right-2 size-8 bg-black/30 backdrop-blur-sm text-white flex items-center justify-center rounded-full border-none cursor-pointer transition-colors duration-200 z-10 hover:bg-black/50 [&_.material-symbols-outlined]:text-lg","aria-label":"关闭",onClick:t=>{t.stopPropagation(),n()},children:l.jsx("span",{className:"material-symbols-outlined",children:"close"})}),e.statusLabel&&l.jsxs("div",{className:"aimapui-popup-status-badge absolute bottom-2 left-2 flex items-center gap-1.5 px-2 py-0.5 bg-surface/90 backdrop-blur-sm rounded-md shadow-sm text-[10px] font-semibold uppercase tracking-wide text-on-surface",children:[l.jsx("div",{className:"size-2 rounded-full",style:{background:e.statusColor||"#10b981"}}),l.jsx("span",{children:e.statusLabel})]})]}):null}function Wt({header:e,onClose:n,hasCover:t,showStatusDot:r}){return l.jsxs("div",{className:d1("aimapui-popup-header relative flex items-center p-4",!t&&"pr-10"),children:[r&&e.statusDot&&l.jsx("div",{className:"size-2 rounded-full shrink-0 mr-2 animate-pulse",style:{background:e.statusDot}}),l.jsx("h3",{className:"aimapui-popup-title text-xl leading-7 font-semibold text-on-surface m-0 flex-1 min-w-0 truncate",children:e.title}),!t&&l.jsx(U1,{onClick:n})]})}function qt({attributes:e,size:n}){const t=n==="compact",r=n==="detailed",o=t?1:2;return l.jsx("div",{className:d1("aimapui-popup-attrs",t?"flex flex-col":"grid gap-2"),style:t?void 0:{gridTemplateColumns:`repeat(${o}, 1fr)`},children:e.map((i,s)=>r&&i.icon?l.jsxs("div",{className:"aimapui-popup-attr flex items-center gap-2",children:[l.jsx("div",{className:"aimapui-popup-attr-icon size-12 rounded-lg bg-surface-container-highest flex items-center justify-center text-primary shrink-0 [&_.material-symbols-outlined]:text-[28px]",children:l.jsx("span",{className:"material-symbols-outlined",children:i.icon})}),l.jsxs("div",{children:[l.jsx("p",{className:"aimapui-popup-attr-label text-sm leading-5 text-on-surface-variant m-0",children:i.label}),l.jsx("p",{className:"aimapui-popup-attr-value text-sm leading-5 font-medium text-on-surface m-0",style:i.valueColor?{color:i.valueColor}:void 0,children:i.value})]})]},s):l.jsxs("div",{className:d1("aimapui-popup-attr","flex justify-between items-baseline gap-2",t&&"py-2 border-b border-outline-variant/30 last:border-b-0 last:pb-0 first:pt-0"),children:[l.jsx("p",{className:"aimapui-popup-attr-label text-sm leading-5 text-on-surface-variant m-0",children:i.label}),l.jsx("p",{className:"aimapui-popup-attr-value text-sm leading-5 font-medium text-on-surface m-0 text-right",style:i.valueColor?{color:i.valueColor}:void 0,children:i.value})]},s))})}function Gt({actions:e}){return l.jsx("div",{className:"aimapui-popup-actions flex gap-3 px-4 pb-4",children:e.map((n,t)=>l.jsx("button",{className:d1("aimapui-popup-action-btn","flex-1 py-2.5 text-sm leading-5 font-semibold rounded-lg border-none cursor-pointer transition-all duration-150 active:scale-[0.98]",n.variant==="secondary"?"aimapui-popup-action-btn--secondary bg-transparent text-on-surface border-2 border-solid border-outline-variant hover:bg-surface-container-low":"aimapui-popup-action-btn--primary bg-primary text-on-primary shadow-sm hover:shadow-[0_4px_12px_rgba(0,74,198,0.3)]"),onClick:n.onClick,children:n.label},t))})}function _1({longitude:e,latitude:n,content:t,closeButton:r=!0,size:o="standard",placement:i="auto",offset:s=8,header:a,attributes:c,actions:d,visible:h,singleton:y=!1,overlayContainer:f,onClose:g,className:p}){const C=h1(),L=h!==void 0,[w,S]=u.useState(!0),x=L?h:w,[Z,z]=u.useState(!1),[P,M]=u.useState("top"),A=u.useRef(null),O=u.useRef(!0);u.useRef(!1);const V=u.useRef(Symbol("popup")),[D,_]=u.useState(null);u.useEffect(()=>{if(f||!C)return;const G=()=>{try{const r1=C.mapService;if(r1&&typeof r1.getMarkerContainer=="function"){const I=r1.getMarkerContainer();if(I)return _(I),!0}}catch{}return!1};if(G())return;const n1=()=>{G()};return C.loaded?n1():C.on("loaded",n1),()=>{C.off("loaded",n1)}},[C,f]);const F=f??D,b=u.useCallback(()=>{Z||(z(!0),setTimeout(()=>{L||S(!1),g==null||g(),z(!1)},150))},[L,g,Z]);u.useEffect(()=>{if(!y||!x)return;const G=V.current;return $t(G),()=>Ot(G)},[y,x,b]),u.useEffect(()=>{if(!y)return;const G=V.current,n1=r1=>{r1!==G&&x&&b()};return se.add(n1),()=>{se.delete(n1)}},[y,x,b]);const H=u.useRef(()=>{});H.current=(G,n1)=>{var J;const r1=A.current;if(!r1)return;const I=Math.round(G),W=Math.round(n1);let l1=0,X=0;try{const $=C==null?void 0:C.mapService,q=(J=$==null?void 0:$.getContainer)==null?void 0:J.call($);if(q){const e1=q.getBoundingClientRect();l1=e1.width||q.clientWidth||q.scrollWidth,X=e1.height||q.clientHeight||q.scrollHeight}}catch{}const s1=r1.querySelector(".aimapui-popup-content"),u1=(s1==null?void 0:s1.offsetWidth)||320,E=(s1==null?void 0:s1.offsetHeight)||200,{placement:m,transform:k}=jt(I,W,u1,E,l1,X,i,s);M(m),r1.style.left="0",r1.style.top="0",r1.style.transform=`translate3d(${I}px, ${W}px, 0) ${k}`;let v;if(l1>0&&X>0)v=I>=-2&&I<=l1+2&&W>=-2&&W<=X+2;else{const $=r1.parentElement;$&&$.clientWidth>0&&$.clientHeight>0?v=I>=0&&I<=$.clientWidth&&W>=0&&W<=$.clientHeight:v=O.current}O.current=v,r1.style.display=v?"":"none"};const B=u.useCallback(()=>{if(C)try{const G=C.mapService,n1=G?G.lngLatToContainer([e,n]):C.lngLatToContainer([e,n]);n1&&H.current(n1.x,n1.y)}catch{}},[C,e,n]);if(u.useEffect(()=>{if(!F||!x)return;const G=requestAnimationFrame(()=>{B()});return()=>cancelAnimationFrame(G)},[F,x,B]),u.useEffect(()=>{if(!x)return;const G=n1=>{n1.key==="Escape"&&b()};return document.addEventListener("keydown",G),()=>document.removeEventListener("keydown",G)},[x,b]),u.useEffect(()=>{var I;if(!x||!F)return;const G=W=>{const l1=A.current;if(!l1||l1.contains(W.target))return;const X=W.target;X.closest(".aimapui-marker")||X.closest("[data-marker]")||b()};let n1=null;try{const W=C==null?void 0:C.mapService;W&&(n1=(I=W.getContainer)==null?void 0:I.call(W))}catch{}const r1=n1||F.parentElement||F;return r1.addEventListener("click",G,!0),()=>r1.removeEventListener("click",G,!0)},[x,F,C,b]),oe(C,e,n,(G,n1)=>{H.current(G,n1)}),!x||!F)return null;const Y=a||c||d,t1=!!(a!=null&&a.coverUrl),K=P==="left"||P==="right",R=()=>Y?l.jsxs(l.Fragment,{children:[a&&t1&&l.jsx(Ut,{header:a,onClose:b}),a&&l.jsx(Wt,{header:a,onClose:b,hasCover:t1,showStatusDot:o==="compact"}),l.jsxs("div",{className:d1("aimapui-popup-body relative p-4 text-sm leading-5 text-on-surface break-words whitespace-normal",!a&&r&&"pr-10"),children:[!a&&r&&l.jsx(U1,{onClick:b}),t&&!B1(t)&&typeof t!="string"&&l.jsx("div",{children:t}),t&&B1(t)&&l.jsx("div",{dangerouslySetInnerHTML:{__html:t}}),t&&!B1(t)&&typeof t=="string"&&l.jsx("div",{children:t}),!t&&!(c!=null&&c.length)&&!(d!=null&&d.length)&&!a&&l.jsx("div",{style:{color:"var(--color-on-surface-variant)"},children:"无内容"}),c&&c.length>0&&l.jsx(qt,{attributes:c,size:o})]}),d&&d.length>0&&l.jsx(Gt,{actions:d})]}):B1(t)?l.jsxs("div",{className:"aimapui-popup-body relative p-4 pt-2 pr-10 text-sm leading-5 text-on-surface break-words whitespace-normal",children:[r&&l.jsx(U1,{onClick:b}),l.jsx("div",{dangerouslySetInnerHTML:{__html:t}})]}):l.jsxs("div",{className:"aimapui-popup-body relative p-4 pt-2 pr-10 text-sm leading-5 text-on-surface break-words whitespace-normal",children:[r&&l.jsx(U1,{onClick:b}),l.jsx("div",{children:t??""})]}),a1=K?{display:"flex",alignItems:"center"}:{display:"flex",flexDirection:"column",alignItems:"center"};return O1.createPortal(l.jsxs("div",{ref:A,className:d1("aimapui-popup",`aimapui-popup--${o}`),style:{position:"absolute",left:0,top:0,transform:"translate(-9999px, -9999px)",display:"none",zIndex:30,pointerEvents:"auto",...a1},children:[P==="bottom"&&l.jsx(W1,{placement:P}),P==="right"&&l.jsx(W1,{placement:P}),l.jsx("div",{className:d1("aimapui-popup-content overflow-hidden rounded-xl",Z&&"aimapui-popup-content--exit",p),children:R()}),P==="top"&&l.jsx(W1,{placement:P}),P==="left"&&l.jsx(W1,{placement:P})]}),F)}const Yt={top:"bottom",bottom:"top",left:"right",right:"left"},Jt={top:"translate(-50%, -100%)",bottom:"translate(-50%, 0)",left:"translate(-100%, -50%)",right:"translate(0, -50%)"};function ie({content:e,variant:n="dark",longitude:t,latitude:r,targetElement:o,placement:i="top",offset:s=8,trigger:a="hover",visible:c,title:d,items:h,overlayContainer:y,className:f}){const{resolvedTheme:g}=Je(),p=h1(),C=c!==void 0,[L,w]=u.useState(!1),S=C?c:L,x=u.useRef(null),Z=u.useRef(null),z=t!==void 0&&r!==void 0;u.useEffect(()=>{if(z||!o||C)return;const b=()=>{Z.current=setTimeout(()=>w(!0),100)},H=()=>{Z.current&&(clearTimeout(Z.current),Z.current=null),w(!1)},B=()=>{Z.current&&clearTimeout(Z.current),w(Y=>!Y)};return a==="hover"?(o.addEventListener("mouseenter",b),o.addEventListener("mouseleave",H)):o.addEventListener("click",B),()=>{Z.current&&clearTimeout(Z.current),o.removeEventListener("mouseenter",b),o.removeEventListener("mouseleave",H),o.removeEventListener("click",B)}},[o,a,z,C]);const P=u.useCallback(()=>{if(!o||!x.current)return;const b=o.getBoundingClientRect(),H=x.current.getBoundingClientRect();let B=0,Y=0;switch(i){case"right":B=b.right+s,Y=b.top+b.height/2-H.height/2;break;case"bottom":B=b.left+b.width/2-H.width/2,Y=b.bottom+s;break;case"left":B=b.left-H.width-s,Y=b.top+b.height/2-H.height/2;break;case"top":default:B=b.left+b.width/2-H.width/2,Y=b.top-H.height-s;break}const t1=8;B=Math.max(t1,Math.min(B,window.innerWidth-H.width-t1)),Y=Math.max(t1,Math.min(Y,window.innerHeight-H.height-t1)),x.current.style.display="",x.current.style.left=`${B}px`,x.current.style.top=`${Y}px`},[o,i,s]);u.useEffect(()=>{if(z||!S||!o)return;P();const b=()=>P();return window.addEventListener("resize",b),window.addEventListener("scroll",b,!0),()=>{window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0)}},[S,o,z,P]);const M=u.useCallback(()=>{var b,H;if(!p)return null;try{const B=p.mapService,Y=((b=B==null?void 0:B.getContainer)==null?void 0:b.call(B))??((H=p.getMapContainer)==null?void 0:H.call(p))??p.container;if(Y instanceof HTMLElement)return Y.getBoundingClientRect()}catch{}return null},[p]),A=u.useRef(()=>{});A.current=(b,H)=>{const B=x.current;if(!B||!z)return;let Y=0,t1=0;switch(i){case"top":t1=-s;break;case"bottom":t1=s;break;case"left":Y=-s;break;case"right":Y=s;break}const K=M();let R=!0;if(K&&K.width>0&&K.height>0&&(R=b>=-2&&b<=K.width+2&&H>=-2&&H<=K.height+2),!R){B.style.display="none";return}const a1=K?K.left:0,G=K?K.top:0,n1=Math.round(b+Y+a1),r1=Math.round(H+t1+G),I=Jt[i];B.style.display="",B.style.transform=`translate3d(${n1}px, ${r1}px, 0) ${I}`};const O=u.useCallback(()=>{if(!(!p||!z))try{const b=p.mapService,H=b?b.lngLatToContainer([t,r]):p.lngLatToContainer([t,r]);if(!H||isNaN(H.x)||isNaN(H.y))return;A.current(H.x,H.y)}catch{}},[p,t,r,z]);if(u.useEffect(()=>{if(!z||!S)return;const b=requestAnimationFrame(()=>O());return()=>cancelAnimationFrame(b)},[S,z,O]),oe(z?p:null,t??0,r??0,(b,H)=>{A.current(b,H)}),!S)return null;const V=Yt[i],D=d||h&&h.length>0,_=()=>e?typeof e=="string"?l.jsx("span",{dangerouslySetInnerHTML:{__html:e}}):e:D?l.jsxs(l.Fragment,{children:[d&&l.jsx("p",{className:"font-sans text-xs leading-4 font-semibold m-0 mb-0.5",children:d}),h&&h.length>0&&l.jsx("div",{className:"flex flex-col gap-0.5",children:h.map((b,H)=>l.jsxs("div",{className:"flex justify-between items-center gap-3",children:[l.jsx("span",{className:"text-xs leading-4 font-normal opacity-70 m-0",children:b.label}),l.jsx("span",{className:"font-mono text-xs leading-4 font-[450] text-right m-0",children:b.value})]},H))})]}):null,F=l.jsxs("div",{ref:x,"data-theme":g,className:d1("aimapui-tooltip",n!=="dark"&&`aimapui-tooltip--${n}`),style:{position:"fixed",left:0,top:0,transform:"translate(-9999px, -9999px)",display:"none",zIndex:9999,pointerEvents:"none"},children:[l.jsx("div",{className:d1("aimapui-tooltip-content",f),children:_()}),l.jsx("div",{className:`aimapui-tooltip-arrow aimapui-tooltip-arrow--${V}`})]});return O1.createPortal(F,document.body)}function Xt(e,n){let t;switch(e.type){case"point":t=n0(e);break;case"line":t=r0(e);break;case"polygon":t=o0(e);break;case"heatmap":t=s0(e);break;case"raster":t=i0(e);break;case"image":t=l0(e);break;default:return console.warn(`[aimapui] Unknown layer type: ${e.type}`),null}return Kt(t)}function Kt(e,n){var h;const t=p1[e.type];if(!t)throw new Error(`[aimapui] L7 layer class "${e.type}" not found`);const r=new t({...e.schema.zIndex!==void 0?{zIndex:e.schema.zIndex}:{},...e.schema.name?{name:e.schema.name}:{}}),{data:o,options:i}=e.sourceConfig;i?r.source(o,i):r.source(o);const{color:s,size:a,shape:c,style:d}=e.visual;if(s&&(s.field&&s.values?r.color(s.field,s.values):s.values&&r.color(s.values)),a&&(a.field&&a.values?r.size(a.field,a.values):a.values!==void 0&&r.size(a.values)),c&&(c.field&&c.values?r.shape(c.field,c.values):c.values&&r.shape(c.values)),d&&Object.keys(d).length>0&&r.style(d),e.type==="PointLayer"&&!c&&r.shape("circle"),e.type==="LineLayer"&&!c&&r.shape("line"),e.schema.filterField&&e.schema.filterValues){const y=e.schema.filterField,f=e.schema.filterValues;r.filter(y,g=>f.includes(g))}return(h=e.schema.animate)!=null&&h.enable&&r.animate(!0,e.schema.animate),e.schema.active&&r.active(e.schema.active),e.schema.select&&r.select(e.schema.select),e.schema.opacity!==void 0&&r.style({opacity:e.schema.opacity}),e.schema.blend&&r.blend(e.schema.blend),e.schema.visible===!1&&r.hide(),e.schema.minZoom!==void 0&&r.minZoom(e.schema.minZoom),e.schema.maxZoom!==void 0&&r.maxZoom(e.schema.maxZoom),r}function q1(e,n,t){var a,c,d,h,y,f,g,p;const r=t,o=Number.isFinite((a=r==null?void 0:r.lnglat)==null?void 0:a.lng)?r.lnglat.lng:Number.isFinite((c=r==null?void 0:r.lngLat)==null?void 0:c.lng)?r.lngLat.lng:Number.isFinite((d=r==null?void 0:r.coordinate)==null?void 0:d.lng)?r.coordinate.lng:0,i=Number.isFinite((h=r==null?void 0:r.lnglat)==null?void 0:h.lat)?r.lnglat.lat:Number.isFinite((y=r==null?void 0:r.lngLat)==null?void 0:y.lat)?r.lngLat.lat:Number.isFinite((f=r==null?void 0:r.coordinate)==null?void 0:f.lat)?r.coordinate.lat:0,s=((g=r==null?void 0:r.feature)==null?void 0:g.properties)??(r==null?void 0:r.feature)??((p=r==null?void 0:r.data)==null?void 0:p.properties)??(r==null?void 0:r.data)??void 0;return{layerId:e,layerType:n,originalEvent:t,lng:o,lat:i,feature:s}}function V1({schema:e,scene:n,eventHandlers:t,onLayerCreated:r}){const o=u.useRef(null),i=te(),s=u.useRef(t);s.current=t;const a=u.useMemo(()=>{const{source:h,...y}=e;let f;if(ArrayBuffer.isView(h))f=`TypedArray:${h.length}`;else if(h&&typeof h=="object"&&"width"in h){const g=h;f=`Rasters:${g.width}x${g.height}:${g.length}`}else if(typeof h=="string")f=h;else try{f=JSON.stringify(h)}catch{f=String(h)}return f+"|"+Qt(y)},[e]),[c,d]=u.useState({visible:!1,lng:0,lat:0,content:"",trigger:"click"});return u.useEffect(()=>{var P,M,A,O;const h=Xt(e);if(!h)return;let y=!1;o.current=h;const f=e.id??e.name??`layer-${e.type}`,g=e.events,p=!!(g!=null&&g.enablePopup),C=(g==null?void 0:g.popupTrigger)??"click",L=V=>{if(!p)return;const D=V.feature;if(!D)return;const _=Rt(D,g==null?void 0:g.popupFields,g==null?void 0:g.popupTemplate);d({visible:!0,lng:V.lng,lat:V.lat,content:_,trigger:C})},w=()=>{d(V=>({...V,visible:!1}))},S=!!((P=s.current)!=null&&P.onClick||g!=null&&g.click||p&&C==="click"),x=!!((M=s.current)!=null&&M.onMouseMove||g!=null&&g.mousemove||p&&C==="hover"),Z=!!((A=s.current)!=null&&A.onMouseEnter||g!=null&&g.mouseenter),z=!!((O=s.current)!=null&&O.onMouseLeave||g!=null&&g.mouseleave||p&&C==="hover");return S&&h.on("click",V=>{var _,F;const D=q1(f,e.type,V);(F=(_=s.current)==null?void 0:_.onClick)==null||F.call(_,D),g!=null&&g.click&&i.emit(g.click,D),C==="click"&&L(D)}),x&&h.on("mousemove",V=>{var _,F;const D=q1(f,e.type,V);(F=(_=s.current)==null?void 0:_.onMouseMove)==null||F.call(_,D),C==="hover"&&L(D),g!=null&&g.mousemove&&i.emit(g.mousemove,D)}),Z&&h.on("mouseenter",V=>{var _,F;const D=q1(f,e.type,V);(F=(_=s.current)==null?void 0:_.onMouseEnter)==null||F.call(_,D),g!=null&&g.mouseenter&&i.emit(g.mouseenter,D)}),z&&h.on("mouseleave",V=>{var _,F;const D=q1(f,e.type,V);(F=(_=s.current)==null?void 0:_.onMouseLeave)==null||F.call(_,D),C==="hover"&&w(),g!=null&&g.mouseleave&&i.emit(g.mouseleave,D)}),n.addLayer(h),r==null||r(h),h.on("inited",()=>{var V,D;if(!y){if(e.autoFit){const _=(D=(V=h.getSource)==null?void 0:V.call(h))==null?void 0:D.extent;if(_&&Array.isArray(_)&&_.length>=4){const[F,b,H,B]=_;isFinite(F)&&isFinite(b)&&isFinite(H)&&isFinite(B)&&F<H&&b<B&&n.fitBounds([[F,b],[H,B]])}}n.render()}}),()=>{if(y=!0,o.current){try{n.removeLayer(o.current)}catch{}o.current=null}d(V=>({...V,visible:!1}))}},[a,n,i]),u.useEffect(()=>{o.current&&(e.visible===!1?o.current.hide():o.current.show(),e.zIndex!==void 0&&(o.current.zIndex=e.zIndex))},[e.visible,e.zIndex]),c.visible?c.trigger==="hover"?l.jsx(ie,{longitude:c.lng,latitude:c.lat,content:c.content,variant:"dark",placement:"top",visible:!0}):l.jsx(_1,{longitude:c.lng,latitude:c.lat,content:c.content,closeButton:!0,size:"compact",onClose:()=>d(h=>({...h,visible:!1}))}):null}function Qt(e){return JSON.stringify(le(e))}function le(e){if(ArrayBuffer.isView(e))return`[TypedArray:${e.length}]`;if(e instanceof ArrayBuffer)return`[ArrayBuffer:${e.byteLength}]`;if(Array.isArray(e))return e.length>1e3?`[Array:${e.length}]`:e.map(le);if(e&&typeof e=="object"){const n=e,t=Object.keys(n).sort(),r={};return t.forEach(o=>{r[o]=le(n[o])}),r}return e}function Rt(e,n,t){return t?t.replace(/\{\{(\w+)\}\}/g,(i,s)=>String(e[s]??"")):`<table style="font-size:12px">${(n??Object.keys(e).filter(i=>!["_id","id","geometry","coordinates"].includes(i))).map(i=>`<tr><td style="font-weight:600;padding-right:8px">${i}</td><td>${e[i]??""}</td></tr>`).join("")}</table>`}function a0({layers:e,eventHandlers:n}){const t=h1();return t?l.jsx(l.Fragment,{children:e.map((r,o)=>l.jsx(V1,{schema:r,scene:t,eventHandlers:n},r.id??`layer-${o}`))}):null}const c0=u.createContext(!1);function v1(){return u.useContext(c0)}const ae=new Set,y1={mark(e){e&&typeof e=="object"&&"$$typeof"in e&&ae.add(e),e&&typeof e=="function"&&ae.add(e)},check(e){if("position"in e.props)return!0;const n=e.type;if(ae.has(n))return!0;const t=n==null?void 0:n.displayName;return!!(typeof t=="string"&&t.endsWith("Control"))}};function ce({children:e,className:n,style:t}){const{controlGroups:r,otherChildren:o}=en(e);return l.jsx(c0.Provider,{value:!0,children:l.jsxs("div",{className:`l7-control-container${n?` ${n}`:""}`,style:t,children:[Object.entries(r).map(([i,s])=>{const a=nn(i);return l.jsx("div",{className:`l7-control-anchor ${a}`,children:s},i)}),o]})})}function en(e){const n={},t=[];return u.Children.forEach(e,(r,o)=>{var i;if(!u.isValidElement(r)){t.push(r);return}if(y1.check(r)){const s=((i=r.props)==null?void 0:i.position)??"topright";n[s]||(n[s]=[]),n[s].push(r)}else t.push(u.isValidElement(r)?u.cloneElement(r,{key:r.key??`non-ctrl-${o}`}):r)}),{controlGroups:n,otherChildren:t}}function tn(e){switch(e){case"topleft":return{vSide:"top",hSide:"left",direction:"column"};case"topright":return{vSide:"top",hSide:"right",direction:"column"};case"bottomleft":return{vSide:"bottom",hSide:"left",direction:"column"};case"bottomright":return{vSide:"bottom",hSide:"right",direction:"column"};case"topcenter":return{vSide:"top",hSide:"left",direction:"row"};case"bottomcenter":return{vSide:"bottom",hSide:"left",direction:"row"};case"lefttop":return{vSide:"top",hSide:"left",direction:"row"};case"leftbottom":return{vSide:"bottom",hSide:"left",direction:"row"};case"righttop":return{vSide:"top",hSide:"right",direction:"row"};case"rightbottom":return{vSide:"bottom",hSide:"right",direction:"row"};default:return{vSide:"top",hSide:"right",direction:"column"}}}function nn(e){if(e==="rightcenter")return"l7-rightcenter l7-column";if(e==="leftcenter")return"l7-leftcenter l7-column";const{vSide:n,hSide:t,direction:r}=tn(e);return`l7-${n} l7-${t} l7-${r}`}function L1(e){const n=h1(),t=u.useMemo(()=>{if(!n)return null;try{return n.mapService??null}catch{return null}},[n]),r=u.useCallback(()=>{var i;if(!n)return null;try{return t&&typeof t.getContainer=="function"?t.getContainer():((i=n.getContainer)==null?void 0:i.call(n))??null}catch{return null}},[n,t]),o=u.useMemo(()=>{if(e==="rightcenter")return"l7-rightcenter l7-column";if(e==="leftcenter")return"l7-leftcenter l7-column";const{vSide:i,hSide:s,direction:a}=rn(e??"topright");return`l7-${i} l7-${s} l7-${a}`},[e]);return{scene:n,mapsService:t,getMapContainer:r,positionClassName:o}}function rn(e){switch(e){case"topleft":return{vSide:"top",hSide:"left",direction:"column"};case"topright":return{vSide:"top",hSide:"right",direction:"column"};case"bottomleft":return{vSide:"bottom",hSide:"left",direction:"column"};case"bottomright":return{vSide:"bottom",hSide:"right",direction:"column"};case"topcenter":return{vSide:"top",hSide:"left",direction:"row"};case"bottomcenter":return{vSide:"bottom",hSide:"left",direction:"row"};case"lefttop":return{vSide:"top",hSide:"left",direction:"row"};case"leftbottom":return{vSide:"bottom",hSide:"left",direction:"row"};case"righttop":return{vSide:"top",hSide:"right",direction:"row"};case"rightbottom":return{vSide:"bottom",hSide:"right",direction:"row"};case"rightcenter":return{vSide:"top",hSide:"right",direction:"column"};case"leftcenter":return{vSide:"top",hSide:"left",direction:"column"};default:return{vSide:"top",hSide:"right",direction:"column"}}}function ue({position:e="bottomright",zoomInText:n,zoomInTitle:t="Zoom in",zoomOutText:r,zoomOutTitle:o="Zoom out",showZoom:i=!1,className:s,style:a}){const{mapsService:c,positionClassName:d}=L1(e),h=v1(),[y,f]=u.useState(0),[g,p]=u.useState(!0),[C,L]=u.useState(!0),w=u.useRef(()=>{if(!c)return;const z=Math.floor(c.getZoom());f(z),p(c.getZoom()<c.getMaxZoom()),L(c.getZoom()>c.getMinZoom())});u.useEffect(()=>{if(!c)return;w.current();const z=()=>w.current();return c.on("zoomend",z),c.on("zoomchange",z),()=>{c.off("zoomend",z),c.off("zoomchange",z)}},[c]);const S=()=>{c&&c.getZoom()<c.getMaxZoom()&&c.zoomIn()},x=()=>{c&&c.getZoom()>c.getMinZoom()&&c.zoomOut()},Z=l.jsxs("div",{className:`l7-control l7-control-zoom l7-control--glass${s?` ${s}`:""}`,style:a,children:[l.jsx("button",{className:"l7-button-control",onClick:S,disabled:!g,title:t,"aria-label":t,children:n??l.jsx("span",{className:"material-symbols-outlined",children:"add"})}),i&&l.jsx("button",{className:"l7-button-control l7-control-zoom__number",disabled:!0,children:y}),l.jsx("button",{className:"l7-button-control",onClick:x,disabled:!C,title:o,"aria-label":o,children:r??l.jsx("span",{className:"material-symbols-outlined",children:"remove"})})]});return h?Z:l.jsx("div",{className:`l7-control-anchor ${d}`,children:Z})}y1.mark(ue);function on(e,n){const[t,r]=e,[o,i]=n,s=63710088e-1,a=(i-r)*Math.PI/180,c=(o-t)*Math.PI/180,d=Math.sin(a/2)*Math.sin(a/2)+Math.cos(r*Math.PI/180)*Math.cos(i*Math.PI/180)*Math.sin(c/2)*Math.sin(c/2),h=2*Math.atan2(Math.sqrt(d),Math.sqrt(1-d));return s*h}function de(e){const n=Math.pow(10,Math.floor(Math.abs(e)).toString().length-1);let t=e/n;return t=t>=10?10:t>=5?5:t>=3?3:t>=2?2:1,n*t}function he({position:e="bottomleft",maxWidth:n=100,metric:t=!0,imperial:r=!1,updateWhenIdle:o=!1,className:i,style:s}){const{mapsService:a,positionClassName:c}=L1(e),d=v1(),[h,y]=u.useState([]),f=u.useRef(()=>{if(a)try{const C=a.getSize()[1]/2,L=a.containerToLngLat([0,C]),w=a.containerToLngLat([n,C]);if(!L||!w)return;const S=on([L.lng,L.lat],[w.lng,w.lat]),x=[];if(t&&S){const Z=de(S),z=Z<1e3?`${Z} m`:`${Z/1e3} km`;x.push({text:z,width:Math.round(n*(Z/S))})}if(r&&S){const Z=S*3.2808399;if(Z>5280){const z=Z/5280,P=de(z);x.push({text:`${P} mi`,width:Math.round(n*(P/z))})}else{const z=de(Z);x.push({text:`${z} ft`,width:Math.round(n*(z/Z))})}}y(x)}catch{}});u.useEffect(()=>{if(!a)return;f.current();const p=()=>f.current(),C=o?"moveend":"mapmove",L=o?"zoomend":"zoomchange";return a.on(C,p),a.on(L,p),()=>{a.off(C,p),a.off(L,p)}},[a,n,t,r,o]);const g=l.jsx("div",{className:`l7-control l7-control-scale l7-control--glass${i?` ${i}`:""}`,style:s,children:h.map((p,C)=>l.jsx("div",{className:"l7-control-scale-line",style:{width:p.width},children:p.text},C))});return d?g:l.jsx("div",{className:`l7-control-anchor ${c}`,children:g})}y1.mark(he);function fe({position:e="topright",container:n,className:t,style:r}){const{getMapContainer:o,positionClassName:i}=L1(e),s=v1(),[a,c]=u.useState(!1),d=u.useCallback(()=>n??o()??document.documentElement,[n,o]),h=u.useCallback(()=>{const f=d();a?document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen&&document.webkitExitFullscreen():f.requestFullscreen?f.requestFullscreen():f.webkitRequestFullscreen&&f.webkitRequestFullscreen()},[a,d]);u.useEffect(()=>{const f=()=>{c(!!document.fullscreenElement)};return document.addEventListener("fullscreenchange",f),()=>document.removeEventListener("fullscreenchange",f)},[]);const y=l.jsx("div",{className:`l7-control l7-control--glass${t?` ${t}`:""}`,style:r,children:l.jsx("button",{className:"l7-button-control",onClick:h,title:a?"退出全屏":"全屏","aria-label":a?"退出全屏":"全屏",children:l.jsx("span",{className:"material-symbols-outlined",children:a?"fullscreen_exit":"fullscreen"})})});return s?y:l.jsx("div",{className:`l7-control-anchor ${i}`,children:y})}y1.mark(fe);function pe({position:e="topright",transform:n,className:t,style:r}){const{mapsService:o,positionClassName:i}=L1(e),s=v1(),a=u.useCallback(async()=>{if(!window.navigator.geolocation){console.warn("[aimapui] Geolocation is not supported by this browser");return}if(o)try{const d=await new Promise((C,L)=>{window.navigator.geolocation.getCurrentPosition(({coords:w})=>C(w),w=>L(w))}),{longitude:h,latitude:y}=d;if(isNaN(h)||isNaN(y))return;const f=[h,y],g=n?await n(f):f,p=o.getZoom();o.setZoomAndCenter(p>15?p:15,g)}catch(d){console.warn("[aimapui] Geolocation error:",d)}},[o,n]),c=l.jsx("div",{className:`l7-control l7-control--glass${t?` ${t}`:""}`,style:r,children:l.jsx("button",{className:"l7-button-control",onClick:a,title:"定位","aria-label":"定位",children:l.jsx("span",{className:"material-symbols-outlined",children:"my_location"})})});return s?c:l.jsx("div",{className:`l7-control-anchor ${i}`,children:c})}y1.mark(pe);const ge=[{text:"Standard",value:"normal",preview:"linear-gradient(135deg, #e8e8e8 0%, #c8d8e8 40%, #a8c8d8 100%)"},{text:"Light",value:"light",preview:"linear-gradient(135deg, #f0f4f8 0%, #d6e4f0 40%, #e8eff5 100%)"},{text:"Dark",value:"dark",preview:"linear-gradient(135deg, #0d1b2a 0%, #1b2838 40%, #162032 100%)"},{text:"Dark Blue",value:"darkblue",preview:"linear-gradient(135deg, #0a1628 0%, #0f2040 40%, #091a30 100%)"},{text:"Satellite",value:"satellite",preview:"linear-gradient(135deg, #1a3a1a 0%, #2d5a2d 40%, #1d4a2d 100%)"},{text:"Fresh",value:"fresh",preview:"linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 40%, #d4edda 100%)"}],sn=[{text:"Positron",value:"https://tiles.openfreemap.org/styles/positron",preview:"linear-gradient(135deg, #f2f3f0 0%, #d8dcd6 40%, #e8ebe5 100%)"},{text:"Bright",value:"https://tiles.openfreemap.org/styles/bright",preview:"linear-gradient(135deg, #e8e8e8 0%, #c8d8e8 40%, #a8c8d8 100%)"},{text:"Dark",value:"https://tiles.openfreemap.org/styles/dark",preview:"linear-gradient(135deg, #1a1a2e 0%, #16213e 40%, #0f3460 100%)"},{text:"Liberty",value:"https://tiles.openfreemap.org/styles/liberty",preview:"linear-gradient(135deg, #f0ece2 0%, #dfd7c8 40%, #c8bfad 100%)"},{text:"Fiord",value:"https://tiles.openfreemap.org/styles/fiord",preview:"linear-gradient(135deg, #2c3e50 0%, #34495e 40%, #415b76 100%)"}],ln=[{text:"Light",value:"light",preview:"linear-gradient(135deg, #f0f4f8 0%, #d6e4f0 40%, #e8eff5 100%)"},{text:"Dark",value:"dark",preview:"linear-gradient(135deg, #0d1b2a 0%, #1b2838 40%, #162032 100%)"},{text:"Normal",value:"normal",preview:"linear-gradient(135deg, #e8e8e8 0%, #c8d8e8 40%, #a8c8d8 100%)"}];function ye({position:e="topright",options:n,defaultValue:t,onThemeChange:r,className:o,style:i}){const{mapsService:s,positionClassName:a}=L1(e),c=v1(),[d,h]=u.useState(!1),[y,f]=u.useState(t??""),[g,p]=u.useState(n??[]),C=u.useRef(null);u.useEffect(()=>{var x;if(n&&n.length>0){p(n);return}if(s){try{const Z=(x=s.getMapStyleConfig)==null?void 0:x.call(s);if(Z&&typeof Z=="object"){const z=Object.entries(Z).filter(([,P])=>typeof P=="string").map(([P,M])=>{const A=ge.find(O=>O.value===M);return{text:P,value:M,preview:A==null?void 0:A.preview}});if(z.length>0){p(z);return}}}catch{}p(ge)}},[s,n]),u.useEffect(()=>{var x;if(t){f(t);return}if(s)try{const Z=(x=s.getMapStyle)==null?void 0:x.call(s);Z&&f(Z)}catch{}},[s,t]),u.useEffect(()=>{if(!d)return;const x=Z=>{C.current&&!C.current.contains(Z.target)&&h(!1)};return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[d]);const L=u.useCallback(x=>{if(f(x),s)try{s.setMapStyle(x)}catch{}r==null||r(x)},[s,r]),w=an(e),S=l.jsxs("div",{ref:C,className:`l7-control l7-control--glass${o?` ${o}`:""}`,style:i,children:[l.jsx("button",{className:"l7-button-control",onClick:()=>h(!d),title:"地图样式","aria-label":"地图样式",children:l.jsx("span",{className:"material-symbols-outlined",children:"palette"})}),d&&g.length>0&&l.jsx("div",{className:`l7-popper ${w}`,children:l.jsxs("div",{className:"l7-popper-content l7-theme-panel",children:[l.jsxs("div",{className:"l7-theme-panel__title",children:[l.jsx("span",{className:"material-symbols-outlined",style:{fontSize:16},children:"palette"}),"Map Themes"]}),l.jsx("div",{className:"l7-theme-panel__grid",children:g.map(x=>{const Z=y===x.value,z=x.preview??"linear-gradient(135deg, #e0e0e0 0%, #bdbdbd 100%)";return l.jsxs("button",{className:`l7-theme-card${Z?" l7-theme-card--active":""}`,onClick:()=>L(x.value),title:x.text,children:[l.jsx("div",{className:"l7-theme-card__preview",style:{background:z}}),Z&&l.jsx("span",{className:"material-symbols-outlined l7-theme-card__check",style:{fontVariationSettings:"'FILL' 1"},children:"check_circle"}),l.jsx("span",{className:"l7-theme-card__label",children:x.text})]},x.value)})})]})})]});return c?S:l.jsx("div",{className:`l7-control-anchor ${a}`,children:S})}function an(e){switch(e){case"topleft":return"l7-popper-right l7-popper-start";case"topright":return"l7-popper-left l7-popper-start";case"bottomleft":return"l7-popper-right l7-popper-end";case"bottomright":return"l7-popper-left l7-popper-end";case"lefttop":return"l7-popper-bottom l7-popper-start";case"leftbottom":return"l7-popper-top l7-popper-start";case"righttop":return"l7-popper-bottom l7-popper-end";case"rightbottom":return"l7-popper-top l7-popper-end";default:return"l7-popper-bottom"}}y1.mark(ye);function me({position:e="bottomleft",precision:n=6,transform:t,className:r,style:o}){const s=t??(([f,g])=>[+f.toFixed(n),+g.toFixed(n)]),{mapsService:a,positionClassName:c}=L1(e),d=v1(),h=u.useRef(null);u.useEffect(()=>{if(!a)return;const f=g=>{const p=g.lngLat??g.lnglat;if(!p)return;const C=[p.lng,p.lat],L=s(C);h.current&&(h.current.innerText=L.join(", "))};return a.on("mousemove",f),()=>{a.off("mousemove",f)}},[a,s]);const y=l.jsx("div",{ref:h,className:`l7-control l7-control-mouse-location l7-control--glass${r?` ${r}`:""}`,style:o,children:" "});return d?y:l.jsx("div",{className:`l7-control-anchor ${c}`,children:y})}y1.mark(me);function Ce({position:e="topright",format:n="png",onExport:t,className:r,style:o}){const{scene:i,mapsService:s,positionClassName:a}=L1(e),c=v1(),d=n==="jpg"?"jpeg":"png",h=u.useCallback(async()=>{var g,p;try{const C=s?await((g=s.exportMap)==null?void 0:g.call(s,d)):void 0,L=i?await((p=i.exportPng)==null?void 0:p.call(i,d)):void 0,w=[C,L].filter(S=>!!S);return w.length===0?void 0:w.length===1?w[0]:cn(w,d)}catch{return}},[i,s,d]),y=u.useCallback(async()=>{var p;const g=await h();if(t&&g){t(g);return}if(g){const C=document.createElement("a");C.download=`aimap-export.${d==="jpeg"?"jpg":"png"}`,C.href=g,C.click()}else try{if(s){const C=(p=s.getContainer)==null?void 0:p.call(s),L=C==null?void 0:C.querySelector("canvas");if(L&&typeof L.toDataURL=="function"){const w=L.toDataURL(`image/${d}`),S=document.createElement("a");S.download=`aimap-export.${d==="jpeg"?"jpg":"png"}`,S.href=w,S.click()}}}catch(C){console.warn("[aimapui] Export image failed:",C)}},[h,t,d,s]),f=l.jsx("div",{className:`l7-control l7-control--glass${r?` ${r}`:""}`,style:o,children:l.jsx("button",{className:"l7-button-control",onClick:y,title:"导出图片","aria-label":"导出图片",children:l.jsx("span",{className:"material-symbols-outlined",children:"photo_camera"})})});return c?f:l.jsx("div",{className:`l7-control-anchor ${a}`,children:f})}async function cn(e,n){const t=document.querySelector(".l7-map")||document.documentElement,{width:r=0,height:o=0}=t.getBoundingClientRect(),i=document.createElement("canvas");i.width=r,i.height=o;const s=i.getContext("2d");return(await Promise.all(e.map(c=>new Promise(d=>{const h=new Image;h.onload=()=>d(h),h.src=c})))).forEach(c=>{s==null||s.drawImage(c,0,0,r,o)}),i.toDataURL(`image/${n}`)}y1.mark(Ce);function ve({position:e="topright",layers:n,onToggle:t,onOpacityChange:r,className:o,style:i}){const[s,a]=u.useState(!1),c=u.useRef(null),[d,h]=u.useState(()=>{const L={};return n.forEach(w=>{L[w.id]=w.opacity??1}),L});u.useEffect(()=>{h(L=>{const w={...L};return n.forEach(S=>{S.opacity!==void 0&&(w[S.id]=S.opacity)}),w})},[n]);const{positionClassName:y}=L1(e),f=v1();if(u.useEffect(()=>{if(!s)return;const L=w=>{c.current&&!c.current.contains(w.target)&&a(!1)};return document.addEventListener("mousedown",L),()=>document.removeEventListener("mousedown",L)},[s]),!n.length)return null;const g=un(e),p=(L,w)=>{h(S=>({...S,[L]:w})),r==null||r(L,w)},C=l.jsxs("div",{ref:c,className:`l7-control l7-control--glass${o?` ${o}`:""}`,style:i,children:[l.jsx("button",{className:"l7-button-control",onClick:()=>a(!s),title:"图层控制","aria-label":"图层控制",children:l.jsx("span",{className:"material-symbols-outlined",children:"layers"})}),s&&l.jsx("div",{className:`l7-popper ${g}`,children:l.jsxs("div",{className:"l7-popper-content l7-layer-panel",children:[l.jsxs("div",{className:"l7-layer-panel__title",children:[l.jsx("span",{className:"material-symbols-outlined",style:{fontSize:16},children:"layers"}),"Layers"]}),l.jsx("div",{className:"l7-layer-panel__list",children:n.map(L=>{const w=L.visible!==!1,S=d[L.id]??L.opacity??1,x=L.icon??"layers";return l.jsxs("div",{className:`l7-layer-item${w?"":" l7-layer-item--disabled"}`,children:[l.jsxs("div",{className:"l7-layer-item__header",children:[l.jsx("span",{className:"material-symbols-outlined l7-layer-item__icon",children:x}),l.jsx("span",{className:"l7-layer-item__name",children:L.name??L.id}),l.jsxs("label",{className:"l7-layer-toggle",children:[l.jsx("input",{type:"checkbox",checked:w,onChange:()=>t(L.id,!w)}),l.jsx("span",{className:"l7-layer-toggle__track"})]})]}),r&&l.jsxs("div",{className:"l7-layer-item__slider",children:[l.jsx("span",{className:"material-symbols-outlined",style:{fontSize:14},children:"opacity"}),l.jsx("input",{type:"range",min:0,max:100,value:Math.round(S*100),onChange:Z=>p(L.id,+Z.target.value/100),className:"l7-layer-slider"})]})]},L.id)})})]})})]});return f?C:l.jsx("div",{className:`l7-control-anchor ${y}`,children:C})}function un(e){switch(e){case"topleft":return"l7-popper-right l7-popper-start";case"topright":return"l7-popper-left l7-popper-start";case"bottomleft":return"l7-popper-right l7-popper-end";case"bottomright":return"l7-popper-left l7-popper-end";case"lefttop":return"l7-popper-bottom l7-popper-start";case"leftbottom":return"l7-popper-top l7-popper-start";case"righttop":return"l7-popper-bottom l7-popper-end";case"rightbottom":return"l7-popper-top l7-popper-end";default:return"l7-popper-bottom"}}y1.mark(ve);function dn(e){return{mode:"none",features:e?[...e]:[],selectedFeatureId:null,isDrawing:!1,currentVertices:[],startPoint:null,mousePoint:null,dragVertexIndex:null,isDragging:!1,mergeSelectedIds:[],splitTargetId:null}}const b1={point:{color:"#ffffff",size:6,strokeColor:"#3f51b5",strokeWidth:1},line:{color:"#3f51b5",size:2,opacity:1},polygon:{fill:"#3f51b5",fillOpacity:.2,stroke:"#3f51b5",strokeWidth:2},drawing:{fill:"#3f51b5",fillOpacity:.2,stroke:"#3f51b5",strokeWidth:2,dashStroke:"#3f51b5",dashWidth:1.5,dashArray:[4,4]},selected:{stroke:"#3f51b5",strokeWidth:3,fill:"#ffb95f",fillOpacity:.12,dashArray:[6,3]},vertex:{color:"#ffffff",size:5,strokeColor:"#3f51b5",strokeWidth:1,activeColor:"#ffb95f",activeSize:6}};function hn(e){return e?{point:{...b1.point,...e.point},line:{...b1.line,...e.line},polygon:{...b1.polygon,...e.polygon},drawing:{...b1.drawing,...e.drawing},selected:{...b1.selected,...e.selected},vertex:{...b1.vertex,...e.vertex}}:{...b1}}let fn=0;function pn(){return`draw-${++fn}`}function u0(e){return{type:"LineString",coordinates:e.map(([n,t])=>[n,t])}}function d0(e){const n=e.map(([t,r])=>[t,r]);if(n.length>0){const t=n[0],r=n[n.length-1];(t[0]!==r[0]||t[1]!==r[1])&&n.push([t[0],t[1]])}return{type:"Polygon",coordinates:[n]}}function h0(e,n){const[t,r]=e,[o,i]=n;return{type:"Polygon",coordinates:[[[t,r],[o,r],[o,i],[t,i],[t,r]]]}}function f0(e,n,t=64){const[r,o]=e,i=[];for(let s=0;s<t;s++){const a=s/t*2*Math.PI,c=n/(111320*Math.cos(o*Math.PI/180))*Math.cos(a),d=n/110540*Math.sin(a);i.push([r+c,o+d])}return i.push(i[0]),{type:"Polygon",coordinates:[i]}}function gn(e){return{type:"Point",coordinates:[e[0],e[1]]}}function p0(e,n){const r=c=>c*Math.PI/180,o=r(n[1]-e[1]),i=r(n[0]-e[0]),s=Math.sin(o/2)*Math.sin(o/2)+Math.cos(r(e[1]))*Math.cos(r(n[1]))*Math.sin(i/2)*Math.sin(i/2);return 6371e3*(2*Math.atan2(Math.sqrt(s),Math.sqrt(1-s)))}function yn(e,n){const t=n.x-e.x,r=n.y-e.y;return Math.sqrt(t*t+r*r)}function S1(e,n,t){return{type:"Feature",id:pn(),geometry:e,properties:{drawType:n}}}function mn(e,n,t){const r=e.geometry,o=Cn(r,n,t);return{...e,geometry:o,properties:{...e.properties}}}function Cn(e,n,t){switch(e.type){case"Point":return{type:"Point",coordinates:[e.coordinates[0]+n,e.coordinates[1]+t]};case"LineString":return{type:"LineString",coordinates:e.coordinates.map(([r,o])=>[r+n,o+t])};case"Polygon":return{type:"Polygon",coordinates:e.coordinates.map(r=>r.map(([o,i])=>[o+n,i+t]))};default:return e}}function vn(e,n,t,r){const o=e.geometry;let i;if(o.type==="Point")i={type:"Point",coordinates:[t,r]};else if(o.type==="LineString"){const s=o.coordinates.map(a=>[...a]);n>=0&&n<s.length&&(s[n]=[t,r]),i={type:"LineString",coordinates:s}}else if(o.type==="Polygon"){const s=o.coordinates.map(d=>d.map(h=>[...h])),a=s[0],c=a.length>1&&a[0][0]===a[a.length-1][0]&&a[0][1]===a[a.length-1][1]?a.length-1:a.length;n>=0&&n<c&&(a[n]=[t,r],n===0&&(a[a.length-1]=[t,r])),i={type:"Polygon",coordinates:s}}else i=o;return{...e,geometry:i,properties:{...e.properties}}}function G1(e){const n=e.geometry,t=[];if(n.type==="Point")t.push([n.coordinates[0],n.coordinates[1]]);else if(n.type==="LineString")n.coordinates.forEach(([r,o])=>{t.push([r,o])});else if(n.type==="Polygon"){const r=n.coordinates[0];if(r&&r.length>1){const o=r[0][0]===r[r.length-1][0]&&r[0][1]===r[r.length-1][1]?r.length-1:r.length;for(let i=0;i<o;i++)t.push([r[i][0],r[i][1]])}}return t}function Y1(e){const n=e.lnglat,t=e.lngLat;if(n&&typeof n.lng=="number"&&typeof n.lat=="number")return[n.lng,n.lat];if(t&&typeof t.lng=="number"&&typeof t.lat=="number")return[t.lng,t.lat];const r=e.coordinate;return r&&typeof r[0]=="number"&&typeof r[1]=="number"?[r[0],r[1]]:null}function Ln(e){return{type:"FeatureCollection",features:e.filter(n=>n.geometry.type==="LineString")}}function bn(e){return{type:"FeatureCollection",features:e.filter(n=>n.geometry.type==="Polygon")}}function xn(e,n){const t=g0(e.coordinates[0]),r=g0(n.coordinates[0]);let o=0;const i=new Set(t.map(s=>`${s[0].toFixed(7)},${s[1].toFixed(7)}`));for(const s of r)i.has(`${s[0].toFixed(7)},${s[1].toFixed(7)}`)&&o++;if(o>=2)return!0;for(let s=0;s<t.length;s++){const a=(s+1)%t.length;for(let c=0;c<r.length;c++){const d=(c+1)%r.length;if(m0(t[s],t[a],r[c],r[d],!0))return!0}}for(const s of t)if(y0(s,r))return!0;for(const s of r)if(y0(s,t))return!0;return!1}function g0(e){const n=[],t=e.length>1&&e[0][0]===e[e.length-1][0]&&e[0][1]===e[e.length-1][1]?e.length-1:e.length;for(let r=0;r<t;r++)n.push([e[r][0],e[r][1]]);return n}function y0(e,n){let t=!1;for(let r=0,o=n.length-1;r<n.length;o=r++){const i=n[r][0],s=n[r][1],a=n[o][0],c=n[o][1];s>e[1]!=c>e[1]&&e[0]<(a-i)*(e[1]-s)/(c-s)+i&&(t=!t)}return t}function Mn(e){if(e.length<2)return null;const n=e.filter(a=>a.geometry.type==="Polygon");if(n.length<2)return null;for(let a=0;a<n.length;a++){const c=n[a].geometry;let d=!1;for(let h=0;h<n.length;h++)if(a!==h&&xn(c,n[h].geometry)){d=!0;break}if(!d)return null}const t=[];for(const a of n){const c=a.geometry.coordinates[0];if(!c)continue;const d=c.length>1&&c[0][0]===c[c.length-1][0]&&c[0][1]===c[c.length-1][1]?c.length-1:c.length;for(let h=0;h<d;h++)t.push([c[h][0],c[h][1]])}if(t.length<3)return null;const r=[],o=new Set;for(const a of t){const c=`${a[0].toFixed(6)},${a[1].toFixed(6)}`;o.has(c)||(o.add(c),r.push(a))}if(r.length<3)return null;const i=wn(r);return i.length<3?null:(i.push(i[0]),S1({type:"Polygon",coordinates:[i]},"polygon"))}function wn(e){if(e.length<3)return[...e];let n=0;for(let i=1;i<e.length;i++)(e[i][1]<e[n][1]||e[i][1]===e[n][1]&&e[i][0]<e[n][0])&&(n=i);const t=e[n],r=e.filter(i=>i[0]!==t[0]||i[1]!==t[1]).sort((i,s)=>{const a=Math.atan2(i[1]-t[1],i[0]-t[0]),c=Math.atan2(s[1]-t[1],s[0]-t[0]);if(a!==c)return a-c;const d=(i[0]-t[0])**2+(i[1]-t[1])**2,h=(s[0]-t[0])**2+(s[1]-t[1])**2;return d-h}),o=[t];for(const i of r){for(;o.length>1;){const s=o[o.length-2],a=o[o.length-1];if((a[0]-s[0])*(i[1]-s[1])-(a[1]-s[1])*(i[0]-s[0])<=0)o.pop();else break}o.push(i)}return o}function Hn(e,n){if(e.geometry.type!=="Polygon"||n.length<2)return null;const t=e.geometry.coordinates[0];if(!t||t.length<4)return null;const r=[],o=t.length>1&&t[0][0]===t[t.length-1][0]&&t[0][1]===t[t.length-1][1]?t.length-1:t.length;for(let f=0;f<o;f++)r.push([t[f][0],t[f][1]]);const i=[];for(let f=0;f<n.length-1;f++){const g=n[f],p=n[f+1];for(let C=0;C<r.length;C++){const L=(C+1)%r.length,w=r[C],S=r[L],x=m0(g,p,w,S);x&&i.push({edgeIndex:C,point:x,t:f})}}if(i.length<2)return null;i.sort((f,g)=>f.edgeIndex-g.edgeIndex);const s=i[0],a=i[i.length-1],c=[],d=[];c.push(s.point);for(let f=s.edgeIndex+1;f<=a.edgeIndex;f++)c.push(r[f%r.length]);c.push(a.point),c.push(s.point),d.push(a.point);for(let f=a.edgeIndex+1;f<r.length;f++)d.push(r[f]);for(let f=0;f<=s.edgeIndex;f++)d.push(r[f]);if(d.push(s.point),d.push(a.point),c.length<4||d.length<4)return null;const h={type:"Polygon",coordinates:[c]},y={type:"Polygon",coordinates:[d]};return[S1(h,"polygon"),S1(y,"polygon")]}function m0(e,n,t,r,o=!1){const i=n[0]-e[0],s=n[1]-e[1],a=r[0]-t[0],c=r[1]-t[1],d=i*c-s*a;if(Math.abs(d)<1e-12)return null;const h=((t[0]-e[0])*c-(t[1]-e[1])*a)/d,y=((t[0]-e[0])*s-(t[1]-e[1])*i)/d;if(o){if(h<=1e-6||h>=.999999||y<=1e-6||y>=.999999)return null}else if(h<0||h>1||y<0||y>1)return null;return[e[0]+h*i,e[1]+h*s]}const J1={type:"FeatureCollection",features:[]},g1="aimap-draw-";class Sn{constructor(n,t,r){this.featurePointLayer=null,this.featureLineLayer=null,this.featurePolygonLayer=null,this.featurePolygonOutlineLayer=null,this.drawingLineLayer=null,this.drawingDashLineLayer=null,this.drawingPolygonLayer=null,this.drawingPointLayer=null,this.selectionPolygonLayer=null,this.selectionLineLayer=null,this.selectionPointLayer=null,this.vertexLayer=null,this.midpointLayer=null,this.snapIndicatorLayer=null,this.mergeHighlightLayer=null,this.mergeHighlightOutlineLayer=null,this.splitHighlightLayer=null,this.splitHighlightOutlineLayer=null,this.tooltipEl=null,this.containerEl=null,this.hiddenFeatureId=null,this.allFeatures=[],this.onFeatureClick=null,this.onFeatureMouseDown=null,this.onVertexClick=null,this.onVertexRightClick=null,this.onEmptyClick=null,this.onMidpointClick=null,this.editClickHandlersBound=!1,this.scene=n,this.mapsService=r,this.styles={point:{...b1.point,...t==null?void 0:t.point},line:{...b1.line,...t==null?void 0:t.line},polygon:{...b1.polygon,...t==null?void 0:t.polygon},drawing:{...b1.drawing,...t==null?void 0:t.drawing},selected:{...b1.selected,...t==null?void 0:t.selected},vertex:{...b1.vertex,...t==null?void 0:t.vertex}};try{this.initTooltip()}catch{}}removeAndDestroy(n){var t;if(n){try{this.scene.removeLayer(n)}catch{}try{(t=n.destroy)==null||t.call(n)}catch{}}}addLayerWithRender(n){n.once("inited",()=>{try{this.scene.render()}catch{}}),this.scene.addLayer(n)}initTooltip(){const n=document.createElement("div");n.style.cssText=["position:fixed","pointer-events:none","z-index:9999","padding:6px 10px","border-radius:4px","background:rgba(26,27,34,0.92)","color:#f2eff9",'font:500 11px/16px "JetBrains Mono",monospace',"letter-spacing:0.02em","white-space:nowrap","display:none","flex-direction:column","gap:2px","box-shadow:0 2px 8px rgba(0,0,0,0.3)"].join(";"),document.body.appendChild(n),this.tooltipEl=n,this.containerEl=null}showTooltip(n,t,r,o){if(!this.tooltipEl)return;this.tooltipEl.innerHTML="";const i=document.createElement("div");if(i.textContent=n,i.style.cssText="color:#f2eff9;font-size:11px;line-height:16px;",this.tooltipEl.appendChild(i),o&&o.length>0){const s=document.createElement("div");s.style.cssText="display:flex;gap:8px;";for(const a of o){const c=document.createElement("span");c.textContent=a,c.style.cssText="font-size:9px;line-height:12px;color:#ffc107;font-weight:600;",s.appendChild(c)}this.tooltipEl.appendChild(s)}this.tooltipEl.style.display="flex",this.tooltipEl.style.left=`${t+16}px`,this.tooltipEl.style.top=`${r-8}px`}showSnapTooltip(n,t,r,o,i){if(!this.tooltipEl)return;this.tooltipEl.innerHTML="";const s=document.createElement("div");s.style.cssText="display:flex;gap:6px;align-items:center;";const a=document.createElement("span");a.textContent=n==="vertex"?"Vertex":"Edge",a.style.cssText="color:#ffc107;font-weight:700;font-size:10px;",s.appendChild(a);const c=document.createElement("span");c.textContent=`${r.toFixed(4)}, ${t.toFixed(4)}`,c.style.cssText="color:rgba(242,239,249,0.6);font-size:10px;",s.appendChild(c),this.tooltipEl.appendChild(s),this.tooltipEl.style.display="flex",this.tooltipEl.style.left=`${o+16}px`,this.tooltipEl.style.top=`${i-8}px`}hideTooltip(){this.tooltipEl&&(this.tooltipEl.style.display="none")}destroyTooltip(){var n;this.tooltipEl&&((n=this.tooltipEl.parentElement)==null||n.removeChild(this.tooltipEl),this.tooltipEl=null)}updateFeatures(n){this.scene&&(this.allFeatures=n,this.renderFeatures())}hideFeatureFromStatic(n){this.hiddenFeatureId=n,this.renderFeatures()}showAllFeatures(){this.hiddenFeatureId=null,this.renderFeatures()}renderFeatures(){const n=this.hiddenFeatureId?this.allFeatures.filter(s=>s.id!==this.hiddenFeatureId):this.allFeatures,t=this.styles;this.removeAndDestroy(this.featurePointLayer);const r=n.filter(s=>s.geometry.type==="Point").map(s=>{const a=s.geometry.coordinates;return{lng:a[0],lat:a[1],id:s.id,drawType:s.properties.drawType}});this.featurePointLayer=new p1.PointLayer({name:`${g1}feature-point`,zIndex:12}).source(r,{parser:{type:"json",x:"lng",y:"lat"}}).shape("circle").color(t.point.color).size(t.point.size).style({stroke:t.point.strokeColor,strokeWidth:t.point.strokeWidth}),this.addLayerWithRender(this.featurePointLayer),this.removeAndDestroy(this.featureLineLayer),this.featureLineLayer=new p1.LineLayer({name:`${g1}feature-line`,zIndex:11}).source(Ln(n)).shape("line").color(t.line.color).size(t.line.size).style({opacity:t.line.opacity}),this.addLayerWithRender(this.featureLineLayer),this.removeAndDestroy(this.featurePolygonLayer),this.featurePolygonLayer=new p1.PolygonLayer({name:`${g1}feature-polygon`,zIndex:10}).source(bn(n)).shape("fill").color(t.polygon.fill).style({opacity:t.polygon.fillOpacity}),this.addLayerWithRender(this.featurePolygonLayer),this.removeAndDestroy(this.featurePolygonOutlineLayer);const o=n.filter(s=>s.geometry.type==="Polygon"),i=o.length>0?{type:"FeatureCollection",features:o.map(s=>({type:"Feature",geometry:{type:"LineString",coordinates:s.geometry.coordinates[0]},properties:s.properties}))}:J1;this.featurePolygonOutlineLayer=new p1.LineLayer({name:`${g1}feature-polygon-outline`,zIndex:10}).source(i).shape("line").color(t.polygon.stroke).size(t.polygon.strokeWidth).style({opacity:1}),this.addLayerWithRender(this.featurePolygonOutlineLayer),this.editClickHandlersBound&&this.rebindEditClickHandlers()}showDrawingFeedback(n,t,r,o){if(!this.scene||r==="point")return;const i=this.styles;let s=J1,a=J1,c=J1,d=[];if(r==="rectangle"&&o&&t){const g=h0(o,t);c={type:"FeatureCollection",features:[{type:"Feature",geometry:g,properties:{}}]},s={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:g.coordinates[0]},properties:{}}]}}else if(r==="circle"&&o&&t){const p=z=>z*Math.PI/180,C=p(t[1]-o[1]),L=p(t[0]-o[0]),w=Math.sin(C/2)**2+Math.cos(p(o[1]))*Math.cos(p(t[1]))*Math.sin(L/2)**2,x=6371e3*(2*Math.atan2(Math.sqrt(w),Math.sqrt(1-w))),Z=f0(o,Math.max(x,1));c={type:"FeatureCollection",features:[{type:"Feature",geometry:Z,properties:{}}]},s={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:Z.coordinates[0]},properties:{}}]},d=[{lng:o[0],lat:o[1],vertexIndex:0}]}else if((r==="polyline"||r==="polygon")&&n.length>0){if(n.length>=2&&(s={type:"FeatureCollection",features:[{type:"Feature",geometry:u0(n),properties:{}}]}),t&&n.length>=1){const g=n[n.length-1],p=[{type:"Feature",geometry:{type:"LineString",coordinates:[[g[0],g[1]],[t[0],t[1]]]},properties:{}}];r==="polygon"&&n.length>=2&&p.push({type:"Feature",geometry:{type:"LineString",coordinates:[[t[0],t[1]],[n[0][0],n[0][1]]]},properties:{}}),a={type:"FeatureCollection",features:p}}if(r==="polygon"&&n.length>=2&&t){const g=[...n,t];g.length>=3&&(c={type:"FeatureCollection",features:[{type:"Feature",geometry:d0(g),properties:{}}]})}d=n.map(([g,p],C)=>({lng:g,lat:p,vertexIndex:C,isFirst:C===0}))}this.drawingLineLayer?this.drawingLineLayer.setData(s):(this.drawingLineLayer=new p1.LineLayer({name:`${g1}drawing-line`,zIndex:13}).source(s).shape("line").color(i.drawing.stroke).size(i.drawing.strokeWidth).style({opacity:1}),this.addLayerWithRender(this.drawingLineLayer));const h=i.drawing.dashArray??[4,4],y=i.drawing.dashStroke??i.drawing.stroke,f=i.drawing.dashWidth??1.5;this.drawingDashLineLayer?this.drawingDashLineLayer.setData(a):(this.drawingDashLineLayer=new p1.LineLayer({name:`${g1}drawing-dash-line`,zIndex:14}).source(a).shape("line").color(y).size(f).style({opacity:1,lineType:"dash",dashArray:h}),this.addLayerWithRender(this.drawingDashLineLayer)),this.drawingPolygonLayer?this.drawingPolygonLayer.setData(c):(this.drawingPolygonLayer=new p1.PolygonLayer({name:`${g1}drawing-polygon`,zIndex:13}).source(c).shape("fill").color(i.drawing.fill).style({opacity:i.drawing.fillOpacity}),this.addLayerWithRender(this.drawingPolygonLayer)),this.drawingPointLayer?this.drawingPointLayer.setData(d):(this.drawingPointLayer=new p1.PointLayer({name:`${g1}drawing-point`,zIndex:15}).source(d,{parser:{type:"json",x:"lng",y:"lat"}}).shape("circle").color(i.vertex.color).size(i.vertex.size).style({stroke:i.vertex.strokeColor,strokeWidth:i.vertex.strokeWidth}),this.addLayerWithRender(this.drawingPointLayer))}clearDrawingFeedback(){this.removeAndDestroy(this.drawingLineLayer),this.removeAndDestroy(this.drawingDashLineLayer),this.removeAndDestroy(this.drawingPolygonLayer),this.removeAndDestroy(this.drawingPointLayer),this.drawingLineLayer=null,this.drawingDashLineLayer=null,this.drawingPolygonLayer=null,this.drawingPointLayer=null}removeDrawingLayers(){this.clearDrawingFeedback()}updateSelectionHighlight(n){var i,s,a;if(!this.scene)return;const t=this.styles;if(this.removeAndDestroy(this.selectionPolygonLayer),this.removeAndDestroy(this.selectionLineLayer),this.removeAndDestroy(this.selectionPointLayer),!n){this.selectionPolygonLayer=null,this.selectionLineLayer=null,this.selectionPointLayer=null;return}const r={type:"FeatureCollection",features:[n]},o=t.selected.dashArray??[6,3];if(n.geometry.type==="Point")this.selectionPointLayer=new p1.PointLayer({name:`${g1}selection-point`,zIndex:15}).source([{lng:n.geometry.coordinates[0],lat:n.geometry.coordinates[1],id:n.id}],{parser:{type:"json",x:"lng",y:"lat"}}).shape("circle").color(t.selected.stroke).size((t.point.size??6)+4).style({stroke:t.selected.stroke,strokeWidth:t.selected.strokeWidth}),this.addLayerWithRender(this.selectionPointLayer);else if(n.geometry.type==="LineString")this.selectionLineLayer=new p1.LineLayer({name:`${g1}selection-line`,zIndex:15}).source(r).shape("line").color(t.selected.stroke).size(t.selected.strokeWidth).style({opacity:1,lineType:"dash",dashArray:o}),this.addLayerWithRender(this.selectionLineLayer);else if(n.geometry.type==="Polygon"){this.selectionPolygonLayer=new p1.PolygonLayer({name:`${g1}selection-polygon`,zIndex:15}).source(r).shape("fill").color(t.selected.fill).style({opacity:t.selected.fillOpacity}),this.addLayerWithRender(this.selectionPolygonLayer);const c={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:n.geometry.coordinates[0]},properties:{}}]};this.selectionLineLayer=new p1.LineLayer({name:`${g1}selection-line`,zIndex:15}).source(c).shape("line").color(t.selected.stroke).size(t.selected.strokeWidth).style({opacity:1,lineType:"dash",dashArray:o}),this.addLayerWithRender(this.selectionLineLayer)}if(this.editClickHandlersBound&&this.onFeatureMouseDown){const c=d=>{var y;const h=d.feature;if(h&&this.onFeatureMouseDown){const f=((y=h.properties)==null?void 0:y.id)??h.id;if(f){const g=d.lngLat??d.lnglat;let p=[0,0];if(g&&typeof g=="object"){const C=g;p=[C.lng??C.x??0,C.lat??C.y??0]}this.onFeatureMouseDown(String(f),p)}}};(i=this.selectionPolygonLayer)==null||i.on("mousedown",c),(s=this.selectionLineLayer)==null||s.on("mousedown",c),(a=this.selectionPointLayer)==null||a.on("mousedown",c)}}clearSelectionHighlight(){this.removeAndDestroy(this.selectionPolygonLayer),this.removeAndDestroy(this.selectionLineLayer),this.removeAndDestroy(this.selectionPointLayer),this.selectionPolygonLayer=null,this.selectionLineLayer=null,this.selectionPointLayer=null}removeSelectionLayers(){this.clearSelectionHighlight()}highlightMergeSelected(n,t){if(!this.scene)return;const r=this.styles;if(this.removeAndDestroy(this.mergeHighlightLayer),this.removeAndDestroy(this.mergeHighlightOutlineLayer),this.mergeHighlightLayer=null,this.mergeHighlightOutlineLayer=null,n.length===0)return;const o=t.filter(a=>n.includes(a.id));if(o.length===0)return;const i={type:"FeatureCollection",features:o};this.mergeHighlightLayer=new p1.PolygonLayer({name:`${g1}merge-highlight`,zIndex:15}).source(i).shape("fill").color(r.selected.fill).style({opacity:r.selected.fillOpacity}),this.addLayerWithRender(this.mergeHighlightLayer);const s=o.filter(a=>a.geometry.type==="Polygon").map(a=>({type:"Feature",geometry:{type:"LineString",coordinates:a.geometry.coordinates[0]},properties:{}}));if(s.length>0){const a={type:"FeatureCollection",features:s};this.mergeHighlightOutlineLayer=new p1.LineLayer({name:`${g1}merge-highlight-outline`,zIndex:15}).source(a).shape("line").color(r.selected.stroke).size(r.selected.strokeWidth).style({opacity:1,lineType:"dash",dashArray:r.selected.dashArray??[6,3]}),this.addLayerWithRender(this.mergeHighlightOutlineLayer)}}clearMergeHighlight(){this.removeAndDestroy(this.mergeHighlightLayer),this.removeAndDestroy(this.mergeHighlightOutlineLayer),this.mergeHighlightLayer=null,this.mergeHighlightOutlineLayer=null}highlightSplitTarget(n,t){if(!this.scene)return;const r=this.styles;this.removeAndDestroy(this.splitHighlightLayer),this.removeAndDestroy(this.splitHighlightOutlineLayer),this.splitHighlightLayer=null,this.splitHighlightOutlineLayer=null;const o=t.find(a=>a.id===n);if(!o)return;const i={type:"FeatureCollection",features:[o]};this.splitHighlightLayer=new p1.PolygonLayer({name:`${g1}split-highlight`,zIndex:15}).source(i).shape("fill").color(r.selected.fill).style({opacity:r.selected.fillOpacity}),this.addLayerWithRender(this.splitHighlightLayer);const s={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:o.geometry.coordinates[0]},properties:{}}]};this.splitHighlightOutlineLayer=new p1.LineLayer({name:`${g1}split-highlight-outline`,zIndex:15}).source(s).shape("line").color(r.selected.stroke).size(r.selected.strokeWidth).style({opacity:1,lineType:"dash",dashArray:r.selected.dashArray??[6,3]}),this.addLayerWithRender(this.splitHighlightOutlineLayer)}clearSplitHighlight(){this.removeAndDestroy(this.splitHighlightLayer),this.removeAndDestroy(this.splitHighlightOutlineLayer),this.splitHighlightLayer=null,this.splitHighlightOutlineLayer=null}updateVertexHandles(n){if(!this.scene)return;const t=this.styles;if(this.removeAndDestroy(this.vertexLayer),this.removeAndDestroy(this.midpointLayer),!n){this.vertexLayer=null,this.midpointLayer=null;return}const r=G1(n);if(r.length===0){this.vertexLayer=null,this.midpointLayer=null;return}const o=r.map(([i,s],a)=>({lng:i,lat:s,vertexIndex:a,featureId:n.id}));if(this.vertexLayer=new p1.PointLayer({name:`${g1}vertex-handles`,zIndex:16}).source(o,{parser:{type:"json",x:"lng",y:"lat"}}).shape("circle").color(t.vertex.color).size(t.vertex.size).style({stroke:t.vertex.strokeColor,strokeWidth:t.vertex.strokeWidth}),this.addLayerWithRender(this.vertexLayer),n.geometry.type==="LineString"||n.geometry.type==="Polygon"){const i=[],s=n.geometry.type==="Polygon"?r.length:r.length-1;for(let a=0;a<s;a++){const c=(a+1)%r.length;i.push({lng:(r[a][0]+r[c][0])/2,lat:(r[a][1]+r[c][1])/2,edgeIndex:a})}this.midpointLayer=new p1.PointLayer({name:`${g1}midpoint-handles`,zIndex:16}).source(i,{parser:{type:"json",x:"lng",y:"lat"}}).shape("circle").color(t.vertex.strokeColor).size(t.vertex.size-1).style({stroke:t.vertex.strokeColor,strokeWidth:.5,opacity:.5}),this.addLayerWithRender(this.midpointLayer)}else this.midpointLayer=null;this.editClickHandlersBound&&this.rebindVertexAndMidpointEvents()}clearVertexHandles(){this.removeAndDestroy(this.vertexLayer),this.removeAndDestroy(this.midpointLayer),this.vertexLayer=null,this.midpointLayer=null}removeVertexLayer(){this.clearVertexHandles()}setupEditClickHandlers(n,t,r,o,i,s){this.onFeatureClick=n,this.onVertexClick=t,this.onEmptyClick=r,this.onVertexRightClick=o??null,this.onMidpointClick=i??null,this.onFeatureMouseDown=s??null,this.editClickHandlersBound=!0,this.rebindEditClickHandlers()}rebindEditClickHandlers(){var i,s,a,c,d,h,y,f,g,p,C,L,w,S,x,Z,z,P,M,A,O,V,D,_,F;const n=b=>{var B;const H=b.feature;if(H){const Y=((B=H.properties)==null?void 0:B.id)??H.id;Y&&this.onFeatureClick&&this.onFeatureClick(String(Y))}},t=b=>{var B;const H=b.feature;if(H){const Y=((B=H.properties)==null?void 0:B.id)??H.id;if(Y&&this.onFeatureMouseDown){const t1=b.lngLat??b.lnglat;let K=[0,0];if(t1&&typeof t1=="object"){const R=t1;K=[R.lng??R.x??0,R.lat??R.y??0]}this.onFeatureMouseDown(String(Y),K)}}};(i=this.featurePointLayer)==null||i.on("click",n),(s=this.featureLineLayer)==null||s.on("click",n),(a=this.featurePolygonLayer)==null||a.on("click",n),(c=this.featurePolygonOutlineLayer)==null||c.on("click",n),(d=this.featurePointLayer)==null||d.on("mousedown",t),(h=this.featureLineLayer)==null||h.on("mousedown",t),(y=this.featurePolygonLayer)==null||y.on("mousedown",t),(f=this.featurePolygonOutlineLayer)==null||f.on("mousedown",t);const r=()=>{this.setCursorClass("l7-draw-cursor-grab")},o=()=>{this.clearEditCursors(),this.hideTooltip()};(g=this.featurePointLayer)==null||g.on("mouseenter",r),(p=this.featurePointLayer)==null||p.on("mouseleave",o),(C=this.featureLineLayer)==null||C.on("mouseenter",r),(L=this.featureLineLayer)==null||L.on("mouseleave",o),(w=this.featurePolygonLayer)==null||w.on("mouseenter",r),(S=this.featurePolygonLayer)==null||S.on("mouseleave",o),(x=this.featurePolygonOutlineLayer)==null||x.on("mouseenter",r),(Z=this.featurePolygonOutlineLayer)==null||Z.on("mouseleave",o),(z=this.selectionPolygonLayer)==null||z.on("mousedown",t),(P=this.selectionLineLayer)==null||P.on("mousedown",t),(M=this.selectionPointLayer)==null||M.on("mousedown",t),(A=this.selectionPolygonLayer)==null||A.on("mouseenter",r),(O=this.selectionPolygonLayer)==null||O.on("mouseleave",o),(V=this.selectionLineLayer)==null||V.on("mouseenter",r),(D=this.selectionLineLayer)==null||D.on("mouseleave",o),(_=this.selectionPointLayer)==null||_.on("mouseenter",r),(F=this.selectionPointLayer)==null||F.on("mouseleave",o),this.rebindVertexAndMidpointEvents()}extractClientXY(n){var s,a,c,d;const t=n.originalEvent??n.originEvent??n.e;if(t&&typeof t.clientX=="number"&&typeof t.clientY=="number")return[t.clientX,t.clientY];const r=n.x,o=n.y;if(r!==void 0&&o!==void 0){const h=(a=(s=this.mapsService)==null?void 0:s.getContainer)==null?void 0:a.call(s);if(h){const y=h.getBoundingClientRect();return[r+y.left,o+y.top]}}const i=n.pixel;if(i){const h=(d=(c=this.mapsService)==null?void 0:c.getContainer)==null?void 0:d.call(c);if(h){const y=h.getBoundingClientRect();return[(i.x??0)+y.left,(i.y??0)+y.top]}}return[0,0]}extractFeatureProp(n,t){const r=n.properties;return r&&r[t]!==void 0?r[t]:n[t]}setCursorClass(n){var r,o;const t=(o=(r=this.mapsService)==null?void 0:r.getContainer)==null?void 0:o.call(r);t&&(t.classList.remove("l7-draw-cursor-pointer","l7-draw-cursor-grab","l7-draw-cursor-move"),n&&t.classList.add(n))}clearEditCursors(){var t,r;const n=(r=(t=this.mapsService)==null?void 0:t.getContainer)==null?void 0:r.call(t);n&&n.classList.remove("l7-draw-cursor-pointer","l7-draw-cursor-grab","l7-draw-cursor-move")}rebindVertexAndMidpointEvents(){var n,t,r,o,i,s,a,c,d;(n=this.vertexLayer)==null||n.on("mouseenter",()=>{this.setCursorClass("l7-draw-cursor-pointer")}),(t=this.vertexLayer)==null||t.on("mousemove",h=>{const[y,f]=this.extractClientXY(h);(y||f)&&this.showTooltip("拖拽移动顶点,右键删除",y,f)}),(r=this.vertexLayer)==null||r.on("mouseleave",()=>{this.clearEditCursors(),this.hideTooltip()}),(o=this.midpointLayer)==null||o.on("mouseenter",()=>{this.setCursorClass("l7-draw-cursor-pointer")}),(i=this.midpointLayer)==null||i.on("mousemove",h=>{const[y,f]=this.extractClientXY(h);(y||f)&&this.showTooltip("单击添加新顶点",y,f)}),(s=this.midpointLayer)==null||s.on("mouseleave",()=>{this.clearEditCursors(),this.hideTooltip()}),(a=this.vertexLayer)==null||a.on("mousedown",h=>{var f,g,p,C;const y=h.feature;if(y&&this.onVertexClick){const L=this.extractFeatureProp(y,"vertexIndex");L!==void 0&&((g=(f=this.mapsService)==null?void 0:f.setMapStatus)==null||g.call(f,{dragEnable:!1,zoomEnable:!1}),(C=(p=h.originalEvent)==null?void 0:p.stopPropagation)==null||C.call(p),this.onVertexClick(L))}}),(c=this.vertexLayer)==null||c.on("contextmenu",h=>{var f,g;const y=h.feature;if(y&&this.onVertexRightClick){const p=this.extractFeatureProp(y,"vertexIndex");p!==void 0&&((g=(f=h.originalEvent)==null?void 0:f.preventDefault)==null||g.call(f),this.onVertexRightClick(p))}}),(d=this.midpointLayer)==null||d.on("click",h=>{const y=h.feature;if(y&&this.onMidpointClick){const f=this.extractFeatureProp(y,"edgeIndex"),g=this.extractFeatureProp(y,"lng"),p=this.extractFeatureProp(y,"lat");f!==void 0&&g!==void 0&&p!==void 0&&this.onMidpointClick(f,[g,p])}})}removeEditClickHandlers(){this.onFeatureClick=null,this.onVertexClick=null,this.onVertexRightClick=null,this.onEmptyClick=null,this.onMidpointClick=null,this.editClickHandlersBound=!1}showSnapIndicator(n,t,r){if(!this.scene)return;const o="#ffc107",i=r==="vertex"?8:6;this.removeAndDestroy(this.snapIndicatorLayer),this.snapIndicatorLayer=new p1.PointLayer({name:`${g1}snap-indicator`,zIndex:20}).source([{lng:n,lat:t}],{parser:{type:"json",x:"lng",y:"lat"}}).shape("square").color(o).size(i).style({stroke:o,strokeWidth:1.5,opacity:.9}),this.addLayerWithRender(this.snapIndicatorLayer)}hideSnapIndicator(){this.removeAndDestroy(this.snapIndicatorLayer),this.snapIndicatorLayer=null}destroy(){this.removeEditClickHandlers(),this.destroyTooltip();const n=[this.featurePointLayer,this.featureLineLayer,this.featurePolygonLayer,this.featurePolygonOutlineLayer,this.drawingLineLayer,this.drawingDashLineLayer,this.drawingPolygonLayer,this.drawingPointLayer,this.selectionPolygonLayer,this.selectionLineLayer,this.selectionPointLayer,this.vertexLayer,this.midpointLayer,this.snapIndicatorLayer];for(const t of n)this.removeAndDestroy(t);this.featurePointLayer=null,this.featureLineLayer=null,this.featurePolygonLayer=null,this.featurePolygonOutlineLayer=null,this.drawingLineLayer=null,this.drawingDashLineLayer=null,this.drawingPolygonLayer=null,this.drawingPointLayer=null,this.selectionPolygonLayer=null,this.selectionLineLayer=null,this.selectionPointLayer=null,this.vertexLayer=null,this.midpointLayer=null,this.snapIndicatorLayer=null}}const Le={enabled:!0,threshold:8,vertex:!0,edge:!0};function zn(e){return e===!1?{...Le,enabled:!1}:e===!0||e===void 0?{...Le}:{...Le,...e}}function Vn(e,n,t,r,o){if(!t.enabled||n.length===0)return{snapped:!1,lng:e[0],lat:e[1],type:"none"};const i=r(e);if(!i)return{snapped:!1,lng:e[0],lat:e[1],type:"none"};const s=t.threshold;let a=1/0,c={snapped:!1,lng:e[0],lat:e[1],type:"none"};for(const d of n){if(d.id===o)continue;const h=G1(d);if(h.length!==0){if(t.vertex)for(let y=0;y<h.length;y++){const f=r(h[y]);if(!f)continue;const g=i.x-f.x,p=i.y-f.y,C=Math.sqrt(g*g+p*p);C<s&&C<a&&(a=C,c={snapped:!0,lng:h[y][0],lat:h[y][1],type:"vertex",featureId:d.id,vertexIndex:y})}if(t.edge&&c.type!=="vertex"){const y=d.geometry.type==="Polygon"?h.length:Math.max(0,h.length-1);for(let f=0;f<y;f++){const g=(f+1)%h.length,p=r(h[f]),C=r(h[g]);if(!p||!C)continue;const L=kn(i,p,C);if(L.t>=0&&L.t<=1&&L.dist<s&&L.dist<a){const w=L.t,S=h[f][0]+w*(h[g][0]-h[f][0]),x=h[f][1]+w*(h[g][1]-h[f][1]);a=L.dist,c={snapped:!0,lng:S,lat:x,type:"edge",featureId:d.id,edgeIndex:f}}}}}}return c}function kn(e,n,t){const r=t.x-n.x,o=t.y-n.y,i=r*r+o*o;if(i===0)return{t:0,dist:Math.sqrt((e.x-n.x)**2+(e.y-n.y)**2)};let s=((e.x-n.x)*r+(e.y-n.y)*o)/i;s=Math.max(0,Math.min(1,s));const a=n.x+s*r,c=n.y+s*o,d=Math.sqrt((e.x-a)**2+(e.y-c)**2);return{t:s,dist:d}}const En=5;function k1(e){const n=e.originalEvent??e.originEvent??e.e;return(n==null?void 0:n.clientX)??e.x??0}function E1(e){const n=e.originalEvent??e.originEvent??e.e;return(n==null?void 0:n.clientY)??e.y??0}function C0(e,n,t){const r=Y1(e);if(!r)return null;const o=t(r);if(!o){for(const s of n)if(s.geometry.type==="Polygon"&&L0(r,s.geometry.coordinates[0]))return s;return null}const i=8;for(const s of n)if(s.geometry.type==="Polygon"){if(L0(r,s.geometry.coordinates[0]))return s;const a=s.geometry.coordinates[0];for(let c=0;c<a.length-1;c++)if(v0(o,a[c],a[c+1],t)<=i)return s}else if(s.geometry.type==="Point"){const a=s.geometry.coordinates,c=t(a);if(c){const d=c.x-o.x,h=c.y-o.y;if(Math.sqrt(d*d+h*h)<=i)return s}}else if(s.geometry.type==="LineString"){const a=s.geometry.coordinates;for(let c=0;c<a.length-1;c++)if(v0(o,a[c],a[c+1],t)<=i)return s}return null}function v0(e,n,t,r){const o=r(n),i=r(t);if(!o||!i)return 1/0;const s=i.x-o.x,a=i.y-o.y,c=s*s+a*a;if(c===0){const p=e.x-o.x,C=e.y-o.y;return Math.sqrt(p*p+C*C)}const d=Math.max(0,Math.min(1,((e.x-o.x)*s+(e.y-o.y)*a)/c)),h=o.x+d*s,y=o.y+d*a,f=e.x-h,g=e.y-y;return Math.sqrt(f*f+g*g)}function L0(e,n){let t=!1;for(let r=0,o=n.length-1;r<n.length;o=r++){const i=n[r][0],s=n[r][1],a=n[o][0],c=n[o][1];s>e[1]!=c>e[1]&&e[0]<(a-i)*(e[1]-s)/(c-s)+i&&(t=!t)}return t}function b0(e,n,t){const r=t[0]-n[0],o=t[1]-n[1],i=r*r+o*o;if(i===0){const d=Math.sqrt((e[0]-n[0])**2+(e[1]-n[1])**2);return{point:n,t:0,dist:d}}let s=((e[0]-n[0])*r+(e[1]-n[1])*o)/i;s=Math.max(0,Math.min(1,s));const a=[n[0]+s*r,n[1]+s*o],c=Math.sqrt((e[0]-a[0])**2+(e[1]-a[1])**2);return{point:a,t:s,dist:c}}function x0(e,n,t){if(e.geometry.type!=="LineString")return null;const r=[...e.geometry.coordinates.map(o=>[...o])];return n<0||n>=r.length-1?null:(r.splice(n+1,0,t),{...e,geometry:{type:"LineString",coordinates:r},properties:{...e.properties}})}function M0(e,n,t){if(e.geometry.type!=="Polygon")return null;const r=e.geometry.coordinates.map(a=>a.map(c=>[...c])),o=r[0],i=o.length>1&&o[0][0]===o[o.length-1][0]&&o[0][1]===o[o.length-1][1]?o.length-1:o.length;if(n<0||n>=i)return null;const s=n+1;return o.splice(s,0,t),o[0][0]===o[o.length-2][0]&&(o[0][1],o[o.length-2][1]),o[o.length-1]=[o[0][0],o[0][1]],{...e,geometry:{type:"Polygon",coordinates:r},properties:{...e.properties}}}function An(e,n){if(e.geometry.type!=="LineString")return null;const t=e.geometry.coordinates.map(r=>[...r]);return t.length<=2||n<0||n>=t.length?null:(t.splice(n,1),{...e,geometry:{type:"LineString",coordinates:t},properties:{...e.properties}})}function Zn(e,n){if(e.geometry.type!=="Polygon")return null;const t=e.geometry.coordinates.map(i=>i.map(s=>[...s])),r=t[0],o=r.length>1&&r[0][0]===r[r.length-1][0]&&r[0][1]===r[r.length-1][1]?r.length-1:r.length;return o<=3||n<0||n>=o?null:(r.splice(n,1),r[r.length-1]=[r[0][0],r[0][1]],{...e,geometry:{type:"Polygon",coordinates:t},properties:{...e.properties}})}function Pn(e){const{scene:n,mapsService:t,styles:r,snap:o,defaultFeatures:i,features:s,onDrawCreate:a,onDrawUpdate:c,onDrawDelete:d,onDrawSelect:h,onModeChange:y,onChange:f}=e,g=u.useRef(dn(i)),p=u.useRef(null),C=u.useMemo(()=>hn(r),[r]),L=u.useMemo(()=>zn(o),[o]),w=u.useRef({onDrawCreate:a,onDrawUpdate:c,onDrawDelete:d,onDrawSelect:h,onModeChange:y,onChange:f});w.current={onDrawCreate:a,onDrawUpdate:c,onDrawDelete:d,onDrawSelect:h,onModeChange:y,onChange:f};const S=u.useRef("none"),x=u.useRef(i?[...i]:[]),Z=u.useRef(null),z=s!==void 0,P=u.useRef(null),M=u.useRef(null),A=u.useRef(null),O=u.useCallback(E=>{var m;if(!t)return null;try{const k=(m=t.lngLatToContainer)==null?void 0:m.call(t,[E[0],E[1]]);if(k)return{x:k.x??k[0],y:k.y??k[1]}}catch{}return null},[t]),V=u.useCallback(E=>{var m,k,v;x.current=E,g.current.features=E,(m=p.current)==null||m.updateFeatures(E),(v=(k=w.current).onChange)==null||v.call(k,E)},[]),D=u.useCallback(E=>{var k,v;Z.current=E,g.current.selectedFeatureId=E;const m=E?x.current.find(J=>J.id===E)??null:null;(v=(k=w.current).onDrawSelect)==null||v.call(k,m)},[]);u.useEffect(()=>{if(!n)return;const E=new Sn(n,C,t);return p.current=E,x.current.length>0&&E.updateFeatures(x.current),()=>{E.destroy(),p.current=null}},[n]);const _=u.useCallback(E=>{var T,N,Q,j;const m=g.current,k=Y1(E);if(!k)return;const v=p.current;if(!v)return;const J=A.current,$=J!=null&&J.snapped?J.lng:k[0],q=J!=null&&J.snapped?J.lat:k[1],e1=S.current;if(e1==="point"){const o1=S1(gn([$,q]),"point"),c1=[...x.current,o1];V(c1),(N=(T=w.current).onDrawCreate)==null||N.call(T,[o1]);return}if(e1==="polyline"){m.currentVertices.push([$,q]),m.isDrawing=!0,v.showDrawingFeedback(m.currentVertices,m.mousePoint,e1,m.startPoint);return}if(e1==="polygon"){m.currentVertices.push([$,q]),m.isDrawing=!0,v.showDrawingFeedback(m.currentVertices,m.mousePoint,e1,m.startPoint);return}if(e1==="circle"){if(!m.startPoint)m.startPoint=[$,q],m.isDrawing=!0;else{const o1=p0(m.startPoint,[$,q]);if(o1>.5){const c1=f0(m.startPoint,o1),i1=S1(c1,"circle"),f1=[...x.current,i1];V(f1),(j=(Q=w.current).onDrawCreate)==null||j.call(Q,[i1])}m.startPoint=null,m.isDrawing=!1,v.clearDrawingFeedback()}return}if(e1==="merge"){const o1=C0(E,x.current,O);if(o1&&(o1.geometry.type==="Polygon"||o1.properties.drawType==="circle")){const c1=o1.id,i1=[...m.mergeSelectedIds],f1=i1.indexOf(c1);f1>=0?i1.splice(f1,1):i1.push(c1),m.mergeSelectedIds=i1,v.highlightMergeSelected(i1,x.current),i1.length>=2?v.showTooltip(`已选中 ${i1.length} 个面,双击合并`,k1(E),E1(E),["[ESC] 取消"]):i1.length===1&&v.showTooltip("继续点击选中更多面",k1(E),E1(E),["[ESC] 取消"])}else m.mergeSelectedIds=[],v.highlightMergeSelected([],x.current),v.showTooltip("点击面要素选中",k1(E),E1(E),["[ESC] 取消"]);return}if(e1==="split"){if(!m.splitTargetId){const o1=C0(E,x.current,O);o1&&(o1.geometry.type==="Polygon"||o1.properties.drawType==="circle")?(m.splitTargetId=o1.id,v.highlightSplitTarget(o1.id,x.current),v.showTooltip("已选目标面,单击绘制切线起点",k1(E),E1(E),["[ESC] 取消"])):v.showTooltip("先点击选择要切分的面",k1(E),E1(E),["[ESC] 取消"]);return}m.currentVertices.push([$,q]),m.isDrawing=!0,v.showDrawingFeedback(m.currentVertices,m.mousePoint,"polyline",m.startPoint),m.currentVertices.length===1?v.showTooltip("单击继续绘制切线,双击完成切分",k1(E),E1(E),["[ESC] 取消"]):v.showTooltip(`切线 ${m.currentVertices.length} 个顶点,双击完成切分`,k1(E),E1(E),["[ESC] 取消"]);return}},[V,O]),F=u.useCallback(E=>{var J,$,q,e1,T,N,Q,j,o1,c1,i1,f1,x1,T1,Z1,$1;const m=g.current,k=S.current,v=p.current;if(v){if(k==="edit"&&Z.current){Y1(E);return}if(E.originalEvent&&(($=(J=E.originalEvent).preventDefault)==null||$.call(J),(e1=(q=E.originalEvent).stopPropagation)==null||e1.call(q)),k==="merge"){if(m.mergeSelectedIds.length>=2){const H1=x.current.filter(P1=>m.mergeSelectedIds.includes(P1.id)),m1=Mn(H1);if(m1){const Fe=[...x.current.filter(Te=>!m.mergeSelectedIds.includes(Te.id)),m1];V(Fe),(N=(T=w.current).onDrawCreate)==null||N.call(T,[m1]),(j=(Q=w.current).onDrawDelete)==null||j.call(Q,H1[0])}m.mergeSelectedIds=[],v.highlightMergeSelected([],x.current),v.hideTooltip()}return}if(k==="split"&&m.splitTargetId&&m.currentVertices.length>=2){const H1=x.current.find(m1=>m1.id===m.splitTargetId);if(H1){const m1=Hn(H1,m.currentVertices);if(m1){const Fe=[...x.current.filter(Te=>Te.id!==m.splitTargetId),...m1];V(Fe),(c1=(o1=w.current).onDrawCreate)==null||c1.call(o1,m1),(f1=(i1=w.current).onDrawDelete)==null||f1.call(i1,H1)}}m.currentVertices=[],m.isDrawing=!1,m.mousePoint=null,m.splitTargetId=null,v.clearDrawingFeedback(),v.clearSplitHighlight(),v.hideTooltip();return}if(k==="polyline"&&m.currentVertices.length>=2){const H1=u0(m.currentVertices),m1=S1(H1,"polyline"),P1=[...x.current,m1];V(P1),(T1=(x1=w.current).onDrawCreate)==null||T1.call(x1,[m1]),m.currentVertices=[],m.isDrawing=!1,m.mousePoint=null,v.clearDrawingFeedback();return}if(k==="polygon"&&m.currentVertices.length>=3){const H1=d0(m.currentVertices),m1=S1(H1,"polygon"),P1=[...x.current,m1];V(P1),($1=(Z1=w.current).onDrawCreate)==null||$1.call(Z1,[m1]),m.currentVertices=[],m.isDrawing=!1,m.mousePoint=null,v.clearDrawingFeedback();return}(k==="polyline"||k==="polygon")&&(m.currentVertices=[],m.isDrawing=!1,m.mousePoint=null,v.clearDrawingFeedback())}},[V]),b=u.useCallback(E=>{const m=g.current,k=Y1(E);if(!k)return;const[v,J]=k,$=p.current,q=S.current,e1=E.originalEvent??E.originEvent??E.e,T=(e1==null?void 0:e1.clientX)??E.x??0,N=(e1==null?void 0:e1.clientY)??E.y??0;if(m.mousePoint=[v,J],$&&(T||N)){const j=A.current;if((q==="point"||q==="polyline"||q==="polygon"||q==="circle"||q==="rectangle")&&(j!=null&&j.snapped)&&j.type!=="none")$.showSnapTooltip(j.type,j.lng,j.lat,T,N);else if(q==="point")$.showTooltip("单击放置点",T,N,["[ESC] 取消"]);else if(q==="polyline")m.isDrawing?$.showTooltip("单击添加顶点,双击结束",T,N,["[ESC] 取消"]):$.showTooltip("单击开始绘制线",T,N,["[ESC] 取消"]);else if(q==="polygon")m.isDrawing?m.currentVertices.length<3?$.showTooltip("单击添加顶点",T,N,["[ESC] 取消"]):$.showTooltip("单击继续,双击闭合",T,N,["[ESC] 取消"]):$.showTooltip("单击开始绘制面",T,N,["[ESC] 取消"]);else if(q==="rectangle")m.isDragging||$.showTooltip("按住拖拽绘制矩形",T,N,["[SHIFT] 正方形","[ESC] 取消"]);else if(q==="circle")if(!m.startPoint)$.showTooltip("单击设定圆心",T,N,["[ESC] 取消"]);else{const c1=p0(m.startPoint,[v,J]),i1=c1>1e3?`${(c1/1e3).toFixed(1)} km`:`${Math.round(c1)} m`;$.showTooltip(`半径 ${i1},单击完成`,T,N,["[ESC] 取消"])}else q==="merge"?m.mergeSelectedIds.length>=2?$.showTooltip(`已选中 ${m.mergeSelectedIds.length} 个面,双击合并`,T,N,["[ESC] 取消"]):m.mergeSelectedIds.length===1?$.showTooltip("继续点击选中更多面",T,N,["[ESC] 取消"]):$.showTooltip("点击面要素选中",T,N,["[ESC] 取消"]):q==="split"?m.splitTargetId?m.isDrawing?$.showTooltip(`切线 ${m.currentVertices.length} 个顶点,双击完成切分`,T,N,["[ESC] 取消"]):$.showTooltip("单击绘制切线起点",T,N,["[ESC] 取消"]):$.showTooltip("先点击选择要切分的面",T,N,["[ESC] 取消"]):q==="edit"||$.hideTooltip()}if((q==="point"||q==="polyline"||q==="polygon"||q==="circle")&&L.enabled&&$){const j=Vn([v,J],x.current,L,O);A.current=j,j.snapped&&j.type!=="none"?($.showSnapIndicator(j.lng,j.lat,j.type),m.mousePoint=[j.lng,j.lat]):$.hideSnapIndicator()}else A.current=null,$==null||$.hideSnapIndicator();if((q==="polyline"||q==="polygon")&&m.isDrawing){$==null||$.showDrawingFeedback(m.currentVertices,m.mousePoint,q,m.startPoint);return}if(q==="circle"&&m.startPoint&&m.isDrawing){$==null||$.showDrawingFeedback(m.currentVertices,m.mousePoint,q,m.startPoint);return}if(q==="rectangle"&&m.isDragging&&m.startPoint){$==null||$.showDrawingFeedback(m.currentVertices,m.mousePoint,q,m.startPoint);return}if(q==="edit"&&m.isDragging&&m.selectedFeatureId&&m.dragVertexIndex!==null&&P.current){const j=x.current.find(o1=>o1.id===m.selectedFeatureId);if(j){const o1=vn(j,m.dragVertexIndex,v,J),c1=x.current.map(i1=>i1.id===o1.id?o1:i1);V(c1),$==null||$.updateVertexHandles(o1),$==null||$.updateSelectionHighlight(o1),P.current=[v,J]}return}if(q==="edit"&&m.isDragging&&m.selectedFeatureId&&m.dragVertexIndex===null&&P.current){const[j,o1]=P.current,c1=v-j,i1=J-o1;if(Math.abs(c1)>1e-10||Math.abs(i1)>1e-10){const f1=x.current.find(x1=>x1.id===m.selectedFeatureId);if(f1){const x1=mn(f1,c1,i1),T1=x.current.map(Z1=>Z1.id===x1.id?x1:Z1);V(T1),$==null||$.updateVertexHandles(x1),$==null||$.updateSelectionHighlight(x1),P.current=[v,J]}}return}},[V]),H=u.useCallback(E=>{var v,J;const m=g.current,k=S.current;if(t&&k==="rectangle"){const $=(v=t.getContainer)==null?void 0:v.call(t);if(!$)return;const q=$.getBoundingClientRect(),e1=E.clientX-q.left,T=E.clientY-q.top,N=(J=t.containerToLngLat)==null?void 0:J.call(t,[e1,T]);if(!N)return;m.startPoint=[N.lng,N.lat],m.isDragging=!0,M.current={x:E.clientX,y:E.clientY},t.setMapStatus({dragEnable:!1,zoomEnable:!1});return}},[t]),B=u.useCallback(E=>{var J,$,q,e1,T,N;const m=g.current,k=S.current,v=p.current;if(t){if(k==="rectangle"&&m.isDragging&&m.startPoint){const Q=(J=t.getContainer)==null?void 0:J.call(t);if(Q){const j=Q.getBoundingClientRect(),o1=E.clientX-j.left,c1=E.clientY-j.top,i1=($=t.containerToLngLat)==null?void 0:$.call(t,[o1,c1]),f1=M.current,x1=f1?yn(f1,{x:E.clientX,y:E.clientY}):1/0;if(i1&&x1>En){const T1=[i1.lng,i1.lat],Z1=h0(m.startPoint,T1),$1=S1(Z1,"rectangle"),H1=[...x.current,$1];V(H1),(e1=(q=w.current).onDrawCreate)==null||e1.call(q,[$1])}}m.startPoint=null,m.isDragging=!1,m.mousePoint=null,M.current=null,v==null||v.clearDrawingFeedback(),t.setMapStatus({dragEnable:!0,zoomEnable:!0});return}if(k==="edit"&&m.isDragging&&m.selectedFeatureId){t.setMapStatus({dragEnable:!0,zoomEnable:!0});const Q=x.current.find(j=>j.id===m.selectedFeatureId);Q&&((N=(T=w.current).onDrawUpdate)==null||N.call(T,Q)),m.isDragging=!1,m.dragVertexIndex=null,P.current=null;return}}},[t,V]),Y=u.useCallback(E=>{var k,v,J;if(S.current!=="edit")return;const m=x.current.find($=>$.id===E)??null;m&&(D(E),(k=p.current)==null||k.hideFeatureFromStatic(E),(v=p.current)==null||v.updateSelectionHighlight(m),(J=p.current)==null||J.updateVertexHandles(m))},[D]),t1=u.useCallback(E=>{if(S.current!=="edit"||!t||!Z.current)return;const m=g.current,k=x.current.find(J=>J.id===Z.current);if(!k)return;const v=G1(k);E>=0&&E<v.length&&(P.current=v[E]),m.isDragging=!0,m.dragVertexIndex=E,t.setMapStatus({dragEnable:!1,zoomEnable:!1})},[t]),K=u.useCallback((E,m)=>{if(S.current!=="edit")return;const k=g.current;k.isDragging||!x.current.find(J=>J.id===E)||k.selectedFeatureId===E&&(k.isDragging=!0,k.dragVertexIndex=null,P.current=m,t.setMapStatus({dragEnable:!1,zoomEnable:!1}))},[t]),R=u.useCallback(E=>{var v,J,$,q;if(S.current!=="edit"||!Z.current)return;const m=x.current.find(e1=>e1.id===Z.current);if(!m)return;let k=null;if(m.geometry.type==="LineString"?k=An(m,E):m.geometry.type==="Polygon"&&(k=Zn(m,E)),k){const e1=x.current.map(T=>T.id===k.id?k:T);V(e1),(J=(v=w.current).onDrawUpdate)==null||J.call(v,k),($=p.current)==null||$.updateVertexHandles(k),(q=p.current)==null||q.updateSelectionHighlight(k)}},[V]);u.useCallback(E=>{var J,$,q,e1;if(S.current!=="edit"||!Z.current)return;const m=x.current.find(T=>T.id===Z.current);if(!m)return;const k=G1(m);let v=null;if(m.geometry.type==="LineString"&&k.length>=2){let T=-1,N=1/0;for(let Q=0;Q<k.length-1;Q++){const{dist:j}=b0(E,k[Q],k[Q+1]);j<N&&(N=j,T=Q)}T>=0&&N<.001&&(v=x0(m,T,E))}else if(m.geometry.type==="Polygon"&&k.length>=3){let T=-1,N=1/0;for(let Q=0;Q<k.length;Q++){const j=(Q+1)%k.length,{dist:o1}=b0(E,k[Q],k[j]);o1<N&&(N=o1,T=Q)}T>=0&&N<.001&&(v=M0(m,T,E))}if(v){const T=x.current.map(N=>N.id===v.id?v:N);V(T),($=(J=w.current).onDrawUpdate)==null||$.call(J,v),(q=p.current)==null||q.updateVertexHandles(v),(e1=p.current)==null||e1.updateSelectionHighlight(v)}},[V]);const a1=u.useCallback((E,m)=>{var J,$,q,e1;if(S.current!=="edit"||!Z.current)return;const k=x.current.find(T=>T.id===Z.current);if(!k)return;let v=null;if(k.geometry.type==="LineString"?v=x0(k,E,m):k.geometry.type==="Polygon"&&(v=M0(k,E,m)),v){const T=x.current.map(N=>N.id===v.id?v:N);V(T),($=(J=w.current).onDrawUpdate)==null||$.call(J,v),(q=p.current)==null||q.updateVertexHandles(v),(e1=p.current)==null||e1.updateSelectionHighlight(v)}},[V]),G=u.useCallback(()=>{var E,m,k;S.current==="edit"&&Z.current&&(D(null),(E=p.current)==null||E.showAllFeatures(),(m=p.current)==null||m.clearSelectionHighlight(),(k=p.current)==null||k.clearVertexHandles())},[D]),n1=u.useCallback(E=>{var J,$,q,e1,T,N,Q;const m=S.current;if(m===E)return;const k=g.current,v=p.current;if(k.isDrawing&&(k.currentVertices=[],k.startPoint=null,k.mousePoint=null,k.isDrawing=!1,v==null||v.clearDrawingFeedback(),v==null||v.removeDrawingLayers()),m==="merge"&&(k.mergeSelectedIds=[],v==null||v.clearMergeHighlight(),v==null||v.hideTooltip()),m==="split"&&(k.splitTargetId=null,k.currentVertices=[],k.isDrawing=!1,v==null||v.clearDrawingFeedback(),v==null||v.clearSplitHighlight(),v==null||v.hideTooltip()),m==="edit"&&(D(null),v==null||v.showAllFeatures(),v==null||v.clearSelectionHighlight(),v==null||v.clearVertexHandles(),v==null||v.removeSelectionLayers(),v==null||v.removeVertexLayer(),v==null||v.removeEditClickHandlers(),v==null||v.clearEditCursors(),v==null||v.hideTooltip(),t&&t.setMapStatus({doubleClickZoom:!0})),m!=="edit"&&m!=="none"&&m!=="merge"&&m!=="split"){v==null||v.removeDrawingLayers(),v==null||v.hideTooltip(),t&&t.setMapStatus({doubleClickZoom:!0});const j=(J=t==null?void 0:t.getContainer)==null?void 0:J.call(t);j&&j.classList.remove("l7-draw-cursor-crosshair")}if(S.current=E,k.mode=E,E==="merge"){k.mergeSelectedIds=[];const j=($=t==null?void 0:t.getContainer)==null?void 0:$.call(t);j&&j.classList.add("l7-draw-cursor-crosshair")}else if(E==="split"){k.splitTargetId=null,k.currentVertices=[],k.isDrawing=!1,t&&t.setMapStatus({doubleClickZoom:!1});const j=(q=t==null?void 0:t.getContainer)==null?void 0:q.call(t);j&&j.classList.add("l7-draw-cursor-crosshair")}else if(E==="edit")v==null||v.setupEditClickHandlers(Y,t1,G,R,a1,K),t&&t.setMapStatus({doubleClickZoom:!1});else if(E!=="none"){t&&(E==="polyline"||E==="polygon")&&t.setMapStatus({doubleClickZoom:!1});const j=(e1=t==null?void 0:t.getContainer)==null?void 0:e1.call(t);j&&j.classList.add("l7-draw-cursor-crosshair")}else{const j=(T=t==null?void 0:t.getContainer)==null?void 0:T.call(t);j&&j.classList.remove("l7-draw-cursor-crosshair")}(Q=(N=w.current).onModeChange)==null||Q.call(N,E)},[t,Y,t1,G,D]),r1=u.useCallback(E=>{var J,$;const m=g.current,k=S.current,v=p.current;if(E.key==="Escape"){m.isDrawing&&(m.currentVertices=[],m.startPoint=null,m.mousePoint=null,m.isDrawing=!1,v==null||v.clearDrawingFeedback()),Z.current&&(D(null),v==null||v.showAllFeatures(),v==null||v.clearSelectionHighlight(),v==null||v.clearVertexHandles()),v==null||v.hideTooltip();return}if((E.key==="Delete"||E.key==="Backspace")&&k==="edit"&&Z.current){E.preventDefault();const q=Z.current,e1=x.current.find(T=>T.id===q);if(e1){const T=x.current.filter(N=>N.id!==q);V(T),($=(J=w.current).onDrawDelete)==null||$.call(J,e1),D(null),v==null||v.showAllFeatures(),v==null||v.clearSelectionHighlight(),v==null||v.clearVertexHandles()}return}},[V,D]);u.useEffect(()=>{var $;if(!n||!t)return;const E=q=>_(q),m=q=>F(q),k=q=>b(q),v=($=t.getContainer)==null?void 0:$.call(t);t.on("click",E),t.on("dblclick",m),t.on("mousemove",k),v&&v.addEventListener("mousedown",H),document.addEventListener("mouseup",B),document.addEventListener("keydown",r1);const J=q=>{S.current==="edit"&&q.preventDefault()};return v&&v.addEventListener("contextmenu",J),()=>{t.off("click",E),t.off("dblclick",m),t.off("mousemove",k),v&&(v.removeEventListener("mousedown",H),v.removeEventListener("contextmenu",J)),document.removeEventListener("mouseup",B),document.removeEventListener("keydown",r1);try{t.setMapStatus({dragEnable:!0,zoomEnable:!0,doubleClickZoom:!0})}catch{}v&&v.classList.remove("l7-draw-cursor-crosshair")}},[n,t,_,F,b,H,B,r1]),u.useEffect(()=>{var E;z&&s&&(x.current=[...s],g.current.features=[...s],(E=p.current)==null||E.updateFeatures(s))},[z,s]);const I=u.useCallback(E=>{var k,v;if(z)return;const m=[...x.current,...E];V(m),(v=(k=w.current).onDrawCreate)==null||v.call(k,E)},[z,V]),W=u.useCallback(E=>{var v,J,$,q,e1;if(z)return;const m=x.current.find(T=>T.id===E);if(!m)return;const k=x.current.filter(T=>T.id!==E);V(k),(J=(v=w.current).onDrawDelete)==null||J.call(v,m),Z.current===E&&(D(null),($=p.current)==null||$.showAllFeatures(),(q=p.current)==null||q.clearSelectionHighlight(),(e1=p.current)==null||e1.clearVertexHandles())},[z,V,D]),l1=u.useCallback(()=>{Z.current&&W(Z.current)},[W]),X=u.useCallback(()=>{var E,m,k;z||(V([]),D(null),(E=p.current)==null||E.showAllFeatures(),(m=p.current)==null||m.clearSelectionHighlight(),(k=p.current)==null||k.clearVertexHandles())},[z,V,D]),s1=u.useCallback(()=>[...x.current],[]),u1=u.useCallback(E=>{var m,k,v,J,$,q;if(S.current==="edit")if(E){const e1=x.current.find(T=>T.id===E)??null;D(E),e1&&((m=p.current)==null||m.hideFeatureFromStatic(E),(k=p.current)==null||k.updateSelectionHighlight(e1),(v=p.current)==null||v.updateVertexHandles(e1))}else D(null),(J=p.current)==null||J.showAllFeatures(),($=p.current)==null||$.clearSelectionHighlight(),(q=p.current)==null||q.clearVertexHandles()},[D]);return{mode:S.current,features:x.current,selectedFeatureId:Z.current,setMode:n1,addFeatures:I,deleteFeature:W,deleteSelectedFeature:l1,clearAll:X,getFeatures:s1,selectFeature:u1,layerManager:p.current}}const w0=[{mode:"point",icon:"location_on",title:"点 — 单击放置",label:"点"},{mode:"polyline",icon:"timeline",title:"线 — 单击添加顶点,双击结束",label:"线"},{mode:"polygon",icon:"pentagon",title:"面 — 单击添加顶点,双击闭合",label:"面"},{mode:"circle",icon:"radio_button_unchecked",title:"圆 — 单击圆心,再单击确定半径",label:"圆形"},{mode:"rectangle",icon:"crop_square",title:"矩形 — 按住拖拽绘制",label:"矩形"},{mode:"edit",icon:"edit_square",title:"编辑 — 选中要素后拖拽移动或编辑顶点",label:"编辑"}],H0=[{mode:"merge",icon:"call_merge",title:"合并 — 选中2+要素合并为一个",label:"合并"},{mode:"split",icon:"content_cut",title:"切分 — 绘制切线将要素分割",label:"切分"}];function S0(){const e=u.useRef(null),n=u.useCallback((r,o)=>{if(!e.current){const f=document.createElement("div");f.style.cssText=["position:fixed","pointer-events:none","z-index:9999","padding:5px 10px","border-radius:4px","background:rgba(26,27,34,0.92)","color:#f2eff9",'font:500 11px/16px "JetBrains Mono",monospace',"white-space:nowrap","box-shadow:0 2px 8px rgba(0,0,0,0.3)"].join(";"),document.body.appendChild(f),e.current=f}const i=e.current;i.textContent=o,i.style.display="block";const s=i.getBoundingClientRect(),a=r.currentTarget.getBoundingClientRect();let c=a.right+8,d=a.top+a.height/2-s.height/2;const h=window.innerWidth,y=window.innerHeight;c+s.width>h-4&&(c=a.left-s.width-8),c<4&&(c=a.left+a.width/2-s.width/2,d=a.top-s.height-8),d<4&&(d=a.bottom+8),d+s.height>y-4&&(d=a.top-s.height-8),i.style.left=`${Math.max(4,c)}px`,i.style.top=`${Math.max(4,d)}px`},[]),t=u.useCallback(()=>{e.current&&(e.current.style.display="none")},[]);return u.useEffect(()=>()=>{var r;e.current&&((r=e.current.parentElement)==null||r.removeChild(e.current),e.current=null)},[]),{showTooltip:n,hideTooltip:t}}function z0(e,n,t,r,o,i){return e.map(s=>l.jsx("button",{className:`l7-button-control ${i}${n===s.mode?" l7-button-control--active":""}`,onClick:()=>t(s.mode),onMouseEnter:a=>r(a,s.title),onMouseLeave:o,"aria-label":s.title,"aria-pressed":n===s.mode,children:l.jsx("span",{className:"material-symbols-outlined",children:s.icon})},s.mode))}const In=({activeMode:e,onModeChange:n,modes:t,showDelete:r=!0,hasSelection:o=!1,hasFeatures:i=!1,onDeleteSelected:s,onClearAll:a,className:c,style:d})=>{const{showTooltip:h,hideTooltip:y}=S0(),f=u.useMemo(()=>t?w0.filter(p=>t.includes(p.mode)):w0,[t]),g=u.useCallback(p=>{n(e===p?"none":p)},[e,n]);return l.jsxs("div",{className:`l7-control l7-control-draw l7-control--glass${c?` ${c}`:""}`,style:d,role:"toolbar","aria-label":"基础绘制工具",children:[z0(f,e,g,h,y,"l7-draw-tool-btn"),r&&e==="edit"&&o&&s&&l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"l7-draw-separator"}),l.jsx("button",{className:"l7-button-control l7-draw-action-btn",onClick:s,onMouseEnter:p=>h(p,"删除选中要素"),onMouseLeave:y,"aria-label":"删除选中要素",children:l.jsx("span",{className:"material-symbols-outlined",children:"delete"})})]}),r&&i&&a&&l.jsx("button",{className:"l7-button-control l7-draw-action-btn",onClick:a,onMouseEnter:p=>h(p,"清除所有要素"),onMouseLeave:y,"aria-label":"清除所有要素",children:l.jsx("span",{className:"material-symbols-outlined",children:"delete_sweep"})})]})},Fn=({activeMode:e,onModeChange:n,modes:t,className:r,style:o})=>{const{showTooltip:i,hideTooltip:s}=S0(),a=u.useMemo(()=>t?H0.filter(d=>t.includes(d.mode)):H0,[t]),c=u.useCallback(d=>{n(e===d?"none":d)},[e,n]);return l.jsx("div",{className:`l7-control l7-control-draw l7-control--glass${r?` ${r}`:""}`,style:o,role:"toolbar","aria-label":"高级操作工具",children:z0(a,e,c,i,s,"l7-draw-advanced-btn")})},be=u.forwardRef(function({position:n="topright",defaultFeatures:t,features:r,modes:o,showDelete:i=!0,styles:s,snap:a,className:c,style:d,onDrawCreate:h,onDrawUpdate:y,onDrawDelete:f,onDrawSelect:g,onModeChange:p,onChange:C},L){const{scene:w,mapsService:S,positionClassName:x}=L1(n),Z=v1(),z=Pn({scene:w,mapsService:S,styles:s,snap:a,defaultFeatures:t,features:r,onDrawCreate:h,onDrawUpdate:y,onDrawDelete:f,onDrawSelect:g,onModeChange:p,onChange:C}),[P,M]=u.useState("none");u.useImperativeHandle(L,()=>({setMode:z.setMode,addFeatures:z.addFeatures,deleteFeature:z.deleteFeature,clearAll:z.clearAll,getFeatures:z.getFeatures,selectFeature:z.selectFeature}),[z]);const A=u.useCallback(b=>{M(b),z.setMode(b)},[z]),O=u.useCallback(()=>{z.deleteSelectedFeature()},[z]),V=u.useCallback(()=>{z.clearAll()},[z]),D=z.selectedFeatureId!==null,_=z.features.length>0,F=l.jsxs(l.Fragment,{children:[l.jsx(In,{activeMode:P,onModeChange:A,modes:o,showDelete:i,hasSelection:D,hasFeatures:_,onDeleteSelected:O,onClearAll:V}),l.jsx(Fn,{activeMode:P,onModeChange:A,modes:o})]});return Z?l.jsx("div",{className:c,style:d,children:F}):l.jsx("div",{className:`l7-control-anchor ${x}`,children:F})});y1.mark(be);async function Tn(e){let n,t;e instanceof File?(n=URL.createObjectURL(e),t=()=>URL.revokeObjectURL(n)):n=e;const{width:r,height:o}=await Nn(n);return{url:n,width:r,height:o,revokeUrl:t}}function Nn(e){return new Promise((n,t)=>{const r=new Image;r.onload=()=>n({width:r.naturalWidth,height:r.naturalHeight}),r.onerror=()=>t(new Error("Failed to load image")),r.crossOrigin="anonymous",r.src=e})}function _n(e){return new Promise((n,t)=>{const r=new Image;r.onload=()=>n(r),r.onerror=()=>t(new Error("Failed to load image")),r.crossOrigin="anonymous",r.src=e})}function Dn(e,n,t){const r=360/Math.pow(2,n)*.3,o=r*t/2,i=r/2,[s,a]=e;return[[s-o,a+i],[s+o,a+i],[s+o,a-i],[s-o,a-i]]}function $n(e){const n=e.map(r=>r[0]),t=e.map(r=>r[1]);return[Math.min(...n),Math.min(...t),Math.max(...n),Math.max(...t)]}function On(e,n){const t=[],r=[];for(let i=0;i<4;i++){const[s,a]=e[i],[c,d]=n[i];t.push([-s,-a,-1,0,0,0,c*s,c*a]),r.push(-c),t.push([0,0,0,-s,-a,-1,d*s,d*a]),r.push(-d)}const o=Wn(t,r);return[o[0],o[1],o[2],o[3],o[4],o[5],o[6],o[7],1]}function jn(e,n,t,r){const o="naturalWidth"in e?e.naturalWidth:e.width,i="naturalHeight"in e?e.naturalHeight:e.height,s=n.map(A=>A[0]),a=n.map(A=>A[1]),c=Math.min(...s),d=Math.max(...s),h=Math.min(...a),y=Math.max(...a),f=A=>[(A[0]-c)/(d-c)*t,(y-A[1])/(y-h)*r],g=n.map(f),C=On(g,[[0,0],[o,0],[o,i],[0,i]]),L=document.createElement("canvas");L.width=t,L.height=r;const w=L.getContext("2d"),S=document.createElement("canvas");S.width=o,S.height=i;const x=S.getContext("2d");x.drawImage(e,0,0);const Z=x.getImageData(0,0,o,i),z=w.createImageData(t,r),P=Z.data,M=z.data;for(let A=0;A<r;A++)for(let O=0;O<t;O++){const V=C[6]*O+C[7]*A+C[8];if(Math.abs(V)<1e-10)continue;const D=(C[0]*O+C[1]*A+C[2])/V,_=(C[3]*O+C[4]*A+C[5])/V;if(D>=0&&D<o-1&&_>=0&&_<i-1){const F=Math.floor(D),b=Math.floor(_),H=D-F,B=_-b,Y=(b*o+F)*4,t1=(A*t+O)*4;for(let K=0;K<4;K++)M[t1+K]=Math.round(P[Y+K]*(1-H)*(1-B)+P[Y+4+K]*H*(1-B)+P[Y+o*4+K]*(1-H)*B+P[Y+o*4+4+K]*H*B)}}return w.putImageData(z,0,0),L}function Bn(e,n,t,r,o,i,s){const a=document.createElement("canvas");return a.width=r,a.height=o,a.getContext("2d").drawImage(e,n,t,r,o,0,0,r,o),new Promise((d,h)=>{a.toBlob(y=>y?d(y):h(new Error("tile export failed")),i,s)})}async function Un(e,n,t){const{outputWidth:r,outputHeight:o,cols:i,rows:s,format:a="image/png",quality:c=.92}=t,d=jn(e,n,r,o),h=n.map(M=>M[0]),y=n.map(M=>M[1]),f=Math.min(...h),g=Math.max(...h),p=Math.min(...y),C=Math.max(...y),L=[f,p,g,C],w=await new Promise((M,A)=>{d.toBlob(O=>O?M(O):A(new Error("export failed")),a,c)}),S=Math.floor(r/i),x=Math.floor(o/s),Z=(g-f)/i,z=(C-p)/s,P=[];for(let M=0;M<s;M++)for(let A=0;A<i;A++){const O=A*S,V=M*x,D=A===i-1?r-O:S,_=M===s-1?o-V:x,F=f+A*Z,b=A===i-1?g:F+Z,H=C-M*z,B=M===s-1?p:H-z,Y=[F,B,b,H],t1=[[F,H],[b,H],[b,B],[F,B]],K=await Bn(d,O,V,D,_,a,c);P.push({blob:K,row:M,col:A,extent:Y,corners:t1,width:D,height:_})}return{canvas:d,fullBlob:w,tiles:P,extent:L}}function Wn(e,n){const r=[];for(let o=0;o<8;o++)r.push([...e[o],n[o]]);for(let o=0;o<8;o++){let i=o,s=Math.abs(r[o][o]);for(let c=o+1;c<8;c++)Math.abs(r[c][o])>s&&(s=Math.abs(r[c][o]),i=c);[r[o],r[i]]=[r[i],r[o]];const a=r[o][o];if(Math.abs(a)<1e-12)throw new Error("Singular matrix in homography computation");for(let c=o;c<=8;c++)r[o][c]/=a;for(let c=0;c<8;c++){if(c===o)continue;const d=r[c][o];for(let h=o;h<=8;h++)r[c][h]-=d*r[o][h]}}return r.map(o=>o[8])}function qn({scene:e,mapsService:n,corners:t,defaultCorners:r,imageSource:o,opacity:i=.7,onCornersChange:s,onImageLoad:a}){const[c,d]=u.useState({phase:"idle",imageUrl:null,imageDimensions:null,corners:r??null,draggingCorner:null,opacity:i}),[h,y]=u.useState(null),f=u.useRef(c.corners),g=u.useRef(null),p=u.useRef(null),C=u.useRef(s);C.current=s;const L=u.useRef(null),w=t!==void 0,S=w?t:c.corners;u.useEffect(()=>{f.current=S??null},[S]),u.useEffect(()=>{w&&t&&d(b=>({...b,corners:t}))},[w,t]),u.useEffect(()=>{o&&M(o)},[o]);const[x,Z]=u.useState(S??null);u.useEffect(()=>{c.draggingCorner||Z(S??null)},[S,c.draggingCorner]),u.useEffect(()=>{if(!e||!c.imageUrl||!x){if(L.current){try{e==null||e.removeLayer(L.current)}catch{}L.current=null}return}const b=[x[0],x[1],x[2],x[3]];if(L.current){try{e.removeLayer(L.current)}catch{}L.current=null}const H=new p1.ImageLayer({zIndex:10,name:"__calibration_image__"});return H.source(c.imageUrl,{parser:{type:"image",coordinates:b}}),H.style({opacity:c.opacity}),e.addLayer(H),L.current=H,()=>{if(L.current){try{e.removeLayer(L.current)}catch{}L.current=null}}},[e,c.imageUrl,x,c.opacity]);const z=u.useCallback(()=>{if(!n||!f.current){y(null);return}try{const b=f.current.map(H=>{const B=n.lngLatToContainer([H[0],H[1]]);return[B.x,B.y]});y(b)}catch{}},[n]);u.useEffect(()=>{if(!n||!S)return;z();const b=()=>z();return n.on("camerachange",b),n.on("viewchange",b),()=>{n.off("camerachange",b),n.off("viewchange",b)}},[n,S,z]);const P=u.useCallback(b=>{var t1;if(!n)return;g.current=b,d(K=>({...K,draggingCorner:b})),n.setMapStatus({dragEnable:!1,zoomEnable:!1});const H=(t1=n.getContainer)==null?void 0:t1.call(n),B=K=>{var I;if(g.current===null||!f.current||!H)return;const R=H.getBoundingClientRect(),a1=K.clientX-R.left,G=K.clientY-R.top,n1=n.containerToLngLat([a1,G]);if(!n1)return;const r1=[...f.current];r1[g.current]=[n1.lng,n1.lat],f.current=r1,w||d(W=>({...W,corners:r1})),(I=C.current)==null||I.call(C,r1),z()},Y=()=>{g.current=null,d(K=>({...K,draggingCorner:null})),n.setMapStatus({dragEnable:!0,zoomEnable:!0}),document.removeEventListener("mousemove",B),document.removeEventListener("mouseup",Y)};document.addEventListener("mousemove",B),document.addEventListener("mouseup",Y)},[n,w,z]),M=u.useCallback(async b=>{var H,B;(H=p.current)==null||H.call(p),p.current=null;try{const Y=await Tn(b);p.current=Y.revokeUrl??null;let t1=f.current;if(!t1&&n){const K=n.getCenter(),R=n.getZoom(),a1=Y.width/Y.height;t1=Dn([K.lng,K.lat],R,a1)}d(K=>({...K,phase:"calibrating",imageUrl:Y.url,imageDimensions:{width:Y.width,height:Y.height},corners:w?K.corners:t1})),!w&&t1&&(f.current=t1,(B=C.current)==null||B.call(C,t1)),a==null||a({width:Y.width,height:Y.height}),requestAnimationFrame(z)}catch(Y){console.error("Failed to load image:",Y)}},[n,w,a,z]),A=u.useCallback(b=>{d(H=>({...H,phase:b}))},[]),O=u.useCallback(b=>{d(H=>({...H,opacity:b}))},[]),V=u.useCallback(()=>{var b;if((b=p.current)==null||b.call(p),p.current=null,f.current=null,L.current&&e){try{e.removeLayer(L.current)}catch{}L.current=null}d({phase:"idle",imageUrl:null,imageDimensions:null,corners:null,draggingCorner:null,opacity:i}),y(null)},[i,e]),D=u.useCallback(()=>f.current,[]),_=u.useCallback(b=>{var H;f.current=b,w||d(B=>({...B,corners:b})),(H=C.current)==null||H.call(C,b),z()},[w,z]),F=u.useCallback(async b=>{if(!c.imageUrl||!f.current||!c.imageDimensions)throw new Error("No image or corners to export");const H=await _n(c.imageUrl),B=f.current,Y=(b==null?void 0:b.outputWidth)||c.imageDimensions.width,t1=(b==null?void 0:b.outputHeight)||c.imageDimensions.height,K=(b==null?void 0:b.cols)||1,R=(b==null?void 0:b.rows)||1,{fullBlob:a1,tiles:G,extent:n1}=await Un(H,B,{outputWidth:Y,outputHeight:t1,cols:K,rows:R,format:b==null?void 0:b.format,quality:b==null?void 0:b.quality}),r1=URL.createObjectURL(a1);return{tiles:G.map(W=>({blob:W.blob,previewUrl:URL.createObjectURL(W.blob),row:W.row,col:W.col,extent:W.extent,corners:W.corners,width:W.width,height:W.height})),extent:n1,previewUrl:r1,blob:a1,outputWidth:Y,outputHeight:t1}},[c.imageUrl,c.imageDimensions]);return u.useEffect(()=>()=>{var b;if((b=p.current)==null||b.call(p),L.current&&e)try{e.removeLayer(L.current)}catch{}},[e]),{state:c,screenPositions:h,setImage:M,setPhase:A,setOpacity:O,startDrag:P,clear:V,getCorners:D,setCorners:_,exportImage:F}}const Gn=["TL","TR","BR","BL"],X1=14;function Yn({screenPositions:e,draggingCorner:n,phase:t,onStartDrag:r}){const o=u.useCallback(a=>c=>{c.preventDefault(),c.stopPropagation(),r(a)},[r]),i=t==="calibrating",s=`M ${e[0][0]},${e[0][1]} L ${e[1][0]},${e[1][1]} L ${e[2][0]},${e[2][1]} L ${e[3][0]},${e[3][1]} Z`;return l.jsxs(l.Fragment,{children:[l.jsx("svg",{style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",overflow:"visible"},children:l.jsx("path",{d:s,fill:"none",stroke:"#f59e0b",strokeWidth:"2",strokeDasharray:"6 3"})}),i&&e.map((a,c)=>l.jsx("div",{onMouseDown:o(c),style:{position:"absolute",left:a[0]-X1/2,top:a[1]-X1/2,width:X1,height:X1,borderRadius:"50%",backgroundColor:"#fff",border:"2px solid #f59e0b",boxShadow:"0 2px 4px rgba(0,0,0,0.3)",cursor:n===c?"grabbing":"grab",transform:n===c?"scale(1.3)":"scale(1)",transition:n===null?"transform 0.15s ease":"none",zIndex:n===c?10:1,pointerEvents:"auto"},title:`${Gn[c]} 角点`},c))]})}class Jn{constructor(){this.entries=[]}addFile(n,t){typeof t=="string"?this.entries.push({name:n,data:new TextEncoder().encode(t)}):t instanceof Blob?this.entries.push({name:n,data:new Uint8Array(0)}):this.entries.push({name:n,data:t})}async addBlob(n,t){const r=await t.arrayBuffer();this.entries.push({name:n,data:new Uint8Array(r)})}generate(){const n=[],t=[];let r=0;for(const a of this.entries){const c=new TextEncoder().encode(a.name),d=Xn(a.data),h=a.data.length,y=new Uint8Array(30+c.length),f=new DataView(y.buffer);f.setUint32(0,67324752,!0),f.setUint16(4,20,!0),f.setUint16(6,0,!0),f.setUint16(8,0,!0),f.setUint16(10,0,!0),f.setUint16(12,0,!0),f.setUint32(14,d,!0),f.setUint32(18,h,!0),f.setUint32(22,h,!0),f.setUint16(26,c.length,!0),f.setUint16(28,0,!0),y.set(c,30),n.push(y),n.push(a.data);const g=new Uint8Array(46+c.length),p=new DataView(g.buffer);p.setUint32(0,33639248,!0),p.setUint16(4,20,!0),p.setUint16(6,20,!0),p.setUint16(8,0,!0),p.setUint16(10,0,!0),p.setUint16(12,0,!0),p.setUint16(14,0,!0),p.setUint32(16,d,!0),p.setUint32(20,h,!0),p.setUint32(24,h,!0),p.setUint16(28,c.length,!0),p.setUint16(30,0,!0),p.setUint16(32,0,!0),p.setUint16(34,0,!0),p.setUint16(36,0,!0),p.setUint32(38,0,!0),p.setUint32(42,r,!0),g.set(c,46),t.push(g),r+=y.length+a.data.length}const o=t.reduce((a,c)=>a+c.length,0),i=new Uint8Array(22),s=new DataView(i.buffer);return s.setUint32(0,101010256,!0),s.setUint16(4,0,!0),s.setUint16(6,0,!0),s.setUint16(8,this.entries.length,!0),s.setUint16(10,this.entries.length,!0),s.setUint32(12,o,!0),s.setUint32(16,r,!0),s.setUint16(20,0,!0),new Blob([...n,...t,i],{type:"application/zip"})}}const V0=new Uint32Array(256);for(let e=0;e<256;e++){let n=e;for(let t=0;t<8;t++)n=n&1?3988292384^n>>>1:n>>>1;V0[e]=n}function Xn(e){let n=4294967295;for(let t=0;t<e.length;t++)n=V0[(n^e[t])&255]^n>>>8;return(n^4294967295)>>>0}function F1({icon:e,tip:n,onClick:t,disabled:r}){const[o,i]=u.useState(!1);return l.jsxs("div",{style:{position:"relative",display:"flex"},onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:[l.jsx("button",{className:"l7-button-control",onClick:t,disabled:r,"aria-label":n,children:l.jsx("span",{className:"material-symbols-outlined",children:e})}),o&&l.jsx("div",{style:{position:"absolute",left:"100%",top:"50%",transform:"translateY(-50%)",marginLeft:6,padding:"4px 8px",borderRadius:4,background:"rgba(0,0,0,0.75)",color:"#fff",fontSize:11,whiteSpace:"nowrap",pointerEvents:"none",lineHeight:1.4},children:n})]})}const xe=u.forwardRef(function({position:n="topright",corners:t,defaultCorners:r,imageSource:o,opacity:i=.7,accept:s="image/*",className:a,style:c,onCornersChange:d,onCalibrate:h,onExport:y,onImageLoad:f,onClear:g},p){const{scene:C,mapsService:L,positionClassName:w,getMapContainer:S}=L1(n),x=v1(),Z=u.useRef(null),z=qn({scene:C,mapsService:L,corners:t,defaultCorners:r,imageSource:o,opacity:i,onCornersChange:d,onImageLoad:f}),{state:P,screenPositions:M,setImage:A,setPhase:O,setOpacity:V,startDrag:D,clear:_,getCorners:F,setCorners:b,exportImage:H}=z;u.useImperativeHandle(p,()=>({getCorners:F,setCorners:b,setImage:A,exportImage:H,clear:u1}));const B=u.useCallback(T=>{var Q;const N=(Q=T.target.files)==null?void 0:Q[0];N&&A(N),T.target.value=""},[A]),Y=u.useCallback(()=>{const T=F();T&&(O("confirmed"),h==null||h({corners:T,extent:$n(T)}))},[F,O,h]),[t1,K]=u.useState(!1),[R,a1]=u.useState({outputWidth:0,outputHeight:0,cols:1,rows:1}),[G,n1]=u.useState(null),[r1,I]=u.useState(!1),W=u.useCallback(()=>{const T=P.imageDimensions;a1({outputWidth:(T==null?void 0:T.width)||1024,outputHeight:(T==null?void 0:T.height)||1024,cols:1,rows:1}),n1(null),K(!0)},[P.imageDimensions]),l1=u.useCallback(async()=>{I(!0);try{const T=await H(R);n1(T)}catch(T){console.error("Export failed:",T)}I(!1)},[H,R]),X=u.useCallback(async()=>{if(!G)return;const T=new Jn;for(const i1 of G.tiles)await T.addBlob(`tile_${i1.row}_${i1.col}.png`,i1.blob);const N=G.tiles.map(i1=>({file:`tile_${i1.row}_${i1.col}.png`,row:i1.row,col:i1.col,width:i1.width,height:i1.height,extent:i1.extent,corners:i1.corners})),Q=JSON.stringify({extent:G.extent,outputWidth:G.outputWidth,outputHeight:G.outputHeight,tiles:N},null,2);T.addFile("tiles.json",Q);const j=T.generate(),o1=URL.createObjectURL(j),c1=document.createElement("a");c1.href=o1,c1.download="calibrated-tiles.zip",c1.click(),URL.revokeObjectURL(o1),y==null||y(G)},[G,y]),s1=u.useCallback(()=>{G&&(URL.revokeObjectURL(G.previewUrl),G.tiles.forEach(T=>URL.revokeObjectURL(T.previewUrl))),n1(null),K(!1)},[G]),u1=u.useCallback(()=>{_(),g==null||g()},[_,g]),E=u.useCallback(()=>{O("calibrating")},[O]),m=u.useCallback(T=>{V(Number(T.target.value))},[V]),k=u.useCallback(()=>{if(!L||P.phase==="idle")return;const T=L.getBounds();if(!T)return;const[[N,Q],[j,o1]]=T,c1=(j-N)*.1,i1=(o1-Q)*.1,f1=[[N+c1,o1-i1],[j-c1,o1-i1],[j-c1,Q+i1],[N+c1,Q+i1]];b(f1)},[L,P.phase,b]),[v,J]=u.useState(!1),$=S(),q=P.phase!=="idle"&&M&&$?O1.createPortal(l.jsx("div",{style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",zIndex:100},children:l.jsx(Yn,{screenPositions:M,draggingCorner:P.draggingCorner,phase:P.phase,onStartDrag:D})}),$):null,e1=l.jsxs("div",{className:`l7-control l7-control--glass l7-control-image-calibration ${a??""}`,style:{position:"relative",...c},children:[l.jsx(F1,{icon:"upload",tip:P.phase==="idle"?"上传图片":"更换图片",onClick:()=>{var T;return(T=Z.current)==null?void 0:T.click()}}),l.jsx(F1,{icon:"fit_screen",tip:"放置到当前位置",onClick:k,disabled:P.phase==="idle"}),l.jsx(F1,{icon:P.phase==="confirmed"?"edit":"check_circle",tip:P.phase==="confirmed"?"重新校准":"确认校准",onClick:P.phase==="confirmed"?E:Y,disabled:P.phase==="idle"}),l.jsx(F1,{icon:"opacity",tip:"透明度",onClick:()=>J(!v),disabled:P.phase==="idle"}),l.jsx(F1,{icon:"download",tip:"导出",onClick:W,disabled:P.phase==="idle"}),l.jsx(F1,{icon:"delete",tip:"清除",onClick:u1,disabled:P.phase==="idle"}),v&&P.phase!=="idle"&&l.jsxs("div",{className:"l7-control--glass",style:{position:"absolute",left:"100%",top:0,marginLeft:6,padding:"8px 10px",borderRadius:6,display:"flex",alignItems:"center",gap:6,fontSize:11,whiteSpace:"nowrap",minWidth:140},children:[l.jsx("input",{type:"range",min:"0",max:"1",step:"0.05",value:P.opacity,onChange:m,style:{flex:1,height:4}}),l.jsxs("span",{style:{minWidth:28,textAlign:"right"},children:[Math.round(P.opacity*100),"%"]})]}),l.jsx("input",{ref:Z,type:"file",accept:s,onChange:B,style:{display:"none"}}),q,t1&&O1.createPortal(l.jsx("div",{style:{position:"fixed",inset:0,zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.5)"},onClick:s1,children:l.jsxs("div",{style:{background:"#fff",borderRadius:8,padding:20,width:520,maxHeight:"85vh",overflow:"auto",boxShadow:"0 8px 32px rgba(0,0,0,0.25)"},onClick:T=>T.stopPropagation(),children:[l.jsx("div",{style:{fontSize:15,fontWeight:600,marginBottom:16},children:"导出配准图片"}),l.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px 16px",marginBottom:12,fontSize:12},children:[l.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6},children:["宽度(px)",l.jsx("input",{type:"number",value:R.outputWidth,min:64,max:8192,onChange:T=>a1(N=>({...N,outputWidth:+T.target.value||1024})),style:{width:72,padding:"2px 6px",border:"1px solid #d1d5db",borderRadius:4}})]}),l.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6},children:["高度(px)",l.jsx("input",{type:"number",value:R.outputHeight,min:64,max:8192,onChange:T=>a1(N=>({...N,outputHeight:+T.target.value||1024})),style:{width:72,padding:"2px 6px",border:"1px solid #d1d5db",borderRadius:4}})]}),l.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6},children:["切片列数",l.jsx("input",{type:"number",value:R.cols,min:1,max:20,onChange:T=>a1(N=>({...N,cols:Math.max(1,+T.target.value||1)})),style:{width:48,padding:"2px 6px",border:"1px solid #d1d5db",borderRadius:4}})]}),l.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6},children:["切片行数",l.jsx("input",{type:"number",value:R.rows,min:1,max:20,onChange:T=>a1(N=>({...N,rows:Math.max(1,+T.target.value||1)})),style:{width:48,padding:"2px 6px",border:"1px solid #d1d5db",borderRadius:4}})]})]}),l.jsx("button",{onClick:l1,disabled:r1,style:{padding:"6px 16px",fontSize:12,border:"none",borderRadius:4,background:"#2563eb",color:"#fff",cursor:"pointer",marginBottom:12},children:r1?"生成中...":"生成预览"}),G&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{style:{position:"relative",marginBottom:12,border:"1px solid #e5e7eb",borderRadius:4,overflow:"hidden"},children:[l.jsx("img",{src:G.previewUrl,style:{width:"100%",display:"block"}}),(R.cols>1||R.rows>1)&&l.jsxs("svg",{style:{position:"absolute",inset:0,width:"100%",height:"100%",pointerEvents:"none"},children:[Array.from({length:R.cols-1},(T,N)=>l.jsx("line",{x1:`${(N+1)/R.cols*100}%`,y1:"0",x2:`${(N+1)/R.cols*100}%`,y2:"100%",stroke:"#f59e0b",strokeWidth:"1",strokeDasharray:"4 2"},`c${N}`)),Array.from({length:R.rows-1},(T,N)=>l.jsx("line",{x1:"0",y1:`${(N+1)/R.rows*100}%`,x2:"100%",y2:`${(N+1)/R.rows*100}%`,stroke:"#f59e0b",strokeWidth:"1",strokeDasharray:"4 2"},`r${N}`))]})]}),l.jsxs("div",{style:{fontSize:11,color:"#666",fontFamily:"monospace",marginBottom:12,maxHeight:160,overflow:"auto"},children:[l.jsxs("div",{style:{marginBottom:4,fontWeight:600,color:"#333"},children:["总计 ",G.tiles.length," 个切片 | ",G.outputWidth,"×",G.outputHeight,"px"]}),l.jsxs("div",{style:{marginBottom:4},children:["Extent: [",G.extent.map(T=>T.toFixed(5)).join(", "),"]"]}),G.tiles.map(T=>l.jsxs("div",{style:{padding:"2px 0",borderBottom:"1px solid #f3f4f6"},children:["tile_",T.row,"_",T.col,".png (",T.width,"×",T.height,") — [",T.extent.map(N=>N.toFixed(5)).join(", "),"]"]},`${T.row}_${T.col}`))]}),l.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:[l.jsx("button",{onClick:s1,style:{padding:"6px 16px",fontSize:12,border:"1px solid #d1d5db",borderRadius:4,background:"#fff",cursor:"pointer"},children:"取消"}),l.jsxs("button",{onClick:X,style:{padding:"6px 16px",fontSize:12,border:"none",borderRadius:4,background:"#2563eb",color:"#fff",cursor:"pointer"},children:["打包下载 ZIP(",G.tiles.length," 张 + 坐标JSON)"]})]})]}),!G&&l.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:l.jsx("button",{onClick:s1,style:{padding:"6px 16px",fontSize:12,border:"1px solid #d1d5db",borderRadius:4,background:"#fff",cursor:"pointer"},children:"取消"})})]})}),document.body)]});return!C||!L?null:x?e1:l.jsx("div",{className:`l7-control-anchor ${w}`,children:e1})});y1.mark(xe);function k0({controls:e,layers:n,onLayerToggle:t,containerRef:r}){const o=h1();return l.jsx(ce,{children:e.map((i,s)=>l.jsx(Kn,{control:i,layers:n,onLayerToggle:t,scene:o,containerRef:r},`${i.type}-${s}`))})}function Kn({control:e,layers:n,onLayerToggle:t,scene:r,containerRef:o}){var s,a,c,d,h,y,f,g,p;const i=e.position??void 0;switch(e.type){case"zoom":return l.jsx(ue,{position:i??"bottomright"});case"scale":return l.jsx(he,{position:i??"bottomleft",maxWidth:(s=e.options)==null?void 0:s.maxWidth,metric:((a=e.options)==null?void 0:a.unit)!=="imperial",imperial:((c=e.options)==null?void 0:c.unit)==="imperial"});case"fullscreen":return l.jsx(fe,{position:i??"topright",container:o==null?void 0:o.current});case"geoLocate":return l.jsx(pe,{position:i??"topright"});case"mapTheme":return l.jsx(ye,{position:i??"topright"});case"mouseLocation":return l.jsx(me,{position:i??"bottomleft",precision:(d=e.options)==null?void 0:d.precision});case"exportImage":return l.jsx(Ce,{position:i??"topright",format:(h=e.options)==null?void 0:h.format});case"layerSwitch":return l.jsx(ve,{position:i??"topright",layers:n.map((C,L)=>({id:C.id??`layer-${L}`,name:C.name,visible:C.visible})),onToggle:t??(()=>{})});case"draw":return l.jsx(be,{position:i??"topright",modes:(y=e.options)==null?void 0:y.modes,showDelete:(f=e.options)==null?void 0:f.showDelete});case"imageCalibration":return l.jsx(xe,{position:i??"topright",opacity:(g=e.options)==null?void 0:g.opacity,imageSource:(p=e.options)==null?void 0:p.imageSource});default:return null}}const z1={aerialway:"M13,5H8V2.6c0.1854-0.1047,0.3325-0.2659,0.42-0.46L13.5,1.5C13.7761,1.5,14,1.2761,14,1s-0.2239-0.5-0.5-0.5L8.28,1.15 C8.0954,0.9037,7.8077,0.7562,7.5,0.75C7.0963,0.752,6.7334,0.9966,6.58,1.37L1.5,2C1.2239,2,1,2.2239,1,2.5S1.2239,3,1.5,3 l5.22-0.65C6.7967,2.4503,6.8917,2.5351,7,2.6V5H2C1.4477,5,1,5.4477,1,6v7c0,0.5523,0.4477,1,1,1h11c0.5523,0,1-0.4477,1-1V6 C14,5.4477,13.5523,5,13,5z M7,11H3V7h4V11z M12,11H8V7h4V11z",airfield:"M6.8182,0.6818H4.7727 C4.0909,0.6818,4.0909,0,4.7727,0h5.4545c0.6818,0,0.6818,0.6818,0,0.6818H8.1818c0,0,0.8182,0.5909,0.8182,1.9545V4h6v2L9,8l-0.5,5 l2.5,1.3182V15H4v-0.6818L6.5,13L6,8L0,6V4h6V2.6364C6,1.2727,6.8182,0.6818,6.8182,0.6818z",airport:"M15,6.8182L15,8.5l-6.5-1 l-0.3182,4.7727L11,14v1l-3.5-0.6818L4,15v-1l2.8182-1.7273L6.5,7.5L0,8.5V6.8182L6.5,4.5v-3c0,0,0-1.5,1-1.5s1,1.5,1,1.5v2.8182 L15,6.8182z","alcohol-shop":"M14,4h-4v3.44l0,0c0,0,0,0,0,0.06c0.003,0.9096,0.6193,1.7026,1.5,1.93V13H11c-0.2761,0-0.5,0.2239-0.5,0.5 S10.7239,14,11,14h2c0.2761,0,0.5-0.2239,0.5-0.5S13.2761,13,13,13h-0.5V9.43c0.8807-0.2274,1.497-1.0204,1.5-1.93c0,0,0,0,0-0.06 l0,0V4z M13,7.5c0,0.5523-0.4477,1-1,1s-1-0.4477-1-1V5h2V7.5z M5.5,2.5V2C5.7761,2,6,1.7761,6,1.5S5.7761,1,5.5,1V0.5 C5.5,0.2239,5.2761,0,5,0H4C3.7239,0,3.5,0.2239,3.5,0.5V1C3.2239,1,3,1.2239,3,1.5S3.2239,2,3.5,2v0.5C3.5,3.93,1,5.57,1,7v6 c0,0.5523,0.4477,1,1,1h5c0.5318-0.0465,0.9535-0.4682,1-1V7C8,5.65,5.5,3.85,5.5,2.5z M4.5,12C3.1193,12,2,10.8807,2,9.5 S3.1193,7,4.5,7S7,8.1193,7,9.5S5.8807,12,4.5,12z","american-football":"M7.53,3C3.09,3,1,7.5,1,7.5S3.09,12,7.53,12S14,7.5,14,7.5S12,3,7.53,3z M11,7v1.5C11,8.7761,10.7761,9,10.5,9 S10,8.7761,10,8.5V8H8v0.5C8,8.7761,7.7761,9,7.5,9S7,8.7761,7,8.5V8H5v0.5C5,8.7761,4.7761,9,4.5,9S4,8.7761,4,8.5v-2 C4,6.2239,4.2239,6,4.5,6S5,6.2239,5,6.5V7h2V6.5C7,6.2239,7.2239,6,7.5,6S8,6.2239,8,6.5V7h2V6.5C10,6.2239,10.2239,6,10.5,6 S11,6.2239,11,6.5V7z","amusement-park":"M13.5 7C13.5 9.02798 12.4939 10.821 10.9535 11.907L12 13.9999H3L4.04645 11.907C2.50613 10.821 1.5 9.02798 1.5 7C1.5 3.68629 4.18629 1 7.5 1C10.8137 1 13.5 3.68629 13.5 7ZM12.2984 7.125H8.99487C8.96844 7.4453 8.84138 7.73706 8.64538 7.96861L10.9814 10.3046C11.7719 9.47202 12.2669 8.35614 12.2984 7.125ZM10.8046 10.4814L8.46861 8.14538C8.33136 8.26156 8.17296 8.35351 8 8.41465V11.7743C9.08206 11.6623 10.0574 11.1908 10.8046 10.4814ZM6.00513 7.125H2.7016C2.73307 8.35614 3.2281 9.47202 4.01864 10.3046L6.35462 7.96861C6.15862 7.73706 6.03156 7.4453 6.00513 7.125ZM4.19542 10.4814C4.94259 11.1908 5.91794 11.6623 7 11.7743V8.41465C6.82704 8.35351 6.66864 8.26156 6.53139 8.14538L4.19542 10.4814ZM12.2984 6.875C12.2669 5.64386 11.7719 4.52798 10.9814 3.69542L8.64538 6.03139C8.84138 6.26294 8.96844 6.5547 8.99487 6.875H12.2984ZM10.8046 3.51864C9.97202 2.7281 8.85614 2.23307 7.625 2.2016V5.50513C7.9453 5.53156 8.23706 5.65862 8.46861 5.85462L10.8046 3.51864ZM7.375 5.50513V2.2016C6.14386 2.23307 5.02798 2.7281 4.19542 3.51864L6.53139 5.85462C6.76294 5.65862 7.0547 5.53156 7.375 5.50513ZM6.35462 6.03139L4.01864 3.69542C3.2281 4.52798 2.73307 5.64386 2.7016 6.875H6.00513C6.03156 6.5547 6.15862 6.26294 6.35462 6.03139Z","animal-shelter":"M 7.528,0.895 9,2 h 1 L 11.473,0.896 C 11.689502,0.73373378 12,0.8884387 12,1.159 V 4.5 c 0,0.722 -0.522,1.184 -1,1.573 V 10 l 0.8,2.4 0.706,0.353 c 0.302922,0.151551 0.494181,0.461283 0.494,0.8 C 13,13.8 12.8,14 12.553,14 H 4.25 C 3.017,14 2,13 2,11.713 2,9.5424588 2.4530836,7.9300225 2.745,6.845 2.8910836,6.3020225 3.0352907,5.8946079 3.138,5.614 3.1956028,5.4566256 3.253276,5.3110749 3.33,5.165 3.7788405,4.3104525 5.0743666,4.9556117 4.672,5.833 4.6232251,5.9393571 4.5778358,6.0512046 4.539,6.15 4.4477518,6.3821288 4.325004,6.7430011 4.193,7.234 3.947004,8.1490011 3.674,9.521 3.558,11.367 3.926,9.307 5.98,7.239 7.635,5.758 7.29,5.432 7.001,5.038 7.001,4.5 l 0,-3.342 c 0,-0.2705613 0.3106215,-0.42543084 0.527,-0.263 z",aquarium:"M1.13505 8.57743C1.98919 6.14741 4.72075 2 10 2C12.6518 2 14 3 14 3C14 3 11.6865 3 10.6203 3.44512C10.54 3.47864 10.4747 3.53744 10.4329 3.61375C10.2432 3.95995 9.75252 5.04744 10.3231 6.19506C10.4172 6.38427 10.6364 6.46548 10.8383 6.40312C11.3474 6.24589 12.3301 5.89727 13.0761 5.35729C13.2973 5.1972 13.615 5.25773 13.6797 5.52298C13.9401 6.59045 13.9401 8.40955 13.6797 9.47702C13.615 9.74227 13.2973 9.8028 13.0761 9.64271C12.3301 9.10273 11.3474 8.75411 10.8383 8.59688C10.6364 8.53452 10.4172 8.61573 10.3231 8.80494C9.75252 9.95256 10.2432 11.04 10.4329 11.3863C10.4747 11.4626 10.54 11.5214 10.6203 11.5549C11.6865 12 14 12 14 12C13.5 12.3333 11.8 13 9.00001 13C4.51722 13 2.02736 10.3427 1.25972 9.35985C1.08546 9.13673 1.04117 8.84452 1.13505 8.57743ZM5.00001 9C5.69037 9 6.25001 8.44036 6.25001 7.75C6.25001 7.05964 5.69037 6.5 5.00001 6.5C4.30966 6.5 3.75001 7.05964 3.75001 7.75C3.75001 8.44036 4.30966 9 5.00001 9Z",arrow:"M8.29289 2.29289C8.68342 1.90237 9.31658 1.90237 9.70711 2.29289L14.2071 6.79289C14.5976 7.18342 14.5976 7.81658 14.2071 8.20711L9.70711 12.7071C9.31658 13.0976 8.68342 13.0976 8.29289 12.7071C7.90237 12.3166 7.90237 11.6834 8.29289 11.2929L11 8.5H1.5C0.947715 8.5 0.5 8.05228 0.5 7.5C0.5 6.94772 0.947715 6.5 1.5 6.5H11L8.29289 3.70711C7.90237 3.31658 7.90237 2.68342 8.29289 2.29289Z","art-gallery":"m10.71 3-2.86-2.849996c-.1945-.1960996-.511-.1973996-.7071-.0029-.001.001-.0019.0019-.0029.0029l-2.85 2.849996h-2.79c-.2761 0-.5.2239-.5.5v9c0 .2761.2239.5.5.5h12c.2761 0 .5-.2239.5-.5v-9c0-.2761-.2239-.5-.5-.5zm-3.21-1.79 1.79 1.79h-3.58zm5.5 10.79h-11v-8h11zm-8-5c-.5523 0-1-.4477-1-1s.4477-1 1-1 1 .4477 1 1-.4477 1-1 1zm7 4h-7.5l1.5-3 1.25 2.5 2.25-4.5z",attraction:"M6,2C5.446,2,5.2478,2.5045,5,3L4.5,4h-2C1.669,4,1,4.669,1,5.5v5C1,11.331,1.669,12,2.5,12h10 c0.831,0,1.5-0.669,1.5-1.5v-5C14,4.669,13.331,4,12.5,4h-2L10,3C9.75,2.5,9.554,2,9,2H6z M2.5,5C2.7761,5,3,5.2239,3,5.5 S2.7761,6,2.5,6S2,5.7761,2,5.5S2.2239,5,2.5,5z M7.5,5c1.6569,0,3,1.3431,3,3s-1.3431,3-3,3s-3-1.3431-3-3S5.8431,5,7.5,5z M7.5,6.5C6.6716,6.5,6,7.1716,6,8l0,0c0,0.8284,0.6716,1.5,1.5,1.5l0,0C8.3284,9.5,9,8.8284,9,8l0,0C9,7.1716,8.3284,6.5,7.5,6.5 L7.5,6.5z",bakery:"M5.294,4.382,6,9.5a.979.979,0,0,0,1,1H8a.979.979,0,0,0,1-1l.706-5.118C9.706,3,7.5,3,7.5,3S5.291,3,5.294,4.382ZM3.5,5C2,5,2,6,2,6l1,4H4.5a.793.793,0,0,0,.794-.765L4.5,5Zm-2,2.5a1.533,1.533,0,0,0-1.059.412A1.366,1.366,0,0,0,0,8.794V11H.882A1.02,1.02,0,0,0,2,10ZM11.5,5C13,5,13,6,13,6l-1,4H10.5a.793.793,0,0,1-.794-.765L10.5,5Zm2,2.5a1.533,1.533,0,0,1,1.059.412A1.366,1.366,0,0,1,15,8.794V11h-.882A1.02,1.02,0,0,1,13,10Z",bank:"M1,3C0.446,3,0,3.446,0,4v7c0,0.554,0.446,1,1,1h13c0.554,0,1-0.446,1-1V4c0-0.554-0.446-1-1-1H1z M1,4h1.5 C2.7761,4,3,4.2239,3,4.5S2.7761,5,2.5,5S2,4.7761,2,4.5L1.5,5C1.7761,5,2,5.2239,2,5.5S1.7761,6,1.5,6S1,5.7761,1,5.5V4z M7.5,4 C8.8807,4,10,5.567,10,7.5l0,0C10,9.433,8.8807,11,7.5,11S5,9.433,5,7.5S6.1193,4,7.5,4z M12.5,4H14v1.5C14,5.7761,13.7761,6,13.5,6 S13,5.7761,13,5.5S13.2239,5,13.5,5L13,4.5C13,4.7761,12.7761,5,12.5,5S12,4.7761,12,4.5S12.2239,4,12.5,4z M7.5,5.5 c-0.323,0-0.5336,0.1088-0.6816,0.25h1.3633C8.0336,5.6088,7.823,5.5,7.5,5.5z M6.625,6C6.5795,6.091,6.5633,6.1711,6.5449,6.25 h1.9102C8.4367,6.1711,8.4205,6.091,8.375,6H6.625z M6.5,6.5v0.25h2V6.5H6.5z M6.5,7v0.25h2V7H6.5z M6.5,7.5v0.25h2V7.5H6.5z M6.5,8 L6.25,8.25h2L8.5,8H6.5z M6,8.5c0,0,0.0353,0.1024,0.1016,0.25H8.375L8,8.5H6z M1.5,9C1.7761,9,2,9.2239,2,9.5S1.7761,10,1.5,10 L2,10.5C2,10.2239,2.2239,10,2.5,10S3,10.2239,3,10.5S2.7761,11,2.5,11H1V9.5C1,9.2239,1.2239,9,1.5,9z M6.2383,9 C6.2842,9.0856,6.3144,9.159,6.375,9.25h2.2676C8.7092,9.1121,8.75,9,8.75,9H6.2383z M13.5,9C13.7761,9,14,9.2239,14,9.5V11h-1.5 c-0.2761,0-0.5-0.2239-0.5-0.5s0.2239-0.5,0.5-0.5s0.5,0.2239,0.5,0.5l0.5-0.5C13.2239,10,13,9.7761,13,9.5S13.2239,9,13.5,9z M6.5664,9.5c0.0786,0.0912,0.1647,0.1763,0.2598,0.25h1.4199C8.3462,9.6727,8.4338,9.5883,8.5,9.5H6.5664z","bank-JP":"M12.2808,3.3763l-2.9,3.625H11.25a.75.75,0,0,1,0,1.5H8.5v1h2.75a.75.75,0,0,1,0,1.5H8.5v1.25a1,1,0,0,1-2,0v-1.25H3.75a.75.75,0,1,1,0-1.5H6.5v-1H3.75a.75.75,0,0,1,0-1.5H5.6193l-2.9-3.625A1,1,0,0,1,4.2771,2.1216l.0037.0047L7.5,6.15l3.2192-4.024a1,1,0,0,1,1.5653,1.2453Z",bar:"M7.5,1c-2,0-7,0.25-6.5,0.75L7,8v4 c0,1-3,0.5-3,2h7c0-1.5-3-1-3-2V8l6-6.25C14.5,1.25,9.5,1,7.5,1z M7.5,2c2.5,0,4.75,0.25,4.75,0.25L11.5,3h-8L2.75,2.25 C2.75,2.25,5,2,7.5,2z",barrier:"m13 2h-11c-.26522 0-.51957.10536-.70711.29289-.18753.18754-.29289.44189-.29289.70711v6c0 .26522.10536.51957.29289.70711.18754.18753.44189.29289.70711.29289h1v2.5c0 .1326.05268.2598.14645.3536.09376.0937.22094.1464.35355.1464s.25979-.0527.35355-.1464c.09377-.0938.14645-.221.14645-.3536v-.5h7v.5c0 .1326.0527.2598.1464.3536.0938.0937.221.1464.3536.1464s.2598-.0527.3536-.1464c.0937-.0938.1464-.221.1464-.3536v-2.5h1c.2652 0 .5196-.10536.7071-.29289.1875-.18754.2929-.44189.2929-.70711v-6c0-.26522-.1054-.51957-.2929-.70711-.1875-.18753-.4419-.29289-.7071-.29289zm0 1v2l-2-2zm-3.5 0 3.5 3.5v2.5l-6-6zm-4 6-3.5-3.5v-2.5l6 6zm-3.5 0v-2l2 2zm9 2h-7v-1h7zm-.207-2h-1.293l-6-6h2l6 6z",baseball:"m9.00003 3.5c0 .8284-.6716 1.5-1.5 1.5s-1.5-.6716-1.5-1.5.6716-1.5 1.5-1.5 1.5.6716 1.5 1.5zm-3-3.22c0-.1546-.1254-.28-.28-.28-.0979.0262-.1852.0821-.25.16l-2.47 4.43c-.0059.0431-.0059.0869 0 .13 0 .1546.1254.28.28.28.1015-.0243.1926-.0803.26-.16l2.46-4.43c.006-.0431.006-.0869 0-.13zm5.89997 13.92-2.89997-7.81c-.0474-.2273-.2478-.3901-.48-.39h-5c-.2761 0-.5.2239-.5.5s.2239.5.5.5h2.48l1.45 2.51-4.27 4.61c-.1141.0932-.1802.2327-.18.38 0 .2761.2239.5.5.5.1224-.0006.2401-.047.33-.13l4.45-4.15 2.75997 4c.0895.1592.2574.2584.44.26.2796.0002.5092-.2207.52-.5-.0042-.1013-.039-.199-.1-.28z",basketball:"M3.66001 7H2.03C2.11012 6.02077 2.45969 5.05281 3.04001 4.26C3.39039 5.12432 3.59972 6.0693 3.66001 7ZM4.73501 7H7V2C5.78985 2.1061 4.72468 2.61284 3.83501 3.44C4.36491 4.54578 4.67079 5.77549 4.73501 7ZM8 2V7H10.265C10.3292 5.77549 10.6351 4.54578 11.165 3.44C10.2753 2.61284 9.21014 2.1061 8 2ZM11.96 4.26C11.6096 5.12432 11.4003 6.0693 11.34 7H12.97C12.8899 6.02077 12.5403 5.05281 11.96 4.26ZM14 8.49919C14 8.77489 13.7765 8.99838 13.5008 8.99838H11.72L10.96 10.5184V12.8984C10.9578 12.9736 10.934 13.0466 10.8915 13.1087C10.8489 13.1707 10.7894 13.2192 10.72 13.2484C10.6743 13.2607 10.6273 13.2674 10.58 13.2684C10.5312 13.2706 10.4825 13.2619 10.4375 13.2428C10.3925 13.2238 10.3524 13.195 10.32 13.1584L9.3 12.1484L7.71 13.2084C7.64698 13.2476 7.57423 13.2684 7.5 13.2684C7.42577 13.2684 7.35303 13.2476 7.29 13.2084L5.7 12.1484L4.68 13.1584C4.62956 13.211 4.56471 13.2477 4.49357 13.2637C4.42243 13.2797 4.34814 13.2744 4.28 13.2484C4.21063 13.2192 4.1511 13.1707 4.10854 13.1087C4.06599 13.0466 4.04219 12.9736 4.04 12.8984V10.5184L3.28 8.99838H1.49919C1.2235 8.99838 1 8.77489 1 8.4992C0.999998 8.2235 1.22349 8 1.49919 8H13.5008C13.7765 8 14 8.2235 14 8.49919ZM6.86 8.99838H4.12L4.75 10.2684C4.7772 10.3173 4.791 10.3725 4.79 10.4284V11.9884L5.35 11.4384L6.86 8.99838ZM8.84 11.5484L7.5 9.38838L6.16 11.5484L7.5 12.4484L8.84 11.5484ZM10.89 8.99838H8.14L9.65 11.4384L10.21 11.9884V10.4284C10.209 10.3725 10.2228 10.3173 10.25 10.2684L10.89 8.99838Z",bbq:"M9.32,7.655C10.8782,7.108,11.9471,5.6506,12,4H3c0.053,1.6299,1.0978,3.0728,2.63,3.631L4.923,9.044 c-1.3571-0.2355-2.6482,0.6737-2.8837,2.0308s0.6737,2.6482,2.0308,2.8837C4.9927,14.1187,5.9273,13.7485,6.49,13h4.223l0.335,0.717 c0.0836,0.1735,0.2594,0.2836,0.452,0.283c0.0733,0.0003,0.1457-0.0158,0.212-0.047c0.2497-0.117,0.3575-0.4141,0.241-0.664 L9.32,7.655z M4.5,12.75c-0.6904,0-1.25-0.5596-1.25-1.25s0.5596-1.25,1.25-1.25s1.25,0.5596,1.25,1.25 C5.7484,12.1897,5.1897,12.7484,4.5,12.75z M6.95,12c0.2066-1.007-0.2268-2.0374-1.091-2.594L6.6,7.923 c0.577,0.1042,1.168,0.1042,1.745,0l1.9,4.07L6.95,12z M4.75,1C4.6119,1,4.5,1.1119,4.5,1.25c0,0.5-0.5,0.5-0.5,0.5c-1,0-1,1-1,1 C3,2.8881,3.1119,3,3.25,3S3.5,2.8881,3.5,2.75c0-0.5,0.5-0.5,0.5-0.5c1,0,1-1,1-1C5,1.1119,4.8881,1,4.75,1z M6.75,1 C6.6119,1,6.5,1.1119,6.5,1.25c0,0.5-0.5,0.5-0.5,0.5c-1,0-1,1-1,1C5,2.8881,5.1119,3,5.25,3S5.5,2.8881,5.5,2.75 c0-0.5,0.5-0.5,0.5-0.5c1,0,1-1,1-1C7,1.1119,6.8881,1,6.75,1z M8.75,1C8.6119,1,8.5,1.1119,8.5,1.25c0,0.5-0.5,0.5-0.5,0.5 c-1,0-1,1-1,1C7,2.8881,7.1119,3,7.25,3S7.5,2.8881,7.5,2.75c0-0.5,0.5-0.5,0.5-0.5c1,0,1-1,1-1C9,1.1119,8.8881,1,8.75,1z M10.75,1 c-0.1381,0-0.25,0.1119-0.25,0.25c0,0.5-0.5,0.5-0.5,0.5c-1,0-1,1-1,1C9,2.8881,9.1119,3,9.25,3S9.5,2.8881,9.5,2.75 c0-0.5,0.5-0.5,0.5-0.5c1,0,1-1,1-1C11,1.1119,10.8881,1,10.75,1z M12.75,1c-0.1381,0-0.25,0.1119-0.25,0.25c0,0.5-0.5,0.5-0.5,0.5 c-1,0-1,1-1,1C11,2.8881,11.1119,3,11.25,3s0.25-0.1119,0.25-0.25c0-0.5,0.5-0.5,0.5-0.5c1,0,1-1,1-1C13,1.1119,12.8881,1,12.75,1z",beach:"M5.3608,1.67l-.01,4.02a4.4523,4.4523,0,0,0-1.1-.11c-.37.1-.74.63-1.1.76A4.2019,4.2019,0,0,1,5.3608,1.67Zm2.41-.64,2.03,3.45a3.1832,3.1832,0,0,1,.84-.61c.36-.1.94.17,1.34.11A4.2018,4.2018,0,0,0,7.7708,1.03ZM1.0008,13h13c-.66-.66-2.64-1.11-4.34-1.33l-1.87-7c.52-.05,1.15.03,1.53,0l-2.11-3.6h-.01a6.1743,6.1743,0,0,0-.7.14,4.3792,4.3792,0,0,0-.64.22l-.01,4.15c.35-.17.84-.54,1.3-.74l1.8,6.74c-.58-.05-1.09-.08-1.45-.08C6.0308,11.5,2.0008,12,1.0008,13Z",beer:"M12,5V2c0,0-1-1-4.5-1S3,2,3,2v3c0.0288,1.3915,0.3706,2.7586,1,4c0.6255,1.4348,0.6255,3.0652,0,4.5c0,0,0,1,3.5,1 s3.5-1,3.5-1c-0.6255-1.4348-0.6255-3.0652,0-4.5C11.6294,7.7586,11.9712,6.3915,12,5z M7.5,13.5 c-0.7966,0.035-1.5937-0.0596-2.36-0.28c0.203-0.7224,0.304-1.4696,0.3-2.22h4.12c-0.004,0.7504,0.097,1.4976,0.3,2.22 C9.0937,13.4404,8.2966,13.535,7.5,13.5z M7.5,5C6.3136,5.0299,5.1306,4.8609,4,4.5v-2C5.131,2.1411,6.3137,1.9722,7.5,2 C8.6863,1.9722,9.869,2.1411,11,2.5v2C9.8694,4.8609,8.6864,5.0299,7.5,5z",bicycle:"M7.5,2c-0.6761-0.01-0.6761,1.0096,0,1H9v1.2656l-2.8027,2.334L5.2226,4H5.5c0.6761,0.01,0.6761-1.0096,0-1h-2 c-0.6761-0.01-0.6761,1.0096,0,1h0.6523L5.043,6.375C4.5752,6.1424,4.0559,6,3.5,6C1.5729,6,0,7.5729,0,9.5S1.5729,13,3.5,13 S7,11.4271,7,9.5c0-0.6699-0.2003-1.2911-0.5293-1.8242L9.291,5.3262l0.4629,1.1602C8.7114,7.0937,8,8.2112,8,9.5 c0,1.9271,1.5729,3.5,3.5,3.5S15,11.4271,15,9.5S13.4271,6,11.5,6c-0.2831,0-0.5544,0.0434-0.8184,0.1074L10,4.4023V2.5 c0-0.2761-0.2239-0.5-0.5-0.5H7.5z M3.5,7c0.5923,0,1.1276,0.2119,1.5547,0.5527l-1.875,1.5625 c-0.5109,0.4273,0.1278,1.1945,0.6406,0.7695l1.875-1.5625C5.8835,8.674,6,9.0711,6,9.5C6,10.8866,4.8866,12,3.5,12S1,10.8866,1,9.5 S2.1133,7,3.5,7L3.5,7z M11.5,7C12.8866,7,14,8.1134,14,9.5S12.8866,12,11.5,12S9,10.8866,9,9.5c0-0.877,0.4468-1.6421,1.125-2.0879 l0.9102,2.2734c0.246,0.6231,1.1804,0.2501,0.9297-0.3711l-0.9082-2.2695C11.2009,7.0193,11.3481,7,11.5,7L11.5,7z","bicycle-share":"M10,1C9.4477,1,9,1.4477,9,2c0,0.5523,0.4477,1,1,1s1-0.4477,1-1C11,1.4477,10.5523,1,10,1z M8.1445,2.9941 c-0.13,0.0005-0.2547,0.0517-0.3477,0.1426l-2.6406,2.5c-0.2256,0.2128-0.2051,0.5775,0.043,0.7637L7,7.75v2.75 c-0.01,0.6762,1.0096,0.6762,1,0v-3c0.0003-0.1574-0.0735-0.3057-0.1992-0.4004L7.0332,6.5234l1.818-1.7212l0.7484,0.9985 C9.6943,5.9265,9.8426,6.0003,10,6h1.5c0.6761,0.01,0.6761-1.0096,0-1h-1.25L9.5,4L8.9004,3.1992 C8.8103,3.0756,8.6685,3,8.5156,2.9941H8.1445z M3,7c-1.6569,0-3,1.3432-3,3s1.3431,3,3,3s3-1.3432,3-3S4.6569,7,3,7z M12,7 c-1.6569,0-3,1.3432-3,3s1.3431,3,3,3s3-1.3432,3-3S13.6569,7,12,7z M3,8c1.1046,0,2,0.8954,2,2s-0.8954,2-2,2s-2-0.8954-2-2 S1.8954,8,3,8z M12,8c1.1046,0,2,0.8954,2,2s-0.8954,2-2,2s-2-0.8954-2-2S10.8954,8,12,8z","blood-bank":"m11.2 6.1-3.7-5.1-3.7 5.1c-.5.7-.8 1.6-.8 2.5 0 2.4 2 4.4 4.5 4.4s4.5-2 4.5-4.4c0-.9-.3-1.8-.8-2.5zm-1.2 2.9h-2v2h-1v-2h-2v-1h2v-2h1v2h2z","bowling-alley":"M10.922 3.166c0 1.006-.335 1.857-.693 2.77-.414 1.052-.86 2.185-.86 3.73 0 2.166.687 4.333 1.409 4.333h1.444c.723 0 1.409-2.166 1.409-4.333 0-1.545-.446-2.678-.86-3.73-.358-.912-.693-1.764-.693-2.77 0-.722.144-.723.144-1.445A.743.743 0 0 0 11.5.999a.743.743 0 0 0-.722.722c0 .723.144.723.144 1.445Zm-2.552 6.5c0-1.234.254-2.236.55-3.091a4.5 4.5 0 1 0-.17 6.038c-.237-.865-.38-1.91-.38-2.947ZM5.24 7.12a.62.62 0 1 1-1.24 0 .62.62 0 0 1 1.24 0Zm-1 2a.62.62 0 1 1-1.24 0 .62.62 0 0 1 1.24 0Zm2 0a.62.62 0 1 1-1.24 0 .62.62 0 0 1 1.24 0Z",bridge:"m0 6.84201v4.15799h2v-1c.036-1.08899.911-1.96399 2-1.99999 1.089.036 1.964.911 2 1.99999v1h3v-1c.036-1.08899.911-1.96399 2-1.99999 1.089.036 1.964.911 2 1.99999v1h2v-4.15799c-4.4-5.76-11.929-4.442-15 0zm9.5-3.108c.514.121 1.016.289 1.5.5v2.766h-1.5zm-.5-.1v3.366h-1.5v-3.494c.503 0 1.005.043 1.5.128zm-5.5.843c.48-.248.982-.451 1.5-.606v3.129h-1.5zm2 2.523v-3.27c.493-.115.995-.187 1.5-.215v3.485zm-2.5-2.256v2.256h-2.5c.676-.906 1.532-1.672 2.5-2.256zm8.5 2.256v-2.5l-.053-.053c1.202.603 2.247 1.477 3.053 2.553z",building:"M3,2v11h5v-3h3v3h1V2H3z M7,12H4v-2h3V12z M7,9H4V7h3V9z M7,6H4V4h3V6z M11,9H8V7h3V9z M11,6H8V4h3V6z","building-alt1":"M11,13.5v-9C11,4.2,10.8,4,10.5,4H9V1L5,2.1v11.4H2V14h11v-0.5H11z M7,13.5V3h1v10.5H7z",bus:"M2 3C2 1.9 2.9 1 4 1H11C12.1 1 13 1.9 13 3V11C13 12 12 12 12 12V13C12 13.55 11.55 14 11 14C10.45 14 10 13.55 10 13V12H5V13C5 13.55 4.55 14 4 14C3.45 14 3 13.55 3 13V12C2 12 2 11 2 11V3ZM3.5 4C3.22 4 3 4.22 3 4.5V7.5C3 7.78 3.22 8 3.5 8H11.5C11.78 8 12 7.78 12 7.5V4.5C12 4.22 11.78 4 11.5 4H3.5ZM4 9C3.45 9 3 9.45 3 10C3 10.55 3.45 11 4 11C4.55 11 5 10.55 5 10C5 9.45 4.55 9 4 9ZM11 9C10.45 9 10 9.45 10 10C10 10.55 10.45 11 11 11C11.55 11 12 10.55 12 10C12 9.45 11.55 9 11 9ZM4 2.5C4 2.78 4.22 3 4.5 3H10.5C10.78 3 11 2.78 11 2.5C11 2.22 10.78 2 10.5 2H4.5C4.22 2 4 2.22 4 2.5Z",cafe:"M12,5h-2V3H2v4c0.0133,2.2091,1.8149,3.9891,4.024,3.9758C7.4345,10.9673,8.7362,10.2166,9.45,9H12c1.1046,0,2-0.8954,2-2 S13.1046,5,12,5z M12,8H9.86C9.9487,7.6739,9.9958,7.3379,10,7V6h2c0.5523,0,1,0.4477,1,1S12.5523,8,12,8z M10,12.5 c0,0.2761-0.2239,0.5-0.5,0.5h-7C2.2239,13,2,12.7761,2,12.5S2.2239,12,2.5,12h7C9.7761,12,10,12.2239,10,12.5z",campsite:"M14 10V11C14 11.5523 13.5523 12 13 12H2C1.44772 12 1 11.5523 1 11V10C1 9.44772 1.44772 9.00001 2 9.00001H2.25L7.03206 1.25762C7.24699 0.90965 7.75302 0.909651 7.96794 1.25762L12.75 9.00001H13C13.5523 9.00001 14 9.44772 14 10ZM10.5 9.00001L7.5 4.00001L4.5 9.00001H10.5Z",car:"M13.84,6.852,12.6,5.7,11.5,3.5a1.05,1.05,0,0,0-.9-.5H4.4a1.05,1.05,0,0,0-.9.5L2.4,5.7,1.16,6.852A.5.5,0,0,0,1,7.219V11.5a.5.5,0,0,0,.5.5h2c.2,0,.5-.2.5-.4V11h7v.5c0,.2.2.5.4.5h2.1a.5.5,0,0,0,.5-.5V7.219A.5.5,0,0,0,13.84,6.852ZM4.5,4h6l1,2h-8ZM5,8.6c0,.2-.3.4-.5.4H2.4C2.2,9,2,8.7,2,8.5V7.4c.1-.3.3-.5.6-.4l2,.4c.2,0,.4.3.4.5Zm8-.1c0,.2-.2.5-.4.5H10.5c-.2,0-.5-.2-.5-.4V7.9c0-.2.2-.5.4-.5l2-.4c.3-.1.5.1.6.4Z","car-rental":"M10.5 1C9.94772 1 9.5 1.44772 9.5 2H2V3L3 4 4 3 5 4 6 3 7 4H9.5C9.5 4.55228 9.94772 5 10.5 5H12.5C12.7761 5 13 4.77614 13 4.5V1.5C13 1.22386 12.7761 1 12.5 1H10.5ZM11 2.5C11 2.22386 11.2239 2 11.5 2 11.7761 2 12 2.22386 12 2.5V3.5C12 3.77614 11.7761 4 11.5 4 11.2239 4 11 3.77614 11 3.5V2.5ZM2.14645 9.35355C2.05268 9.44732 2 9.5745 2 9.70711V13.5C2 13.7761 2.22386 14 2.5 14H4C4.27614 14 4.5 13.7761 4.5 13.5V13H10.5V13.5C10.5 13.7761 10.7239 14 11 14H12.5C12.7761 14 13 13.7761 13 13.5V9.70711C13 9.5745 12.9473 9.44732 12.8536 9.35355L12 8.5 10.6457 6.24275C10.5553 6.09215 10.3925 6 10.2169 6H4.7831C4.60746 6 4.44471 6.09215 4.35435 6.24275L3 8.5 2.14645 9.35355ZM11.1338 9H3.86623L5.06619 7H9.93381L11.1338 9ZM5.5 10.8279V11.2C5.5 11.3657 5.36569 11.5 5.2 11.5H3.3C3.13431 11.5 3 11.3657 3 11.2V10.3659C3 10.1766 3.1732 10.0346 3.35884 10.0718L5.17845 10.4357C5.36542 10.4731 5.5 10.6372 5.5 10.8279ZM12 10.4879V11.2C12 11.3657 11.8657 11.5 11.7 11.5H9.8C9.63431 11.5 9.5 11.3657 9.5 11.2V10.7459C9.5 10.6029 9.60094 10.4798 9.74117 10.4518L11.5216 10.0957C11.7691 10.0462 12 10.2355 12 10.4879Z","car-repair":"M3 5C3.74028 5 4.38662 4.5978 4.73243 4H12C12.5523 4 13 3.55228 13 3 13 2.44772 12.5523 2 12 2H4.73243C4.38662 1.4022 3.74028 1 3 1 2.25972 1 1.61337 1.4022 1.26756 2H3V4H1.26756C1.61337 4.5978 2.25972 5 3 5ZM2.14645 9.35355C2.05268 9.44732 2 9.5745 2 9.70711V13.5C2 13.7761 2.22386 14 2.5 14H4C4.27614 14 4.5 13.7761 4.5 13.5V13H10.5V13.5C10.5 13.7761 10.7239 14 11 14H12.5C12.7761 14 13 13.7761 13 13.5V9.70711C13 9.5745 12.9473 9.44732 12.8536 9.35355L12 8.5 10.6456 6.24275C10.5553 6.09215 10.3925 6 10.2169 6H4.78309C4.60746 6 4.44471 6.09215 4.35435 6.24275L3 8.5 2.14645 9.35355ZM11.1338 9H3.86622L5.06619 7H9.93381L11.1338 9ZM5.5 10.8279V11.2C5.5 11.3657 5.36568 11.5 5.2 11.5H3.3C3.13431 11.5 3 11.3657 3 11.2V10.3659C3 10.1766 3.1732 10.0346 3.35883 10.0718L5.17844 10.4357C5.36541 10.4731 5.5 10.6372 5.5 10.8279ZM12 10.4879V11.2C12 11.3657 11.8657 11.5 11.7 11.5H9.8C9.63431 11.5 9.5 11.3657 9.5 11.2V10.7459C9.5 10.6029 9.60094 10.4798 9.74116 10.4518L11.5216 10.0957C11.7691 10.0462 12 10.2355 12 10.4879Z",casino:"M8.5,10c0.4561,0.6072,1.1821,1,2,1c1.3807,0,2.5-1.1193,2.5-2.5c0-0.5642-0.1938-1.0789-0.509-1.4973L12.5,7l-5-6l-5,6 l0.009,0.0027C2.1938,7.4211,2,7.9358,2,8.5C2,9.8807,3.1193,11,4.5,11c0.8179,0,1.5439-0.3928,2-1 C6.5997,9.8672,6.7902,9.6135,7,9.3337V11.5C7,13,4.5,13,4.5,13C4.2239,13,4,13.2238,4,13.5C4,13.7761,4.2239,14,4.5,14H7h1h2.5 c0.2761,0,0.5-0.2239,0.5-0.5c0-0.2762-0.2239-0.5-0.5-0.5c0,0-2.5,0-2.5-1.5V9.3337C8.2098,9.6135,8.4003,9.8672,8.5,10z",castle:"M11,4H4C3.4477,4,3,3.5523,3,3V0.5C3,0.2239,3.2239,0,3.5,0S4,0.2239,4,0.5V2h1V1c0-0.5523,0.4477-1,1-1s1,0.4477,1,1v1h1V1 c0-0.5523,0.4477-1,1-1s1,0.4477,1,1v1h1V0.5C11,0.2239,11.2239,0,11.5,0S12,0.2239,12,0.5V3C12,3.5523,11.5523,4,11,4z M14,14.5 c0,0.2761-0.2239,0.5-0.5,0.5h-12C1.2239,15,1,14.7761,1,14.5S1.2239,14,1.5,14H2c0.5523,0,1-0.4477,1-1c0,0,1-6,1-7 c0-0.5523,0.4477-1,1-1h5c0.5523,0,1,0.4477,1,1c0,1,1,7,1,7c0,0.5523,0.4477,1,1,1h0.5c0.2723-0.0001,0.4946,0.2178,0.5,0.49V14.5z M9,10.5C9,9.6716,8.3284,9,7.5,9S6,9.6716,6,10.5V14h3V10.5z","castle-JP":"M12.5,12.75a1,1,0,0,1-1-.9995V7.25H10a1,1,0,0,1-1-1v-2H6v2a1,1,0,0,1-1,1H3.5v4.5a1,1,0,0,1-2,0V6.25a1,1,0,0,1,1-1H4v-2a1,1,0,0,1,1-1h5a1,1,0,0,1,1,1v2h1.5a1,1,0,0,1,1,1v5.5a1,1,0,0,1-.9995,1Z",caution:"M1.09302 11.8924L6.84044 1.3905C7.12539 0.869834 7.87461 0.869834 8.15956 1.3905L13.907 11.8924C14.1805 12.3922 13.818 13.0019 13.2474 13.0019H1.75258C1.18195 13.0019 0.819505 12.3922 1.09302 11.8924ZM8.29999 8L8.70296 5.5822C8.75375 5.27743 8.51873 5 8.20976 5H6.79022C6.48125 5 6.24623 5.27743 6.29703 5.5822L6.69999 8H8.29999ZM8.59999 9.9C8.59999 9.29249 8.10751 8.8 7.49999 8.8C6.89248 8.8 6.39999 9.29249 6.39999 9.9C6.39999 10.5075 6.89248 11 7.49999 11C8.10751 11 8.59999 10.5075 8.59999 9.9Z",cemetery:"M11.46,12h-0.68L12,3.55c0.0175-0.2867-0.2008-0.5332-0.4874-0.5507C11.4884,2.9979,11.4641,2.9981,11.44,3h-1.18 c0-0.92-1.23-2-2.75-2S4.77,2.08,4.77,3H3.54C3.253,2.9885,3.0111,3.2117,2.9995,3.4987C2.9988,3.5158,2.999,3.5329,3,3.55L4.2,12 H3.55C3.2609,11.9886,3.0162,12.2112,3,12.5V14h9v-1.51C11.9839,12.2067,11.7435,11.9886,11.46,12z M4.5,5h6v1h-6V5z","cemetery-JP":"M11.5,11h-3V2.5a.9448.9448,0,0,0-1-1,.9448.9448,0,0,0-1,1V11h-3a1,1,0,0,0,0,2h8a.9448.9448,0,0,0,1-1A1.0022,1.0022,0,0,0,11.5,11Z","charging-station":"m14 4v-1.51c-.0054-.2722-.2277-.4901-.5-.49-.2816.0047-.5062.2367-.5015.5184.0002.0105.0007.0211.0015.0316v2.45c0 .5523.4477 1 1 1v5.5c0 .2761-.2239.5-.5.5s-.5-.2239-.5-.5v-2c0-.8284-.6716-1.5-1.5-1.5h-1.5v-6c0-.5523-.4477-1-1-1h-6c-.5523 0-1 .4477-1 1v11c0 .5523.4477 1 1 1h6c.5523 0 1-.4477 1-1v-4h1.5c.2761 0 .5.2239.5.5v2c0 .8284.6716 1.5 1.5 1.5s1.5-.6716 1.5-1.5v-6.5c0-.5523-.4477-1-1-1zm-5.7996 3.3995-2.6006 3.4674-.0164-.0072c-.0465.0787-.1167.1403-.2146.1403-.1476 0-.2672-.1196-.2672-.2672 0-.028.0217-.0463.0297-.0717l-.0177-.0078.7766-2.3245c.054-.1617-.0664-.3288-.2369-.3288h-1.6539c-.2058 0-.3232-.2349-.1998-.3995l2.6006-3.4674.0164.0072c.0465-.0787.1167-.1403.2146-.1403.1476 0 .2672.1196.2672.2672 0 .028-.0217.0463-.0297.0717l.0176.0078-.7764 2.3244c-.0541.1618.0663.3289.2368.3289h1.6539c.2058 0 .3232.2349.1998.3995z",cinema:"M14,7.5v2c0,0.2761-0.2239,0.5-0.5,0.5S13,9.7761,13,9.5c0,0,0.06-0.5-1-0.5h-1v2.5c0,0.2761-0.2239,0.5-0.5,0.5h-8 C2.2239,12,2,11.7761,2,11.5v-4C2,7.2239,2.2239,7,2.5,7h8C10.7761,7,11,7.2239,11,7.5V8h1c1.06,0,1-0.5,1-0.5 C13,7.2239,13.2239,7,13.5,7S14,7.2239,14,7.5z M4,3C2.8954,3,2,3.8954,2,5s0.8954,2,2,2s2-0.8954,2-2S5.1046,3,4,3z M4,6 C3.4477,6,3,5.5523,3,5s0.4477-1,1-1s1,0.4477,1,1S4.5523,6,4,6z M8.5,2C7.1193,2,6,3.1193,6,4.5S7.1193,7,8.5,7S11,5.8807,11,4.5 S9.8807,2,8.5,2z M8.5,6C7.6716,6,7,5.3284,7,4.5S7.6716,3,8.5,3S10,3.6716,10,4.5S9.3284,6,8.5,6z",circle:"M14,7.5c0,3.5899-2.9101,6.5-6.5,6.5S1,11.0899,1,7.5S3.9101,1,7.5,1S14,3.9101,14,7.5z","circle-stroked":"M7.5 12.3C4.84898 12.3 2.7 10.151 2.7 7.5C2.7 4.84898 4.84898 2.7 7.5 2.7C10.151 2.7 12.3 4.84898 12.3 7.5C12.3 10.151 10.151 12.3 7.5 12.3ZM7.5 14C11.0899 14 14 11.0899 14 7.5C14 3.9101 11.0899 1 7.5 1C3.9101 1 1 3.9101 1 7.5C1 11.0899 3.9101 14 7.5 14Z",city:"M12.6368 3.9994H10.9981V2.3608C10.998 2.16148 10.8364 1.99994 10.6371 2H10.3591C10.1598 2 9.9982 2.16158 9.9982 2.3609V3.9994H8.36C8.16068 3.9994 7.9991 4.16098 7.9991 4.3603V9.9984H4.3621C4.16168 9.9984 3.9992 10.1609 3.9992 10.3613V12.6358C3.99975 12.8358 4.16207 12.9977 4.3621 12.9977H12.6368C12.8361 12.9977 12.9977 12.8361 12.9977 12.6368V4.36C12.9977 4.16068 12.8361 3.9994 12.6368 3.9994ZM5.9989 11.9981H4.9989V10.9981H5.9989V11.9981ZM7.9989 11.9981H6.9989V10.9981H7.9989V11.9981ZM9.9989 11.9981H8.9989V10.9981H9.9989V11.9981ZM9.9989 9.9981H8.9989V8.9981H9.9989V9.9981ZM9.9989 7.9981H8.9989V6.9981H9.9989V7.9981ZM9.9989 5.9981H8.9989V4.9981H9.9989V5.9981ZM11.9989 11.9971H10.9989V10.9971H11.9989V11.9971ZM11.9989 9.9971H10.9989V8.9971H11.9989V9.9971ZM11.9989 7.9971H10.9989V6.9971H11.9989V7.9971ZM11.9989 5.9971H10.9989V4.9971H11.9989V5.9971ZM6.9987 2.3608C6.99864 2.16152 6.83708 2 6.6378 2H4.36C4.16068 2 3.9991 2.16158 3.9991 2.3609V4H2.36C2.16138 4.00049 2.00049 4.16138 2 4.36V12.6474C2 12.8407 2.1567 12.9974 2.35 12.9974H2.9994V8.9986H6.9987V2.3608ZM4 7.9981H3V6.9981H4V7.9981ZM4 5.9981H3V4.9981H4V5.9981ZM6 7.9981H5V6.9981H6V7.9981ZM6 5.9981H5V4.9981H6V5.9981ZM6 3.9981H5V3H6V4V3.9981Z","clothing-store":"M4 2L1 4.5L1 7H4V13H11V7H14V4.5L11 2H9.5L7.5 6L5.5 2L4 2Z",college:"M7.5,1L0,4.5l2,0.9v1.7C1.4,7.3,1,7.9,1,8.5s0.4,1.2,1,1.4V10l-0.9,2.1 C0.8,13,1,14,2.5,14s1.7-1,1.4-1.9L3,10c0.6-0.3,1-0.8,1-1.5S3.6,7.3,3,7.1V5.9L7.5,8L15,4.5L7.5,1z M11.9,7.5l-4.5,2L5,8.4v0.1 c0,0.7-0.3,1.3-0.8,1.8l0.6,1.4v0.1C4.9,12.2,5,12.6,4.9,13c0.7,0.3,1.5,0.5,2.5,0.5c3.3,0,4.5-2,4.5-3L11.9,7.5L11.9,7.5z","college-JP":"M12.5,2.9992h-4v-1a1,1,0,0,0-2,0v1h-4a1,1,0,0,0,0,2h.67A10.8169,10.8169,0,0,0,5.15,8.8105c.3331.4313.6594.8248.9785,1.1936a14.3825,14.3825,0,0,1-2.6074,2.117,1,1,0,1,0,.955,1.7581h0A15.65,15.65,0,0,0,7.5,11.4613a15.65,15.65,0,0,0,3.0239,2.4179,1,1,0,1,0,.9551-1.7578,14.3789,14.3789,0,0,1-2.6073-2.1171c.3191-.3688.6453-.7622.9784-1.1935a10.818,10.818,0,0,0,1.98-3.8116h.67a1,1,0,0,0,0-2ZM8.2671,7.5879c-.2614.3385-.5154.6413-.767.937-.2517-.2957-.5057-.5985-.7672-.937A9.5885,9.5885,0,0,1,5.2676,4.9992H9.7319A9.5789,9.5789,0,0,1,8.2671,7.5879Z",commercial:"m14 6h-13c.0881-1.3829.427-2.7383 1-4h11c.5731 1.2617.9119 2.6171 1 4zm-11 1h9v6h-1v-5h-3v5h-5zm1 3h3v-2h-3z","communications-tower":"M11.8545,6.4336l-.4131-.2813a4.7623,4.7623,0,0,0,.2813-4.8779l-.0835-.1533L12.0747.875l.0908.167a5.2619,5.2619,0,0,1-.311,5.3916Zm1.1521,7.1316V14h-11v-.4348H4.4952L6.0439,6.4a.5.5,0,0,1,.4888-.3945h.7255V4.6014A1.14,1.14,0,0,1,6.3756,3.5a1.1568,1.1568,0,1,1,2.3136,0,1.14,1.14,0,0,1-.931,1.1112V6.0059h.7223A.5.5,0,0,1,8.9692,6.4l1.5478,7.1648ZM8.4543,8.751H6.5588L6.236,10.2441H8.777ZM6.1279,10.7441l-.3233,1.4952H9.2082l-.3231-1.4952ZM6.936,7.0059,6.6669,8.251H8.3463L8.0771,7.0059ZM5.5179,13.5652H9.4948l-.1786-.8259h-3.62ZM5.21,5.0137a2.7523,2.7523,0,0,1,.0161-3.0518L4.812,1.6826a3.25,3.25,0,0,0-.019,3.6065ZM10.7568,3.5a3.2433,3.2433,0,0,0-.5341-1.7861l-.418.2754a2.7517,2.7517,0,0,1-.0176,3.0488l.4141.2793A3.2341,3.2341,0,0,0,10.7568,3.5ZM3.5342,6.1182A4.7637,4.7637,0,0,1,3.3813,1.13L2.9478.88a5.2643,5.2643,0,0,0,.1694,5.5137Z",confectionery:"M13,4a1,1,0,0,0-1-1,1,1,0,0,0-2,0V5.0673A3.4808,3.4808,0,0,0,4.3583,9H2a1,1,0,0,0,0,2,1,1,0,0,0,1,1,1,1,0,0,0,2,0V9.9326A3.4807,3.4807,0,0,0,10.6417,6H13a1,1,0,0,0,0-2ZM7.5,9.9925A2.484,2.484,0,0,1,6.3184,5.319a1.0809,1.0809,0,0,1,.5459.307A2.1243,2.1243,0,0,1,7.25,7.0117l.001.9561A2.5821,2.5821,0,0,0,7.76,9.7031a1.5462,1.5462,0,0,0,.2591.2333A2.4861,2.4861,0,0,1,7.5,9.9925ZM8.6815,9.681a1.0813,1.0813,0,0,1-.5458-.307A2.1243,2.1243,0,0,1,7.75,7.9883l-.001-.9561A2.5821,2.5821,0,0,0,7.24,5.2969a1.5557,1.5557,0,0,0-.2592-.2334A2.4843,2.4843,0,0,1,8.6815,9.681Z",construction:"M13.5 11h-1.8L8.2.5C8-.2 7-.2 6.8.5L3.3 11H1.5c-.3 0-.5.2-.5.5v1c0 .3.2.5.5.5h12c.3 0 .5-.2.5-.5v-1c0-.3-.2-.5-.5-.5ZM7 3h1l.7 2H6.4L7 3ZM5.7 7h3.6l.7 2H5l.7-2Z",convenience:"M2.9982,3.0687s.1875-1.062,1-1.062H5.0043V1.7276a.5.5,0,0,1,.5-.5H9.4882a.5.5,0,0,1,.5.5v.2791h1.01a.8324.8324,0,0,1,.6373.2937,1.7589,1.7589,0,0,1,.3627.7683s.3108,1.5719.5921,2.9181h-.938L11,3,3.982,2.9956,3.3336,5.9868H2.382Zm11,4.9144a1,1,0,0,1-.9992,1l-1.0008,3.973s-.1875,1.0417-1,1.0417h-7c-.8125,0-1-1.0417-1-1.0417L1.9822,8.98a.9985.9985,0,0,1,.016-1.9968h11A1,1,0,0,1,13.9982,7.9831ZM5.0327,12.13,5.03,11.0051,4.6392,9.4686a.5373.5373,0,1,0-1.0649.1445L3.78,11.0075l.1874,1.2672A.5373.5373,0,1,0,5.0327,12.13Zm2-2.5967A.5332.5332,0,0,0,6.4994,9l-.0039.0008L6.4886,9a.4992.4992,0,0,0-.3575.1509.529.529,0,0,0-.1648.3828v2.68a.5332.5332,0,1,0,1.0663,0Zm1.998,0A.5314.5314,0,0,0,8.694,9.04a.4992.4992,0,0,0-.393,0,.5312.5312,0,0,0-.3366.4934v2.68a.5331.5331,0,1,0,1.0662,0Zm2.3857.08a.5373.5373,0,1,0-1.0649-.1445L9.96,10.9938,9.9579,12.13a.5373.5373,0,1,0,1.0649.1446Z",cricket:"M8,1.5C8,2.3284,7.3284,3,6.5,3S5,2.3284,5,1.5S5.6716,0,6.5,0S8,0.6716,8,1.5z M10.88,7.18L10.88,7.18l-2-2l0,0l0,0 C8.7815,5.0616,8.6339,4.9952,8.48,5H3.75C3.3736,4.9915,3.0508,5.2669,3,5.64l0,0l-1,7.7l0,0c-0.0068,0.0464-0.0068,0.0936,0,0.14 c0,0.2761,0.2239,0.5,0.5,0.5c0.2251,0.0153,0.4315-0.1251,0.5-0.34l0,0l1.2-3.89l0,0l0.26-0.83l0.4,0.44l0,0L6,10.6v2.9 C6,13.7761,6.2239,14,6.5,14S7,13.7761,7,13.5v-3l0,0l0,0c-0.0081-0.0788-0.0356-0.1544-0.08-0.22l0,0L5.48,8.5l1-2.5h1.71l2,1.84 l0,0c0.0928,0.1077,0.2278,0.1697,0.37,0.17C10.8163,7.9791,11.007,7.7581,11,7.5C10.9997,7.3824,10.9571,7.2688,10.88,7.18z M14,11.27c-0.4142,0-0.75,0.3358-0.75,0.75s0.3358,0.75,0.75,0.75s0.75-0.3358,0.75-0.75S14.4142,11.27,14,11.27z M10.76,9.74V9 c0-0.1381-0.1119-0.25-0.25-0.25S10.26,8.8619,10.26,9v0.74c-0.1522,0.0855-0.2474,0.2455-0.25,0.42v3.34 c0,0.2761,0.2239,0.5,0.5,0.5s0.5-0.2239,0.5-0.5v-3.34C11.0074,9.9855,10.9122,9.8255,10.76,9.74z",cross:"M3.64 2.27L7.5 6.13L11.34 2.29C11.5114 2.1076 11.7497 2.0029 12 2C12.5523 2 13 2.4477 13 3C13.0047 3.2478 12.907 3.4866 12.73 3.66L8.84 7.5L12.73 11.39C12.8948 11.5512 12.9915 11.7696 13 12C13 12.5523 12.5523 13 12 13C11.7423 13.0107 11.492 12.9127 11.31 12.73L7.5 8.87L3.65 12.72C3.4793 12.8963 3.2453 12.9971 3 13C2.4477 13 2 12.5523 2 12C1.9953 11.7522 2.093 11.5134 2.27 11.34L6.16 7.5L2.27 3.61C2.1052 3.4488 2.0085 3.2304 2 3C2 2.4477 2.4477 2 3 2C3.2404 2.0029 3.4701 2.0998 3.64 2.27Z",dam:"M13.94,9.5c0,0.2761-0.2239,0.5-0.5,0.5l0,0c-0.259,0.0219-0.4994,0.1439-0.67,0.34c-0.2714,0.2887-0.6175,0.4964-1,0.6 c-0.6115,0.1816-1.2734,0.0424-1.76-0.37l-0.39-0.35c-0.2976-0.3038-0.7851-0.3087-1.0889-0.0111 C8.5274,10.2126,8.5237,10.2163,8.52,10.22c-0.14,0.12-0.27,0.25-0.42,0.37c-0.7278,0.5784-1.7663,0.5489-2.46-0.07L5.3,10.19 l-0.1-0.06l0.3,1.22l0.49,2c0.0829,0.2634-0.0634,0.5441-0.3267,0.6271C5.6105,13.9937,5.5553,14.0014,5.5,14h-4 C1.2239,14,1,13.7761,1,13.5v-12C1,1.2239,1.2239,1,1.5,1h1.1c0.2346-0.0011,0.4384,0.1611,0.49,0.39L4,5.06V5.2 c0.6569-0.314,1.4361-0.2205,2,0.24c0.16,0.13,0.31,0.28,0.47,0.41c0.2847,0.2546,0.7153,0.2546,1,0c0.16-0.13,0.31-0.28,0.47-0.41 c0.7076-0.5968,1.7424-0.5968,2.45,0c0.15,0.13,0.29,0.27,0.44,0.39c0.2847,0.2546,0.7153,0.2546,1,0l0.47-0.41 c0.3163-0.2672,0.7159-0.4157,1.13-0.42l0,0c0.2761,0,0.5,0.2239,0.5,0.5S13.7061,6,13.43,6l0,0 c-0.259,0.0219-0.4994,0.1439-0.67,0.34c-0.2714,0.2887-0.6175,0.4964-1,0.6C11.1485,7.1216,10.4866,6.9824,10,6.57L9.67,6.23 C9.3724,5.9262,8.8849,5.9213,8.5811,6.2189C8.5774,6.2226,8.5737,6.2263,8.57,6.23C8.43,6.35,8.3,6.48,8.15,6.6 C7.4222,7.1784,6.3837,7.1489,5.69,6.53L5.3,6.19c-0.2847-0.2546-0.7153-0.2546-1,0L4.24,6.24L4.93,9 C5.3226,9.029,5.6965,9.1793,6,9.43c0.16,0.13,0.31,0.28,0.47,0.41c0.2847,0.2546,0.7153,0.2546,1,0c0.16-0.13,0.31-0.28,0.47-0.41 c0.7076-0.5968,1.7424-0.5968,2.45,0c0.15,0.13,0.29,0.27,0.44,0.39c0.2847,0.2546,0.7153,0.2546,1,0l0.47-0.41 c0.3177-0.2636,0.7172-0.4085,1.13-0.41l0,0c0.2761-0.0055,0.5044,0.2138,0.5099,0.4899C13.94,9.4933,13.94,9.4966,13.94,9.5z",danger:"M13.94,14.68c-0.0749,0.194-0.262,0.3215-0.47,0.32c-0.0595,0.0107-0.1205,0.0107-0.18,0L7.5,12.56L1.7,15 c-0.2572,0.1005-0.5472-0.0266-0.6476-0.2838C1.0516,14.7141,1.0508,14.7121,1.05,14.71c-0.1291-0.2441-0.0358-0.5467,0.2084-0.6757 C1.2845,14.0205,1.3118,14.009,1.34,14l4.85-2l-4.85-2C1.0758,9.9197,0.9267,9.6404,1.007,9.3762s0.3596-0.4133,0.6238-0.333 C1.6545,9.0504,1.6776,9.0594,1.7,9.07l5.8,2.41l5.8-2.41c0.2494-0.1185,0.5477-0.0124,0.6662,0.237 c0.1185,0.2494,0.0124,0.5477-0.237,0.6662C13.7068,9.9839,13.6837,9.9928,13.66,10L8.8,12l4.85,2 c0.2607,0.091,0.3983,0.3761,0.3074,0.6368C13.9523,14.6515,13.9465,14.6659,13.94,14.68z M12,4.23v0.45 c-0.0021,0.2129-0.0722,0.4196-0.2,0.59C11.2414,5.8883,10.6399,6.4664,10,7v1.16c0.0015,0.208-0.126,0.3951-0.32,0.47L7.52,9.5 H7.45L5.28,8.63C5.1016,8.5428,4.9917,8.3584,5,8.16V7C4.3528,6.4675,3.7446,5.8893,3.18,5.27C3.0593,5.0972,2.9963,4.8907,3,4.68 V4.23C3.1669,2.0117,4.8974,0.2307,7.11,0h0.36l0,0h0.39C10.0862,0.2131,11.8348,1.9997,12,4.23z M6,4c0-0.5523-0.4477-1-1-1 S4,3.4477,4,4s0.4477,1,1,1S6,4.5523,6,4z M7,7c0-0.2761-0.2239-0.5-0.5-0.5S6,6.7239,6,7v0.5C6,7.7761,6.2239,8,6.5,8 S7,7.7761,7,7.5V7z M9,7c0-0.2761-0.2239-0.5-0.5-0.5S8,6.7239,8,7v0.5C8,7.7761,8.2239,8,8.5,8S9,7.7761,9,7.5V7z M11,4 c0-0.5523-0.4477-1-1-1S9,3.4477,9,4s0.4477,1,1,1S11,4.5523,11,4z",defibrillator:"m1.54995 7.33811c-2.386799-4.5965 3.63-7.660899 5.952-3.0644 2.3215-4.596499 8.33875-1.5322 5.95235 3.0644-.0869.1671-.2028.3456-.3114.5212h-1.8079l-1.81455-2.7216c-.06321-.09473-.1511-.1704-.25417-.21884-.10308-.04843-.21743-.06779-.3307-.05599-.11327.01181-.22117.05433-.31205.12298-.09087.06865-.16126.16082-.20358.26655l-1.6484 4.12-1.33-1.33c-.11716-.11707-.27597-.18288-.4416-.183h-3.1389c-.1086-.1757-.2245-.3542-.3111-.5213zm9.45005 1.7713c-.103-.00003-.2044-.02545-.2951-.07399-.0908-.04854-.1682-.11871-.2254-.20431l-1.34085-2.0111-1.5587 3.89679c-.03839.096-.10002.181-.17936.2474-.07935.0663-.17393.1119-.27524.1326-.04125.0086-.08327.0128-.1254.0126-.16568.0001-.32462-.0656-.4419-.1826l-1.8169-1.81739h-2.0054c1.36645 1.66819 2.85739 3.23039 4.46 4.67319.08531.077.19616.1197.3111.1197s.22579-.0427.3111-.1197c1.59778-1.4447 3.08545-3.0068 4.45055-4.67319z",dentist:"M4.36,14c-1,0-0.56-2.67-0.86-5c-0.1-0.76-1-1.49-1.12-2.06C2,5,1.39,1.44,3.66,1S6,3,7.54,3s1.57-2.36,3.85-2 s1.59,3.9,1.29,5.9c-0.1,0.45-1.1,1.48-1.18,2.06c-0.33,2.4,0.32,5-0.8,5c-0.93,0-1.32-2.72-2-4.5C8.43,8.63,8.06,8,7.54,8 C6,8,5.75,14,4.36,14z",diamond:"M7.03715 1.20147L2.12542 6.7C2.04962 6.78393 2.00568 6.89005 2.00051 7C1.99535 7.10994 2.02925 7.21013 2.09689 7.3L7.0065 13.7601C7.06233 13.8343 7.13629 13.8947 7.22216 13.9365C7.30803 13.9782 7.40331 14 7.5 14C7.59669 14 7.69197 13.9782 7.77784 13.9365C7.86371 13.8947 7.93766 13.8343 7.9935 13.7601L12.9031 7.3C12.9707 7.21013 13.0047 7.10994 12.9995 7C12.9943 6.89005 12.9504 6.78393 12.8746 6.7L7.96285 1.20147C7.90591 1.13833 7.83501 1.08761 7.75508 1.05282C7.67514 1.01802 7.5881 1 7.5 1C7.4119 1 7.32486 1.01802 7.24492 1.05282C7.16499 1.08761 7.09409 1.13833 7.03715 1.20147Z",doctor:"M5.5,7C4.1193,7,3,5.8807,3,4.5l0,0v-2C3,2.2239,3.2239,2,3.5,2H4c0.2761,0,0.5-0.2239,0.5-0.5S4.2761,1,4,1H3.5 C2.6716,1,2,1.6716,2,2.5v2c0.0013,1.1466,0.5658,2.2195,1.51,2.87l0,0C4.4131,8.1662,4.9514,9.297,5,10.5C5,12.433,6.567,14,8.5,14 s3.5-1.567,3.5-3.5V9.93c1.0695-0.2761,1.7126-1.367,1.4365-2.4365C13.1603,6.424,12.0695,5.7809,11,6.057 C9.9305,6.3332,9.2874,7.424,9.5635,8.4935C9.7454,9.198,10.2955,9.7481,11,9.93v0.57c0,1.3807-1.1193,2.5-2.5,2.5S6,11.8807,6,10.5 c0.0511-1.2045,0.5932-2.3356,1.5-3.13l0,0C8.4404,6.7172,9.001,5.6448,9,4.5v-2C9,1.6716,8.3284,1,7.5,1H7 C6.7239,1,6.5,1.2239,6.5,1.5S6.7239,2,7,2h0.5C7.7761,2,8,2.2239,8,2.5v2l0,0C8,5.8807,6.8807,7,5.5,7 M11.5,9 c-0.5523,0-1-0.4477-1-1s0.4477-1,1-1s1,0.4477,1,1S12.0523,9,11.5,9z","dog-park":"M 10.300781 1.2207031 C 9.9144812 1.2207031 9.6 1.2 9.5 2 L 9.0996094 4.5214844 L 11.5 6.5 L 13.5 6.5 C 14.9 6.5 15 5.5410156 15 5.5410156 L 13.099609 3.3222656 C 12.399609 2.6222656 11.7 2.5 11 2.5 L 11 2 C 11 2 11.067481 1.2206031 10.300781 1.2207031 z M 4.75 1.5 C 4.75 1.5 3.7992187 1.5206031 3.1992188 1.7207031 C 2.5992187 1.9207031 2 2.6210938 2 3.6210938 L 2 7.5214844 C 2 9.2214844 1.3 9.5 1 9.5 C 1 9.5 0 9.5214844 0 10.521484 L 0 12.720703 C 0 12.720703 0.00078125 13.521484 0.80078125 13.521484 L 1 13.521484 L 1.5 13.521484 L 2 13.521484 L 2 13.021484 L 2 12.822266 C 2 12.422266 1.8 12.221094 1.5 12.121094 L 1.5 11.021484 C 2.5 11.021484 2.6 10.820703 3 10.720703 L 3.5507812 12.917969 C 3.6507813 13.217969 3.7507813 13.417578 4.0507812 13.517578 L 5.0507812 13.517578 L 6 13.5 L 6 12.699219 C 6 12.022819 5 12 5 12 L 5 9.5 L 8.5 9.5 L 9.1992188 12.121094 C 9.5992188 13.521094 10.5 13.5 10.5 13.5 L 11 13.5 L 12 13.5 L 12 12.699219 C 12 11.987419 11 12 11 12 L 11.099609 7.921875 L 8 5.5 L 3.5 5.5 L 3.5 3.5 C 3.5 3.1 3.7765 3.0053 4 3 C 4.4941 2.9882 4.75 3 4.75 3 C 5.1642 3 5.5 2.6642 5.5 2.25 C 5.5 1.8358 5.1642 1.5 4.75 1.5 z M 11.75 4 C 11.8881 4 12 4.1119 12 4.25 C 12 4.3881 11.8881 4.5 11.75 4.5 C 11.6119 4.5 11.5 4.3881 11.5 4.25 C 11.5 4.1119 11.6119 4 11.75 4 z","drinking-water":"M6,1A2,2,0,0,0,4,3V6.5a.5.5,0,0,0,.5.5h2A.5.5,0,0,0,7,6.5v-2A.5.5,0,0,1,7.5,4H14V1ZM7,15H4a.5.5,0,0,1-.48-.38L2,8.62a.5.5,0,0,1,.365-.606A.558.558,0,0,1,2.5,8h6a.5.5,0,0,1,.514.485A.47.47,0,0,1,9,8.62l-1.5,6A.5.5,0,0,1,7,15ZM3.65,11H7.36l.5-2H3.14Z",elevator:"M11,1H4A1,1,0,0,0,3,2V13a1,1,0,0,0,1,1h7a1,1,0,0,0,1-1V2A1,1,0,0,0,11,1ZM7.5,12.5l-2-4h4Zm-2-6,2-4,2,4Z",embassy:"M6.65,2C5.43,2,4.48,3.38,4.11,3.82C4.0365,3.9102,3.9975,4.0237,4,4.14v4.4C3.9884,8.7827,4.1758,8.9889,4.4185,9.0005 C4.528,9.0057,4.6355,8.9699,4.72,8.9c0.4665-0.6264,1.1589-1.0461,1.93-1.17C8.06,7.73,8.6,9,10.07,9 c0.9948-0.0976,1.9415-0.4756,2.73-1.09c0.1272-0.0934,0.2016-0.2422,0.2-0.4V2.45c0.0275-0.2414-0.1459-0.4595-0.3874-0.487 C12.5332,1.954,12.4527,1.9668,12.38,2c-0.6813,0.5212-1.4706,0.8834-2.31,1.06C8.6,3.08,8.12,2,6.65,2z M2.5,3 c-0.5523,0-1-0.4477-1-1s0.4477-1,1-1s1,0.4477,1,1S3.0523,3,2.5,3z M3,4v9.48c0,0.2761-0.2239,0.5-0.5,0.5S2,13.7561,2,13.48V4 c0-0.2761,0.2239-0.5,0.5-0.5S3,3.7239,3,4z","emergency-phone":"M7.875,11.49a.51.51,0,0,0,.72,0l.72-.72,2.18,2.16-.37.37a2.24,2.24,0,0,1-1.44.7H8.24a2.24,2.24,0,0,1-1.45-.7L1.72,8.23A2.24,2.24,0,0,1,1,6.78V5.33a2.24,2.24,0,0,1,.72-1.45l.36-.36L4.26,5.69l-.73.73a.51.51,0,0,0,0,.72Zm4.72.38a1,1,0,0,0,.036-1.414h0l-.036-.036-.72-.72a1,1,0,0,0-1.414-.036h0l-.036.036ZM5.315,4.62a1,1,0,0,0,.036-1.414h0L4.595,2.45a1,1,0,0,0-1.414-.036h0L3.14,2.45ZM10,2V4H8V5h2V7h1V5h2V4H11V2Z",entrance:"m8 6.5v-1c0-.26522-.10536-.51957-.29289-.70711-.18754-.18753-.44189-.29289-.70711-.29289s-.51957.10536-.70711.29289c-.18753.18754-.29289.44189-.29289.70711v3zm-2-3.5c0-.19778.05865-.39112.16853-.55557s.26606-.29262.44879-.36831c.18272-.07569.38379-.09549.57777-.0569.19398.03858.37216.13382.51202.27367.13985.13986.23509.31804.27368.51202.03858.19398.01878.39505-.05691.57777-.07569.18273-.20386.33891-.36831.44879s-.35779.16853-.55557.16853c-.26522 0-.51957-.10536-.70711-.29289-.18753-.18754-.29289-.44189-.29289-.70711zm9 3c0 .26522-.1054.51957-.2929.70711-.1875.18753-.4419.29289-.7071.29289h-1.58c-.1316-.00076-.2621.02446-.3839.07423-.1218.04976-.2327.12309-.3261.21577l-5.42 5.42c-.18626.1847-.43766.2889-.7.29h-2.59c-.26522 0-.51957-.1054-.70711-.2929-.18753-.1875-.29289-.4419-.29289-.7071s.10536-.5196.29289-.7071c.18754-.1875.44189-.2929.70711-.2929h1.59c.26234-.0011.51374-.1053.7-.29l5.42-5.42c.0934-.09268.2043-.16601.3261-.21577.1218-.04977.2523-.07499.3839-.07423h2.58c.2652 0 .5196.10536.7071.29289.1875.18754.2929.44189.2929.70711z","entrance-alt1":"M6.554,9.639a.5.5,0,0,0,.707.707L9.928,7.669a.25.25,0,0,0,0-.354h0L7.261,4.639a.5.5,0,0,0-.707.707L8.2,7H1.5a.5.5,0,0,0,0,1H8.2ZM12,1H5.5a.5.5,0,0,0,0,1h6a.5.5,0,0,1,.5.5v10a.5.5,0,0,1-.5.5H5.25a.5.5,0,0,0,0,1H12a1,1,0,0,0,1-1V2A1,1,0,0,0,12,1Z",farm:"m8 6-3-2-3 2-1 2v4h2v-2h4v2h2v-4zm-2 2h-2v-2h2zm8 4h-3v-9.5c0-.39782.158-.77936.4393-1.06066s.6629-.43934 1.0607-.43934.7794.15804 1.0607.43934.4393.66284.4393 1.06066z","fast-food":"M14,8c0,0.5523-0.4477,1-1,1H2C1.4477,9,1,8.5523,1,8s0.4477-1,1-1h11C13.5523,7,14,7.4477,14,8z M3.5,10H2 c0,1.6569,1.3431,3,3,3h5c1.6569,0,3-1.3431,3-3H3.5z M3,6H2V4c0-1.1046,0.8954-2,2-2h7c1.1046,0,2,0.8954,2,2v2H3z M11,4.5 C11,4.7761,11.2239,5,11.5,5S12,4.7761,12,4.5S11.7761,4,11.5,4S11,4.2239,11,4.5z M9,3.5C9,3.7761,9.2239,4,9.5,4S10,3.7761,10,3.5 S9.7761,3,9.5,3S9,3.2239,9,3.5z M7,4.5C7,4.7761,7.2239,5,7.5,5S8,4.7761,8,4.5S7.7761,4,7.5,4S7,4.2239,7,4.5z M5,3.5 C5,3.7761,5.2239,4,5.5,4S6,3.7761,6,3.5S5.7761,3,5.5,3S5,3.2239,5,3.5z M3,4.5C3,4.7761,3.2239,5,3.5,5S4,4.7761,4,4.5 S3.7761,4,3.5,4S3,4.2239,3,4.5z",fence:"m13.5 9h-.5v-3h.5c.1326 0 .2598-.05268.3536-.14644.0937-.09377.1464-.22095.1464-.35356s-.0527-.25978-.1464-.35355c-.0938-.09377-.221-.14645-.3536-.14645h-.5v-2l-.286-.573c-.0218-.03651-.0525-.06683-.0894-.08809-.0368-.02125-.0784-.03273-.1209-.03333s-.0845.00969-.1219.0299c-.0374.0202-.069.04964-.0918.08552l-.29.579v2h-1v-2l-.286-.573c-.0218-.03651-.0525-.06683-.0894-.08809-.0368-.02125-.0784-.03273-.1209-.03333s-.0845.00969-.1219.0299c-.0374.0202-.069.04964-.0918.08552l-.29.579v2h-1v-2l-.286-.573c-.02178-.03651-.05254-.06683-.08936-.08809-.03681-.02125-.07846-.03273-.12096-.03333-.04251-.0006-.08446.00969-.12187.0299-.0374.0202-.06901.04964-.09181.08552l-.29.579v2h-1v-2l-.286-.573c-.02178-.03651-.05254-.06683-.08936-.08809-.03681-.02125-.07846-.03273-.12096-.03333-.04251-.0006-.08446.00969-.12187.0299-.0374.0202-.06901.04964-.09181.08552l-.29.579v2h-1v-2l-.286-.573c-.02178-.03651-.05254-.06683-.08936-.08809-.03681-.02125-.07846-.03273-.12096-.03333-.04251-.0006-.08446.00969-.12187.0299-.0374.0202-.06901.04964-.09181.08552l-.29.579v2h-1v-2l-.286-.573c-.02178-.03651-.05254-.06683-.08936-.08809-.03681-.02125-.07846-.03273-.12096-.03333-.04251-.0006-.08446.00969-.12187.0299-.0374.0202-.06901.04964-.09181.08552l-.29.579v2h-.5c-.13261 0-.25979.05268-.35355.14645-.09377.09377-.14645.22094-.14645.35355s.05268.25979.14645.35356c.09376.09376.22094.14644.35355.14644h.5v3h-.5c-.13261 0-.25979.05268-.35355.14645-.09377.09377-.14645.22094-.14645.35355s.05268.25979.14645.35356c.09376.09376.22094.14644.35355.14644h.5v1.5c0 .1326.05268.2598.14645.3536.09376.0937.22094.1464.35355.1464s.25979-.0527.35355-.1464c.09377-.0938.14645-.221.14645-.3536v-1.5h1v1.5c0 .1326.05268.2598.14645.3536.09376.0937.22094.1464.35355.1464s.25979-.0527.35355-.1464c.09377-.0938.14645-.221.14645-.3536v-1.5h1v1.5c0 .1326.05268.2598.14645.3536.09376.0937.22094.1464.35355.1464s.25979-.0527.35355-.1464c.09377-.0938.14645-.221.14645-.3536v-1.5h1v1.5c0 .1326.05268.2598.14645.3536.09376.0937.22094.1464.35355.1464s.25979-.0527.35355-.1464c.09377-.0938.14645-.221.14645-.3536v-1.5h1v1.5c0 .1326.0527.2598.1464.3536.0938.0937.221.1464.3536.1464s.2598-.0527.3536-.1464c.0937-.0938.1464-.221.1464-.3536v-1.5h1v1.5c0 .1326.0527.2598.1464.3536.0938.0937.221.1464.3536.1464s.2598-.0527.3536-.1464c.0937-.0938.1464-.221.1464-.3536v-1.5h.5c.1326 0 .2598-.05268.3536-.14644.0937-.09377.1464-.22095.1464-.35356s-.0527-.25978-.1464-.35355c-.0938-.09377-.221-.14645-.3536-.14645zm-10.5 0v-3h1v3zm2 0v-3h1v3zm2 0v-3h1v3zm2 0v-3h1v3zm2 0v-3h1v3z",ferry:"M5.33,11c0.6745,0.009,1.3262,0.245,1.85,0.67l0.26,0.23h0.05l0.31-0.28c0.9817-0.8115,2.379-0.8846,3.44-0.18L13.5,7L12,6 V2.45c-0.0466-0.8-0.6989-1.4305-1.5-1.45H10c0.0343-0.518-0.3579-0.9657-0.8759-1C9.0828-0.0027,9.0413-0.0027,9,0H6 C5.482-0.0343,5.0343,0.3579,5,0.8759C4.9973,0.9172,4.9973,0.9587,5,1H4.5C3.6989,1.0195,3.0466,1.65,3,2.45V6L1.5,7l2.25,4.53 C4.2143,11.2041,4.7631,11.02,5.33,11z M4,2.45c0.0105-0.2594,0.2293-0.4611,0.4886-0.4506C4.4924,1.9996,4.4962,1.9998,4.5,2h6 c0.259-0.0171,0.4829,0.1789,0.5,0.4379c0.0014,0.0207,0.0014,0.0414,0,0.0621v3l-3.5-2L4,5.45C4,5.45,4,2.45,4,2.45z M14,13v1 c-0.2626,0.0194-0.5069,0.1416-0.68,0.34c-0.2717,0.2883-0.6178,0.4959-1,0.6c-0.6147,0.1815-1.2795,0.0425-1.77-0.37l-0.39-0.35 c-0.3043-0.3026-0.7957-0.3026-1.1,0c-0.14,0.12-0.27,0.25-0.42,0.37c-0.7328,0.5856-1.7814,0.556-2.48-0.07l-0.39-0.35 c-0.2864-0.2502-0.7136-0.2502-1,0c-0.19,0.15-0.36,0.32-0.55,0.47c-0.7043,0.5215-1.6732,0.4968-2.35-0.06l-0.31-0.27 C1.4153,14.1443,1.2172,14.0346,1,14v-1c0.2585-0.032,0.5205,0.0169,0.75,0.14c0.2782,0.1722,0.5424,0.3661,0.79,0.58 c0.2051,0.2235,0.5147,0.319,0.81,0.25c0.1125-0.0333,0.2177-0.0876,0.31-0.16c0.16-0.12,0.29-0.26,0.45-0.39 c0.7106-0.5888,1.7394-0.5888,2.45,0c0.16,0.13,0.31,0.28,0.47,0.41c0.2864,0.2502,0.7136,0.2502,1,0c0.16-0.13,0.31-0.28,0.47-0.41 c0.7123-0.5943,1.7477-0.5943,2.46,0c0.15,0.13,0.29,0.27,0.44,0.39c0.2864,0.2502,0.7136,0.2502,1,0l0.47-0.41 C13.1895,13.1408,13.5886,12.9995,14,13z","ferry-JP":"M9.5 12.5H5.5L5.5 8C5.5 6.91153 6.07979 5.44812 6.85389 4.13809C7.07346 3.76652 7.29495 3.43049 7.5 3.1451C7.70505 3.43049 7.92654 3.76652 8.14611 4.13809C8.92021 5.44812 9.5 6.91153 9.5 8V12.5ZM7.5 1C7 1 4 5 4 8V12.5C4 13.3284 4.67157 14 5.5 14H9.5C10.3284 14 11 13.329 11 12.5006V8C11 5 8 1 7.5 1Z","fire-station":"M7.5 14C11.0899 14 14 11 14 7.50003C14 4.5 11.5 2 11.5 2L10.5 5.5L7.5 1L4.5 5.5L3.5 2C3.5 2 1 4.5 1 7.50003C1 11 3.91015 14 7.5 14ZM7.5 12.5C6.11929 12.5 5 11.3807 5 10C5 8.61929 7.5 5.5 7.5 5.5C7.5 5.5 10 8.61929 10 10C10 11.3807 8.88071 12.5 7.5 12.5Z","fire-station-JP":"M8.5,8.1489V11.75a1,1,0,0,1-2,0V8.1489A5.0084,5.0084,0,0,1,2.5,3.25a1,1,0,0,1,2,0,3,3,0,0,0,6,0,1,1,0,0,1,2,0A5.0082,5.0082,0,0,1,8.5,8.1489Z","fitness-centre":"M14.5,7V8h-1v2h-1v1H11V8H4v3H2.5V10h-1V8H.5V7h1V5h1V4H4V7h7V4h1.5V5h1V7Z",florist:"M1.5,1A2.7,2.7,0,0,1,4,3l.5-3L5,3A2.7,2.7,0,0,1,7.5,1c-.2.03-1,.26-1,2v.083A1.959,1.959,0,0,1,4.5,5H4.417A1.959,1.959,0,0,1,2.5,3C2.5,1.261,1.7,1.03,1.5,1ZM12.012,11l3-.5-3-.5A2.686,2.686,0,0,0,14,7.5c-.03.2-.248,1-1.988,1a2,2,0,0,0,0,4c1.739,0,1.958.8,1.988,1A2.686,2.686,0,0,0,12.012,11ZM9.688,5.548a1,1,0,0,1,0-2,1,1,0,0,1,0-2,.986.986,0,0,1,.852.507l.023-.012a.978.978,0,0,1-.116-.444,1,1,0,1,1,2,0,.978.978,0,0,1-.116.444l.019.01a.986.986,0,0,1,.85-.5,1,1,0,0,1,.025,2,1,1,0,0,1-.025,2,.986.986,0,0,1-.85-.5l-.016.009a.978.978,0,0,1,.113.44,1,1,0,0,1-2,0,.978.978,0,0,1,.113-.44l-.02-.011a.986.986,0,0,1-.852.507Zm.71-1.995A1.051,1.051,0,1,0,11.449,2.5,1.051,1.051,0,0,0,10.4,3.553v0ZM4.946,11.444l-.516-.515L8.892,6.475A1.746,1.746,0,0,1,8.44,6.22L4.076,10.575l-.519-.518A16.051,16.051,0,0,0,4.912,6a3.373,3.373,0,0,1-.412.035c-.041,0-.073-.008-.112-.01A16.953,16.953,0,0,1,3.131,9.631L2.76,9.26a.246.246,0,0,0-.4.079L.231,14.445a.287.287,0,0,0-.016.089.25.25,0,0,0,.25.25.289.289,0,0,0,.1-.019l5.1-2.124a.246.246,0,0,0,.079-.4l-.372-.372a16.874,16.874,0,0,1,3.612-1.256c0-.059-.015-.106-.015-.166A3.349,3.349,0,0,1,9,10.089,16.076,16.076,0,0,0,4.946,11.444Z",fuel:"m14 6v5.5c0 .2761-.2239.5-.5.5s-.5-.2239-.5-.5v-2c0-.8284-.6716-1.5-1.5-1.5h-1.5v-6c0-.5523-.4477-1-1-1h-6c-.5523 0-1 .4477-1 1v11c0 .5523.4477 1 1 1h6c.5523 0 1-.4477 1-1v-4h1.5c.2761 0 .5.2239.5.5v2c0 .8284.6716 1.5 1.5 1.5s1.5-.6716 1.5-1.5v-6.5c0-.5523-.4477-1-1-1v-1.51c-.0054-.2722-.2277-.4901-.5-.49-.2816.0047-.5062.2367-.5015.5184.0002.0105.0007.0211.0015.0316v2.45c0 .5523.4477 1 1 1s1-.4477 1-1-.4477-1-1-1zm-5 .5c0 .2761-.2239.5-.5.5h-5c-.2761 0-.5-.2239-.5-.5v-3c0-.2761.2239-.5.5-.5h5c.2761 0 .5.2239.5.5z",furniture:"m8.69099 10.142v-1.642c0-.13261-.05268-.25979-.14645-.35355-.09377-.09377-.22094-.14645-.35355-.14645h-1c-.13261 0-.25979.05268-.35356.14645-.09376.09376-.14644.22094-.14644.35355v1.641c-.75987.1945-1.4456.6085-1.9715 1.1905-.52591.5819-.86868 1.3059-.9855 2.0815-.01141.0723-.00702.1462.01285.2167.01987.0704.05476.1357.10227.1914s.10651.1004.17295.1311c.06643.0307.13873.0467.21193.0468h6.92201c.0732-.0001.1455-.0161.2119-.0468.0665-.0307.1255-.0754.173-.1311s.0824-.121.1022-.1914c.0199-.0705.0243-.1444.0129-.2167-.1176-.7765-.4616-1.501-.989-2.0828-.5275-.5819-1.2148-.9952-1.97601-1.1882zm4.63901-3.863-2.5-5c-.0412-.08351-.1048-.15387-.1838-.20316s-.1701-.07556-.2632-.07584h-5.38401c-.09261.00019-.18335.02609-.2621.07483-.07875.04873-.14241.11837-.1839.20117l-2.5 5c-.03809.076-.05617.16046-.05253.24539.00363.08494.02886.16754.07331.24001.04444.07247.10663.13241.18068.17416s.15753.06393.24254.06444h8.19401v1.5c0 .13261.0527.25979.1464.35355.0938.09377.221.14645.3536.14645s.2598-.05268.3535-.14645c.0938-.09376.1465-.22094.1465-.35355v-1.5h1.194c.0847-.00059.1678-.02269.2416-.06421s.1359-.1011.1804-.17317c.0444-.07207.0699-.15425.0739-.23884s-.0135-.16882-.0509-.24478z",gaming:"m13.1 11.5c-.6.3-1.4.1-1.8-.5l-1.1-1.4h-5.40002l-1.1 1.4c-.5.7-1.4.8-2.1.3-.5-.4-.700004-1-.600004-1.5l.700004-3.7c.2-1.2 1.3-2.1 2.5-2.1h2.8v-1.5c0-.8.6-1.5 1.4-1.5h3.10002c.3 0 .5.2.5.5s-.2.5-.5.5h-3.00002c-.3 0-.5.2-.5.4v.1 1.5h2.80002c1.2 0 2.3.9 2.5 2.1l.7 3.7c.1.7-.2 1.4-.9 1.7zm-7.10002-5c0-.8-.7-1.5-1.5-1.5s-1.5.7-1.5 1.5.7 1.5 1.5 1.5 1.5-.7 1.5-1.5zm6.00002 0c0-.3-.2-.5-.5-.5h-.5v-.5c0-.3-.2-.5-.5-.5s-.50002.2-.50002.5v.5h-.5c-.3 0-.5.2-.5.5s.2.5.5.5h.5v.5c0 .3.20002.5.50002.5s.5-.2.5-.5v-.5h.5c.3 0 .5-.2.5-.5z",garden:"M13,8c0,3.31-2.19,6-5.5,6S2,11.31,2,8c2.2643,0.0191,4.2694,1.4667,5,3.61V7H4.5C3.6716,7,3,6.3284,3,5.5v-3 C3,2.2239,3.2239,2,3.5,2c0.1574,0,0.3056,0.0741,0.4,0.2l1.53,2l1.65-3c0.1498-0.232,0.4593-0.2985,0.6913-0.1487 C7.8308,1.0898,7.8815,1.1404,7.92,1.2l1.65,3l1.53-2c0.1657-0.2209,0.4791-0.2657,0.7-0.1C11.9259,2.1944,12,2.3426,12,2.5v3 C12,6.3284,11.3284,7,10.5,7H8v4.61C8.7306,9.4667,10.7357,8.0191,13,8z","garden-centre":"M4,5L4,4.5C4,3.12 5.12,2 6.5,2C7.88,2 9,3.12 9,4.5L9,10.293L11.365,7.928L11.018,6.633C11.018,6.631 11.017,6.629 11.017,6.627L11.016,6.627L11.016,6.627C10.973,6.461 11.016,6.276 11.147,6.146C11.342,5.951 11.659,5.951 11.854,6.146L13.854,8.146C14.049,8.341 14.049,8.658 13.854,8.853C13.724,8.983 13.541,9.027 13.375,8.984C13.375,8.984 13.375,8.984 13.375,8.984C13.372,8.983 13.369,8.982 13.365,8.981L12.072,8.635L9,11.707L9,12C9,12.552 8.552,13 8,13L5,13C4.448,13 4,12.552 4,12L4,11.536L1.732,9.268C0.757,8.292 0.757,6.708 1.732,5.732C2.22,5.244 2.86,5 3.5,5L3.5,5L4,5ZM4,6L3.5,6L3.5,6C3.116,6 2.732,6.147 2.439,6.439C1.854,7.025 1.854,7.975 2.439,8.561L4,10.121L4,6ZM8,5L8,4.5C8,3.672 7.328,3 6.5,3C5.672,3 5,3.672 5,4.5L5,5L8,5Z",gate:"M1 2.75A.75.75 0 0 1 1.75 2h1.114c.09 0 .18.016.263.048l3.386 1.27A.75.75 0 0 1 7 4.02v5.96a.75.75 0 0 1-.487.702L3 12v.25a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1-.75-.75v-9.5Zm3 5.736v-4.87a.25.25 0 0 0-.162-.234l-.5-.187A.25.25 0 0 0 3 3.429v5.224c0 .17.167.291.33.237l.5-.166A.25.25 0 0 0 4 8.486ZM5 4.18v3.807a.25.25 0 0 0 .33.238l.5-.167A.25.25 0 0 0 6 7.82V4.366a.25.25 0 0 0-.162-.234l-.5-.187A.25.25 0 0 0 5 4.179Zm9-1.43a.75.75 0 0 0-.75-.75h-1.114a.75.75 0 0 0-.263.048l-3.386 1.27A.75.75 0 0 0 8 4.02v5.96a.75.75 0 0 0 .487.702L12 12v.25c0 .414.336.75.75.75h.5a.75.75 0 0 0 .75-.75v-9.5Zm-2.83 5.974a.25.25 0 0 1-.17-.238v-4.87a.25.25 0 0 1 .162-.234l.5-.187a.25.25 0 0 1 .338.234v5.224a.25.25 0 0 1-.33.237l-.5-.166ZM10 4.179v3.807a.25.25 0 0 1-.33.238l-.5-.167A.25.25 0 0 1 9 7.82V4.366a.25.25 0 0 1 .162-.234l.5-.187a.25.25 0 0 1 .338.234Z",gift:"M10.5 1.00152C9.0967.957116 7.8503 1.89192 7.5 3.25152 7.1497 1.89192 5.9033.957116 4.5 1.00152 2.7678.947006 2.23515 2.79746 2.81831 4H1.5C1.22386 4 1 4.22386 1 4.5V5.5C1 5.77614 1.22386 6 1.5 6H13.5C13.7761 6 14 5.77614 14 5.5V4.5C14 4.22386 13.7761 4 13.5 4H12.1938C12.8 2.81516 12.2922 1.00143 10.5404 1.00112 10.5269 1.00112 10.5135 1.00122 10.5 1.00152ZM10.6831 4H8.5C8.50082 2.8961 9.3959 2.00152 10.5 2.00152 11.675 2.00152 11.8827 3.87414 10.6831 4ZM6.5 4H4.29187C3.25675 3.88256 3.19576 2.10553 4.3323 2.00152 4.3881 1.99642 4.4442 1.99642 4.5 2.00152 5.60409 2.00152 6.49918 2.8961 6.5 4ZM2 7.00146V11.5015C2 12.3299 2.6716 13.0015 3.5 13.0015H6.5V7.00146H2ZM8.5 7.00146V13.0015H11.5C12.3284 13.0015 13 12.3299 13 11.5015V7.00146H8.5Z",globe:"M11.981,9.481,11.26,8.76A4.979,4.979,0,1,1,4.24,1.74l-.721-.721A5.991,5.991,0,0,0,7,11.475V13H6.5a.5.5,0,0,0,0,1h2a.5.5,0,0,0,0-1H8V11.473A5.983,5.983,0,0,0,11.981,9.481ZM7.5,9A3.5,3.5,0,1,0,4,5.5,3.5,3.5,0,0,0,7.5,9Zm1-5,.364-.592a2.5,2.5,0,0,1,.823.9L9.5,5h-1ZM6.656,3.156,7.5,4V5L8,6H9.94a2.494,2.494,0,0,1-1.5,1.814L8,7H6.5L5.05,5A2.5,2.5,0,0,1,6.656,3.156Z",golf:"M3.3999,1.1c0,0.1,0,0.2,0,0.2c0,0.4,0.3,0.7,0.7,0.7c0.3,0,0.5-0.2,0.6-0.5l0,0L4.9,1l5.6,2.3L6.6,6C6.2,6.3,6.2,6.7,6.3,7.1 l0.9,2.1l-1.3,3.9C5.7,13.6,6.1,14,6.5,14c0.3,0,0.5-0.1,0.6-0.5l1.4-4l0.1,0.3v3.5c0,0,0,0.7,0.7,0.7s0.7-0.7,0.7-0.7V10 c0-0.2,0-0.3-0.1-0.5L8.5,6.1l2.7-1.9c0.2-0.2,0.4-0.3,0.4-0.6s-0.2-0.5-0.4-0.6L4,0.1c-0.0878,0-0.118,0.0179-0.2001,0.1 L3.3999,1.1z M5.5,3C4.7,3,4,3.7,4,4.5S4.7,6,5.5,6S7,5.3,7,4.5S6.2999,3,5.5,3z",grocery:"M 13.199219 1.5 C 13.199219 1.5 11.808806 1.4588 11.253906 2 C 10.720406 2.5202 10.5 2.9177 10.5 4 L 1.1992188 4 L 2.59375 8.8144531 C 2.59725 8.8217531 2.6036219 8.8287375 2.6074219 8.8359375 C 2.8418219 9.4932375 3.4545469 9.9666406 4.1855469 9.9941406 C 4.1885469 9.9954406 4.1992187 10 4.1992188 10 L 10.699219 10 L 10.699219 10.199219 C 10.699219 10.199219 10.7 10.500391 10.5 10.900391 C 10.3 11.300391 10.200391 11.5 9.4003906 11.5 L 2.9003906 11.5 C 1.9003906 11.5 1.9003906 13 2.9003906 13 L 4.0996094 13 L 4.1992188 13 L 9.0996094 13 L 9.1992188 13 L 9.3007812 13 C 10.500781 13 11.399219 12.299609 11.699219 11.599609 C 11.999219 10.899609 12 10.300781 12 10.300781 L 12 10 L 12 4 C 12 3.4764 12.228619 3 12.699219 3 L 13.25 3 C 13.6642 3 14 2.6642 14 2.25 C 14 1.8358 13.6642 1.5 13.25 1.5 L 13.199219 1.5 z M 9.1992188 13 C 8.5992188 13 8.1992188 13.4 8.1992188 14 C 8.1992188 14.6 8.5992187 15 9.1992188 15 C 9.7992187 15 10.199219 14.6 10.199219 14 C 10.199219 13.4 9.7992188 13 9.1992188 13 z M 4.1992188 13 C 3.5992188 13 3.1992188 13.4 3.1992188 14 C 3.1992188 14.6 3.5992187 15 4.1992188 15 C 4.7992188 15 5.1992188 14.6 5.1992188 14 C 5.1992188 13.4 4.7992187 13 4.1992188 13 z",hairdresser:"M15,3c0,0-2-0.6-3.5,0.5l-4.3,3C6.4,5.9,5.2,5.2,4,4.8V4c0-1.1-0.9-2-2-2C0.9,2,0,2.9,0,4v1.5 C0,6,0.5,6,0.5,6H2h0.5C4.5,6,6,7.5,6,7.5S4.5,9,2.5,9H2H0.5C0.5,9,0,9,0,9.5V11c0,1.1,0.9,2,2,2c1.1,0,2-0.9,2-2v-0.8 c1.2-0.4,2.4-1.1,3.2-1.7l4.3,3C13,12.6,15,12,15,12L8.5,7.5L15,3z M3,5H2H1V4c0-0.6,0.4-1,1-1c0.6,0,1,0.4,1,1V5z M3,11 c0,0.6-0.4,1-1,1c-0.6,0-1-0.4-1-1v-1h1h1V11z M7.25,8c-0.2761,0-0.5-0.2239-0.5-0.5S6.9739,7,7.25,7s0.5,0.2239,0.5,0.5 S7.5261,8,7.25,8z",harbor:"M7.5,0C5.5,0,4,1.567,4,3.5c0.0024,1.5629,1.0397,2.902,2.5,3.3379v6.0391 c-0.9305-0.1647-1.8755-0.5496-2.6484-1.2695C2.7992,10.6273,2.002,9.0676,2.002,6.498c0.0077-0.5646-0.4531-1.0236-1.0176-1.0137 C0.4329,5.493-0.0076,5.9465,0,6.498c0,3.0029,1.0119,5.1955,2.4902,6.5723C3.9685,14.4471,5.8379,15,7.5,15 c1.6656,0,3.535-0.5596,5.0117-1.9395S14.998,9.4868,14.998,6.498c0.0648-1.3953-2.0628-1.3953-1.998,0 c0,2.553-0.7997,4.1149-1.8535,5.0996C10.3731,12.3203,9.4288,12.7084,8.5,12.875V6.8418C9.9607,6.4058,10.9986,5.0642,11,3.5 C11,1.567,9.5,0,7.5,0z M7.5,2C8.3284,2,9,2.6716,9,3.5S8.3284,5,7.5,5S6,4.3284,6,3.5S6.6716,2,7.5,2z",hardware:"M13.7919,3.2619c0,0-1.676,1.675-2.1163,2.1208c-0.085,0.0861-0.1688,0.1135-0.282,0.0961 c-0.1481-0.0226-0.2974-0.038-0.4462-0.0558c-0.4072-0.0485-0.8145-0.0966-1.2292-0.1458C9.649,4.6852,9.5787,4.1049,9.5177,3.5236 C9.512,3.4689,9.5509,3.3943,9.5925,3.3522c0.5071-0.5134,1.9261-1.9287,2.134-2.136c-0.4508-0.2129-1.2243-0.2968-1.8007-0.2031 c-2.1801,0.3543-3.5112,2.534-2.8206,4.625C7.1432,5.753,7.1194,5.8201,7.0374,5.902C5.1891,7.7454,3.3436,9.5914,1.498,11.4374 c-0.0616,0.0616-0.1231,0.124-0.1779,0.1913c-0.5264,0.6473-0.3873,1.6264,0.2974,2.102c0.6044,0.4197,1.3658,0.3442,1.9053-0.1948 c1.8534-1.8519,3.7059-3.7047,5.556-5.5598C9.1707,7.884,9.2437,7.8526,9.3779,7.8983c0.6189,0.2109,1.2524,0.2354,1.8884,0.0884 c1.9386-0.4478,3.1251-2.3732,2.6549-4.3034C13.8895,3.5532,13.843,3.4244,13.7919,3.2619z",heart:"m13.91 7.75001c-1.17 2.24999-4.30002 5.30999-6.07002 6.93999-.1903.1718-.4797.1718-.67 0-1.78-1.63-4.91-4.69-6.08-6.93999-2.57-4.95 3.91-8.250002 6.41-3.3 2.5-4.950002 8.98002-1.65 6.41002 3.3z",heliport:"M4,2C3,2,3,3,4,3h4v1C7.723,4,7.5,4.223,7.5,4.5V5H5H3.9707H3.9316 C3.7041,4.1201,2.9122,3.5011,2,3.5c-1.1046,0-2,0.8954-2,2s0.8954,2,2,2c0.3722-0.001,0.7368-0.1058,1.0527-0.3027L5.5,10.5 C6.5074,11.9505,8.3182,12,9,12h5c0,0,1,0,1-1v-0.9941C15,9.2734,14.874,8.874,14.5,8.5l-3-3c0,0-0.5916-0.5-1.2734-0.5H9.5V4.5 C9.5,4.223,9.277,4,9,4V3h4c1,0,1-1,0-1C13,2,4,2,4,2z M2,4.5c0.5523,0,1,0.4477,1,1s-0.4477,1-1,1s-1-0.4477-1-1 C1,4.9477,1.4477,4.5,2,4.5z M10,6c0.5,0,0.7896,0.3231,1,0.5L13.5,9H10c0,0-1,0-1-1V7C9,7,9,6,10,6z","highway-rest-area":"M13.5,13h-3V9h3a.5.5,0,0,0,.4092-.7871L11.66,5h.84a.5.5,0,0,0,.3838-.82l-2.5-3a.5155.5155,0,0,0-.7676,0l-2.5,3A.5.5,0,0,0,7.5,5h.84L6.0908,8.2129A.5.5,0,0,0,6.5,9h3v4H4V11H5.5a.5.5,0,0,0,0-1h-4a.5.5,0,0,0,0,1H3v2H1.5a.5.5,0,0,0,0,1h12a.5.5,0,0,0,0-1Z",historic:"m7.5 1c-1 0-1 1-2 1h-3.5c-.54467 0-1 .45533-1 1v7c0 .5447.45533 1 1 1h5v2.5s0 .5.5.5.5-.5.5-.5v-2.5h5c.5447 0 1-.4553 1-1v-7c0-.54467-.4553-1-1-1h-3.5c-1 0-1-1-2-1zm-4.5 4v-1h9v1zm0 1h4v1h-4zm0 2h7v1h-7z",home:"M2,13.7478c0,0.13807,0.11193,0.25,0.25,0.25h3.749v-3h3v3h3.749c0.13807,0,0.25-0.11193,0.25-0.25V7.9987H2 C2,7.9987,2,13.7478,2,13.7478z M13.93,6.5778l-0.9319-0.8189V2c0-0.55228-0.44771-1-1-1s-1,0.44772-1,1v2L7.6808,1.09 C7.5863,0.9897,7.42846,0.98478,7.3279,1.079L7.3169,1.09L1.0678,6.553C0.9734,6.65376,0.97856,6.81197,1.07932,6.90637 C1.12478,6.94896,1.18451,6.97304,1.2468,6.9739L3,6.9989h10.7468c0.13807,0.00046,0.25037-0.1111,0.25083-0.24917 C13.99784,6.68592,13.97365,6.62445,13.93,6.5779V6.5778z","horse-riding":"M6,1A1,1,0,1,1,7,2,1,1,0,0,1,6,1ZM8,3.5a.484.484,0,0,0,0-.058A.472.472,0,0,0,7.5,3h-1a.484.484,0,0,0-.058,0A.472.472,0,0,0,6,3.5V7H8Zm6.85,3.644L12.8,4.8l.085-.509a.478.478,0,0,0,.008-.063.25.25,0,0,0-.25-.25.346.346,0,0,0-.158.056L9,7H8L9,8V9.5a.5.5,0,0,1-1,0v-1L6,7H4a1.5,1.5,0,0,0-1.243.661A1.466,1.466,0,0,0,1.563,7H1.5A1.449,1.449,0,0,0,0,8.4v.086A3.781,3.781,0,0,0,.559,10.4a.278.278,0,0,0,.191.1A.25.25,0,0,0,1,10.25V9s-.02-.924.753-1c.5-.048.747.253.747.5V11L2,13v1.75a.25.25,0,0,0,.25.25.254.254,0,0,0,.25-.234V13L4,11v1l.5,2.8a.255.255,0,0,0,.246.2A.25.25,0,0,0,5,14.754H5L4.855,12.3,5.5,11H8v1l.508,2.813A.257.257,0,0,0,8.75,15,.25.25,0,0,0,9,14.75V12l.367-1a1.155,1.155,0,0,0,.543-.6l2.161-3.767a.863.863,0,0,0,1.023.4l1.066.818a.591.591,0,0,0,.35.135.487.487,0,0,0,.475-.4A.552.552,0,0,0,14.85,7.144Z",hospital:"M7,1C6.4,1,6,1.4,6,2v4H2C1.4,6,1,6.4,1,7v1 c0,0.6,0.4,1,1,1h4v4c0,0.6,0.4,1,1,1h1c0.6,0,1-0.4,1-1V9h4c0.6,0,1-0.4,1-1V7c0-0.6-0.4-1-1-1H9V2c0-0.6-0.4-1-1-1H7z","hospital-JP":"m12.5038 3h-10.00777c-.26639.00235-.52096.11039-.70772.30036-.18677.18998-.29046.44634-.28828.71274v5.5807c-.00063.18713.05047.37079.14765.5307.09718.1599.23667.2899.40305.3755l4.78 2.8394c.20725.1056.43653.1606.6691.1606.23258 0 .46186-.055.6691-.1606l4.78037-2.8394c.1664-.0856.3059-.2155.4031-.3755.0972-.15989.1483-.34357.1476-.5307v-5.5807c.0012-.13194-.0237-.2628-.0732-.38512-.0494-.12232-.1225-.2337-.215-.32777-.0925-.09408-.2027-.16901-.3241-.22052-.1215-.05151-.2519-.07859-.3839-.07969zm-2.0038 5.5h-1.99997v2h-2v-2h-2v-2h2v-2h2v2h1.99997z","hot-spring":"M6.682,5.759c-.505-.725-.781-1.121-.63-2.376,.139-1.156,.678-1.616,1.198-2.059,.404-.345,.797-.68,.981-1.324,.301,.722-.036,1.47-.349,2.164-.311,.691-.599,1.329-.211,1.836,.971,1.271,1.963,2.88,.971,4.586-.214,.393-.539,.681-.861,.968-.422,.375-.841,.747-1.004,1.348-.269-.677,.008-1.366,.285-2.052,.306-.759,.61-1.516,.172-2.251-.203-.34-.389-.607-.551-.84Zm3.371-1.174c-.098-.632,.034-1.281,.368-1.809,.367-.45,.701-.642,.991-.81,.345-.199,.627-.362,.83-.877,.289,.684,0,1.188-.304,1.718-.119,.207-.24,.418-.329,.645-.191,.61,.101,.893,.467,1.247,.358,.346,.786,.76,.899,1.617,.083,.635-.036,1.156-.372,1.684-.356,.436-.681,.655-.965,.846-.356,.24-.648,.437-.856,.965-.292-.688,.031-1.259,.353-1.828,.123-.217,.246-.434,.334-.658,.073-.558-.234-.867-.581-1.217-.357-.36-.757-.763-.834-1.523Zm-8.018,0c-.098-.632,.005-1.3,.368-1.809,.376-.528,.729-.717,1.035-.881,.323-.173,.594-.318,.786-.806,.289,.683-.014,1.208-.325,1.749-.122,.212-.246,.427-.336,.655-.152,.385,.131,1.014,.501,1.242,1.002,.801,1.227,2.286,.547,3.353-.366,.448-.704,.648-.999,.823-.353,.209-.645,.382-.849,.898-.278-.656,.008-1.18,.3-1.714,.131-.24,.263-.481,.345-.737,.179-.557-.134-.884-.51-1.277-.349-.365-.752-.785-.863-1.498Zm10.965,4.414c.7,2.616-3.474,3-5.5,3s-6.2-.484-5.5-3c-.633,.316-1,.961-1,1.5,0,1.519,2.91,2.9,6.5,2.9s6.5-1.381,6.5-2.9c0-.539-.367-1.184-1-1.5Z","ice-cream":"M5.44,8.17a3.473,3.473,0,0,0,2-.63A3.5,3.5,0,0,0,9,8.14h.44L8,13.7a.5.5,0,0,1-.92,0Zm6-3.473a2,2,0,0,1-4,0h0a2,2,0,1,1-2-2h.12a2,2,0,1,1,3.75,0h.13A2,2,0,0,1,11.439,4.7Z",industry:"M14,1v12H1V8.72c0.0016-0.1419,0.0634-0.2764,0.17-0.37l3-3.22c0.2074-0.1823,0.5234-0.1618,0.7056,0.0456 C4.9568,5.268,5.0011,5.387,5,5.51v3l3.16-3.37c0.2025-0.1878,0.5188-0.1759,0.7066,0.0266C8.9532,5.2599,9.0009,5.3827,9,5.51V11h3 V1H14z",information:"M7.5,1 C6.7,1,6,1.7,6,2.5S6.7,4,7.5,4S9,3.3,9,2.5S8.3,1,7.5,1z M4,5v1c0,0,2,0,2,2v2c0,2-2,2-2,2v1h7v-1c0,0-2,0-2-2V6c0-0.5-0.5-1-1-1H4 z","jewelry-store":"M12,8.5c0,2.4853-2.0147,4.5-4.5,4.5S3,10.9853,3,8.5c0-1.8483,1.1164-3.4329,2.7099-4.1255l0.1761,0.137l0.7739,0.6019 C5.1366,5.4922,4,6.8611,4,8.5C4,10.4299,5.5701,12,7.5,12S11,10.4299,11,8.5c0-1.6389-1.1366-3.0078-2.6599-3.3866l0.95-0.7388 C10.8836,5.0672,12,6.6517,12,8.5z M7.5,4.5L10,2.5555L9,1H6L5,2.5555l1.5,1.1667L7.5,4.5z",karaoke:"M12.1,2.952A2.988,2.988,0,0,0,6.99,4.917l3.142,3.142A2.988,2.988,0,0,0,12.1,2.952Zm-7.428,5.3L2.55,10.377a1,1,0,0,0,0,1.414l.707.707a1,1,0,0,0,1.414,0l2.121-2.121L8.914,8.255,6.793,6.134Zm.741,2.087-.707-.707L6.793,7.548l.707.707Z",landmark:"M12.5,12H12v-0.5c0-0.3-0.2-0.5-0.5-0.5H11V6h1l1-2c-1,0.1-2,0.1-3,0C9.2,3.4,8.6,2.8,8,2V1.5C8,1.2,7.8,1,7.5,1 S7,1.2,7,1.5V2C6.4,2.8,5.8,3.4,5,4C4,4.1,3,4.1,2,4l1,2h1v5c0,0-0.5,0-0.5,0C3.2,11,3,11.2,3,11.5V12H2.5C2.2,12,2,12.2,2,12.5V13 h11v-0.5C13,12.2,12.8,12,12.5,12z M7,11H5V6h2V11z M10,11H8V6h2V11z","landmark-JP":"m9.5 4c0 .39556-.1173.78224-.33706 1.11114s-.53212.58524-.89757.73662c-.36545.15137-.76759.19098-1.15555.11381s-.74433-.26765-1.02403-.54736c-.27971-.2797-.47019-.63607-.54736-1.02403s-.03756-.79009.11381-1.15555c.15138-.36545.40772-.67781.73662-.89757s.71558-.33706 1.11114-.33706c.53043 0 1.03914.21071 1.41421.58579.37508.37507.58579.88378.58579 1.41421zm-6 4c-.39556 0-.78224.1173-1.11114.33706s-.58524.53212-.73662.89757c-.15137.36546-.19098.76757-.11381 1.15557.07717.3879.26765.7443.54736 1.024.2797.2797.63607.4702 1.02403.5474.38796.0771.7901.0375 1.15555-.1138.36545-.1514.67781-.4078.89757-.7367s.33706-.7155.33706-1.1111c0-.53043-.21071-1.03914-.58579-1.41421-.37507-.37508-.88378-.58579-1.41421-.58579zm8 0c-.3956 0-.7822.1173-1.1111.33706s-.58528.53212-.73666.89757c-.15137.36546-.19098.76757-.11381 1.15557.07717.3879.26765.7443.54737 1.024.2797.2797.6361.4702 1.024.5474.388.0771.7901.0375 1.1556-.1138.3654-.1514.6778-.4078.8975-.7367.2198-.3289.3371-.7155.3371-1.1111 0-.53043-.2107-1.03914-.5858-1.41421-.3751-.37508-.8838-.58579-1.4142-.58579z",landuse:"m8.911 2.85401c.02782.02324.05021.0523.06558.08512.01538.03283.02337.06863.02342.10488v3.706c0 .0663-.02634.12989-.07322.17678-.04689.04688-.11048.07322-.17678.07322h-2.5c-.0663 0-.12989-.02634-.17678-.07322-.04688-.04689-.07322-.11048-.07322-.17678v-1.75h-1v1.75c0 .0663-.02634.12989-.07322.17678-.04689.04688-.11048.07322-.17678.07322h-2.5c-.0663 0-.12989-.02634-.17678-.07322-.04688-.04689-.07322-.11048-.07322-.17678v-3.7c.00005-.03625.00804-.07205.02342-.10488.01537-.03282.03776-.06188.06558-.08512l3.254-2.728c.04413-.0370337.09989-.0573335.1575-.0573335s.11337.0202998.1575.0573335zm-1.159 5.646c-.04915.00002-.09718.01464-.138.042l-2.614 1.95799h-1v-1.99999c0-.13261-.05268-.25979-.14645-.35355-.09376-.09377-.22094-.14645-.35355-.14645s-.25979.05268-.35355.14645c-.09377.09376-.14645.22094-.14645.35355v1.99999h-1v-1.99999c0-.13261-.05268-.25979-.14645-.35355-.09376-.09377-.22094-.14645-.35355-.14645s-.25979.05268-.35355.14645c-.09377.09376-.14645.22094-.14645.35355v4.24999c0 .0663.02634.1299.07322.1768.04689.0469.11048.0732.17678.0732h6.5c.0663 0 .12989-.0263.17678-.0732.04688-.0469.07322-.1105.07322-.1768v-3.99999c.00026-.03274-.00596-.0652-.0183-.09552-.01235-.03032-.03057-.0579-.05363-.08114-.02305-.02324-.05048-.04168-.0807-.05427s-.06263-.01907-.09537-.01907zm6.248-3.255v6.49999c0 .0671-.0267.1315-.0741.1789-.0474.0475-.1118.0741-.1789.0741h-3.494c-.0668 0-.1308-.0264-.1782-.0734s-.0743-.1108-.0748-.1776v-6.49699c-.00013-.03287.0062-.06544.0188-.09583.0125-.03039.0309-.058.0541-.08124.0233-.02324.0509-.04165.0813-.05417s.0629-.01889.0958-.01876h.75v-.751c0-.06604.0262-.12937.0729-.17607s.1101-.07293.1761-.07293h1.5c.0668.00053.1306.02742.1776.07481.047.04738.0734.11144.0734.17819v.747h.755c.065 0 .1273.02581.1732.07176.046.04595.0718.10826.0718.17324zm-1 4.75499h-2v1h2zm0-1.99999h-2v1h2zm0-2h-2v1h2z",laundry:"M8,1L6,3H3c0,0-1,0-1,1v9c0,1,1,1,1,1h9c0,0,1,0,1-1V2c0-1-1-1-1-1 S8,1,8,1z M8.5,2h2C10.777,2,11,2.223,11,2.5S10.777,3,10.5,3h-2C8.223,3,8,2.777,8,2.5S8.223,2,8.5,2z M7.5,6 c1.6569,0,3,1.3431,3,3s-1.3431,3-3,3s-3-1.3431-3-3S5.8431,6,7.5,6z",library:"M1.0819,9.9388C0.9871,9.867,1.0007,9.7479,1.0007,9.7479L1.5259,3.5c0,0,0.0082-0.0688,0.0388-0.104 C1.584,3.374,1.6084,3.342,1.6544,3.3232C2.1826,3.1072,5.0537,1.5519,6.5,3c0.2397,0.2777,0.4999,0.6876,0.4999,1v5.2879 c0,0,0.0062,0.1122-0.0953,0.1801c-0.0239,0.016-0.124,0.0616-0.242,0.0026c-2.2253-1.1134-4.711,0.1546-5.3381,0.4871 C1.1987,10.0244,1.1006,9.9531,1.0819,9.9388z M13.6754,9.9577c-0.6271-0.3325-3.1128-1.6005-5.3381-0.4871 c-0.118,0.059-0.2181,0.0134-0.242-0.0026C7.9939,9.4001,8.0001,9.2879,8.0001,9.2879V4c0-0.3124,0.2602-0.7223,0.4999-1 c1.4463-1.4481,4.2991,0.1071,4.8273,0.3232c0.046,0.0188,0.0704,0.0508,0.0897,0.0728C13.4476,3.4312,13.4558,3.5,13.4558,3.5 l0.5435,6.2479c0,0,0.0136,0.1191-0.0812,0.1909C13.8994,9.9531,13.8013,10.0244,13.6754,9.9577z M8.8647,12.6863 c0.0352-0.0085,0.0964-0.0443,0.1179-0.0775c0.0236-0.0364,0.0378-0.0617,0.0423-0.1088c0.0495-0.9379,1.6245-1.8119,4.6477-0.0298 c0.0775,0.0441,0.1666,0.0396,0.2425-0.0155C14.0014,12.392,14,12.2859,14,12.2859v-0.5542c0,0,0.0003-0.0764-0.0272-0.1184 c-0.0205-0.0312-0.0476-0.0643-0.0926-0.0858c-2.0254-1.3145-4.5858-1.8972-5.8854-0.1592 c-0.0181,0.0423-0.0353,0.0613-0.0728,0.0905C7.8654,11.5028,7.7964,11.5,7.7964,11.5H7.2109c0,0-0.069,0.0028-0.1256-0.0412 c-0.0375-0.0292-0.0547-0.0482-0.0728-0.0905c-1.2996-1.738-3.86-1.1828-5.8854,0.1317c-0.045,0.0215-0.0721,0.0546-0.0926,0.0858 c-0.0275,0.042-0.0272,0.1184-0.0272,0.1184v0.5542c0,0-0.0014,0.1061,0.0849,0.1688c0.0759,0.0551,0.165,0.0596,0.2425,0.0155 c3.0232-1.7821,4.5982-0.8806,4.6477,0.0573c0.0045,0.0471,0.0187,0.0724,0.0423,0.1088c0.0215,0.0332,0.0827,0.069,0.1179,0.0775 C6.8645,12.8656,7.9112,12.9363,8.8647,12.6863z","lift-gate":"M1 4a2 2 0 1 1 4 0v8a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4Zm3 0a1 1 0 1 0-2 0 1 1 0 0 0 2 0Zm4.5 2L7 3H6v3h2.5ZM10 6h1.5L10 3H8.5L10 6Zm3.25 0H13l-1.5-3h1.75a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-.75.75Z",lighthouse:"M4.5,6L0,7V6.5l4.5-1V6z M4.5,3.5L0,2.5V3l4.5,1V3.5z M10.5,3.5V4L15,3V2.5L10.5,3.5z M10.5,6L15,7V6.5l-4.5-1V6z M8,7V2 h2.5c0.2761,0.0552,0.5448-0.1239,0.6-0.4c0.0552-0.2761-0.1239-0.5448-0.4-0.6l-3-1C7.5696-0.0586,7.4204-0.0586,7.29,0l-3,1 c-0.2761,0.0552-0.4552,0.3239-0.4,0.6S4.2139,2.0552,4.49,2H7v5H5l-2,7h9l-2-7H8z","lighthouse-JP":"M9.5,7.4c0,1.1-0.9,2-2,2s-2-0.9-2-2s0.9-2,2-2C8.6,5.4,9.5,6.3,9.5,7.4z M14,7.5C14,7.8,13.8,8,13.5,8h-1.6 c-0.1,0.9-0.311,1.582-0.911,2.282l1.064,1.064c0.2,0.2,0.196,0.504-0.004,0.704c-0.209,0.209-0.5,0.207-0.704,0.004L10.3,11 c-0.6,0.5-1.4,0.8-2.3,0.9v1.6C8,13.8,7.8,14,7.5,14S7,13.8,7,13.5v-1.6c-0.9-0.1-1.7-0.4-2.3-0.9l-1.1,1.1 c-0.207,0.207-0.48,0.213-0.696-0.004c-0.2-0.2-0.207-0.5-0.007-0.7L4,10.3C3.5,9.7,3.1,8.9,3,8H1.5C1.2,8,1,7.8,1,7.5S1.2,7,1.5,7 H3c0.1-0.9,0.4-1.7,1-2.4l-1-1C2.8,3.4,2.8,3.1,3,2.9s0.5-0.2,0.7,0l1,1l0,0C5.3,3.4,6.1,3.1,7,3V1.5C7,1.2,7.2,1,7.5,1S8,1.2,8,1.5 V3c0.9,0.1,1.7,0.5,2.3,1l0,0l1.1-1.1c0.2-0.2,0.5-0.2,0.7,0s0.2,0.5,0,0.7L11,4.7l0,0c0.5,0.7,0.8,1.4,0.9,2.3h1.6 C13.8,7,14,7.2,14,7.5z M11.1,7.4c0-2-1.6-3.6-3.6-3.6S3.8,5.5,3.8,7.4S5.4,11,7.4,11S11.1,9.4,11.1,7.4z",lodging:"M0.5,2.5C0.2,2.5,0,2.7,0,3v7.5v2C0,12.8,0.2,13,0.5,13S1,12.8,1,12.5V11h13v1.5 c0,0.3,0.2,0.5,0.5,0.5s0.5-0.2,0.5-0.5v-2c0-0.3-0.2-0.5-0.5-0.5H1V3C1,2.7,0.8,2.5,0.5,2.5z M3.5,3C2.7,3,2,3.7,2,4.5l0,0 C2,5.3,2.7,6,3.5,6l0,0C4.3,6,5,5.3,5,4.5l0,0C5,3.7,4.3,3,3.5,3L3.5,3z M7,4C5.5,4,5.5,5.5,5.5,5.5V7h-3C2.2,7,2,7.2,2,7.5v1 C2,8.8,2.2,9,2.5,9H6h9V6.5C15,4,12.5,4,12.5,4H7z",logging:"M13.91,3.41,13.5,3l.2-.28c.02-.03.04-.05.06-.08A.969.969,0,0,0,14,1.99a1,1,0,0,0-1.62-.77c-.03.02-.06.05-.09.07L12,1.5l-.386-.386a.354.354,0,0,0-.525.475l.417.417-.5.5-.392-.392a.354.354,0,0,0-.525.475L10.5,3l-.5.5-.381-.381a.354.354,0,1,0-.528.472h0l.028.028L9.5,4,9,4.5l-.395-.395a.354.354,0,0,0-.517.483L8.5,5,8,5.5l-.365-.365a.354.354,0,0,0-.556.439h0C7.1,5.6,7.508,6,7.508,6L7,6.5l-.394-.392a.392.392,0,0,0-.5-.028.384.384,0,0,0-.028.5L6.1,6.6l.4.4L6,7.5l-.4-.4a.37.37,0,0,0-.5,0L6.248,8.244,12.09,2.41,12.5,2H13v.5l-.41.41L6.751,8.749,7.9,9.9a.355.355,0,0,0,0-.5l-.008-.009L7.5,9,8,8.5l.384.384a.354.354,0,0,0,.528-.472L8.5,8,9,7.5l.38.38a.354.354,0,0,0,.528-.472l-.02-.02L9.5,7l.5-.5.377.377A.35.35,0,0,0,10.64,7a.347.347,0,0,0,.252-.6L10.5,6l.5-.5.38.38a.354.354,0,0,0,.528-.472L11.88,5.38,11.5,5l.5-.5.381.381a.354.354,0,0,0,.528-.472l-.025-.025L12.5,4l.5-.5.382.382a.354.354,0,0,0,.528-.472ZM4.39,7.916C3.893,7.419,3.641,7,3,7H1.5a.5.5,0,0,0-.5.5v3A2.19,2.19,0,0,0,1.5,12l.815.811A2.251,2.251,0,0,0,5.493,13h0L7.5,11ZM3.5,10,2.262,11.238A1.3,1.3,0,0,1,2,10.5V8H3a.545.545,0,0,1,.335.194.455.455,0,0,1,.165.418Z",marker:"M7.5 1C5.42312 1 3 2.2883 3 5.56759C3 7.79276 6.46156 12.7117 7.5 14C8.42309 12.7117 12 7.90993 12 5.56759C12 2.2883 9.57688 1 7.5 1Z","marker-stroked":"M5.11697 2.81756C5.76952 2.26561 6.65195 2 7.5 2C8.34805 2 9.23048 2.26561 9.88303 2.81756C10.5075 3.34579 11 4.20017 11 5.56759C11 5.94031 10.8461 6.52407 10.5105 7.29145C10.1859 8.03354 9.73523 8.85087 9.24257 9.65811C8.64175 10.6426 7.999 11.5793 7.48195 12.3097C6.96023 11.5798 6.31599 10.6233 5.71947 9.62296C5.2343 8.80934 4.79303 7.98717 4.47608 7.24844C4.14708 6.48162 4 5.91216 4 5.56759C4 4.20017 4.49248 3.34579 5.11697 2.81756ZM8.10767 13.1554C9.45904 11.2632 12 7.54181 12 5.56759C12 2.2883 9.57688 1 7.5 1C5.42312 1 3 2.2883 3 5.56759C3 7.44926 5.47533 11.2572 6.86751 13.1671C7.12165 13.5157 7.3397 13.8011 7.5 14C7.55627 13.9215 7.62241 13.8299 7.697 13.7266C7.81469 13.5636 7.95343 13.3714 8.10767 13.1554Z","mobile-phone":"M10,2h0V1.5a.5.5,0,0,0-1,0V2H5A1,1,0,0,0,4,3V13a1,1,0,0,0,1,1h5a1,1,0,0,0,1-1V3A1,1,0,0,0,10,2ZM6,13H5V12H6Zm0-2H5V10H6ZM6,9H5V8H6Zm2,4H7V12H8Zm0-2H7V10H8ZM8,9H7V8H8Zm2,4H9V12h1Zm0-2H9V10h1Zm0-2H9V8h1Zm0-2.5a.5.5,0,0,1-.5.5h-4A.5.5,0,0,1,5,6.5v-3A.5.5,0,0,1,5.5,3h4a.5.5,0,0,1,.5.5Z",monument:"M7.5,0L6,2.5v7h3v-7L7.5,0z M3,11.5 L3,15h9v-3.5L10.5,10h-6L3,11.5z","monument-JP":"M12,13H4c-0.5,0-1-0.5-1-1V5c0-2,0.8-4,4-4c3.1,0,4,2,4,4v6h1c0.5,0,1,0.5,1,1S12.5,13,12,13z M5,11h4V5c0-1,0-2-2-2 S5,4,5,5V11z",mountain:"m7.5 1c-.3 0-.4.2-.6.4l-5.8 9.5c-.1.1-.1.3-.1.4 0 .5.4.7.7.7h11.6c.4 0 .7-.2.7-.7 0-.2 0-.2-.1-.4l-5.7-9.5c-.2-.2-.4-.4-.7-.4zm0 1.5 3.3 5.5h-.8l-1.5-1.5-1 1.5-1-1.5-1.5 1.5h-.9z",museum:"M7.5,0L1,3.5V4h13V3.5L7.5,0z M2,5v5l-1,1.6V13h13v-1.4L13,10V5H2z M4,6h1v5.5H4V6z M7,6h1v5.5H7V6z M10,6h1 v5.5h-1V6z",music:"m12.5 0c-.0804.0008-.1594.0213999-.23.0599999l-8.77 2.4400001c-.2761 0-.5.2239-.5.5v6.28c-.3029-.1798-.6478-.2763-1-.28-1.1046 0-2 .8954-2 2s.8954 2 2 2 2-.8954 2-2v-4.64l8-2.22v3.64c-.3029-.1798-.6478-.2763-1-.28-1.1046 0-2 .8954-2 2s.8954 2 2 2 2-.8954 2-2v-9c0-.2761-.2239-.5-.5-.5zm-.5 3.14-8 2.22v-2l8-2.22z",natural:"M8.753,6.278a.5.5,0,0,1-.51,0A4.109,4.109,0,0,1,6.5,3.5a2.779,2.779,0,0,0-.59-1.506l-.019-.027a.257.257,0,0,1-.056-.144.237.237,0,0,1,.25-.25.264.264,0,0,1,.057.011A3.523,3.523,0,0,1,7.5,2.5L8.28.94a.246.246,0,0,1,.44,0L9.5,2.5a3.4,3.4,0,0,1,1.339-.907.283.283,0,0,1,.1-.021c.175.009.212.119.221.249a.35.35,0,0,1-.043.141A5.2,5.2,0,0,0,10.5,3.5,4.113,4.113,0,0,1,8.753,6.278ZM5,8H6.289a.25.25,0,0,0,.25-.25.241.241,0,0,0-.061-.15L4.7,5.235a.255.255,0,0,0-.391,0L2.518,7.589a.274.274,0,0,0-.062.161.25.25,0,0,0,.25.25H4L1.335,10.6a.273.273,0,0,0-.058.152A.25.25,0,0,0,1.529,11H3L1.435,12.565a.255.255,0,0,0,.18.435H4v1H5V13H7.385a.255.255,0,0,0,.18-.435L6,11H7.471a.25.25,0,0,0,.25-.25.233.233,0,0,0-.058-.149Zm9.345,3.748a.252.252,0,0,1-.252.252H8.908a.252.252,0,0,1-.226-.365L11.27,6.451a.252.252,0,0,1,.451,0l2.6,5.184h0A.251.251,0,0,1,14.345,11.748ZM12.75,10,11.5,7.5,10.25,10Z","observation-tower":"M12 12.5H11.5L10 9V7C10.9951 7 10.9951 6.25 10.9951 6.25L11.5 3C11.5 3 11.5 2.5 11 2.5H10C10 2.5 10 2 9.5 2H8.5V1.5C8.5 1.5 8.5 0.5 7.5 0.5C6.5 0.5 6.5 1.5 6.5 1.5V2H5.5C5 2 5 2.5 5 2.5H4C3.5 2.5 3.5 3 3.5 3L4.0049 6.25C4.0049 6.25 4.0049 7 5 7V9L3.5 12.5H3C3 12.5 2 12.5 2 13.25C2 14 3 14 3 14H12C12 14 13 14 13 13.25C13 12.5 12 12.5 12 12.5ZM10.25 3.5L10 5H5L4.75 3.4971L10.25 3.5ZM8.5 7V8H6.5V7H8.5ZM6.5006 9.4971H8.4994L9.5 12.5H5.5L6.5006 9.4971Z",optician:"M1.78483 3.81169C2.03375 3.31421 2.54231 3 3.09859 3C3.48821 3 3.86186 3.15477 4.13736 3.43027L4.85354 4.14645C5.0488 4.34171 5.0488 4.65829 4.85354 4.85355C4.65827 5.04882 4.34169 5.04882 4.14643 4.85355L3.43017 4.1373C3.34226 4.04939 3.22303 4 3.09871 4C2.92116 4 2.75884 4.10032 2.67944 4.25912L1.309 7H5.2476C6.0654 7 6.7487 7.5656 6.941 8.3245C7.1146 8.2834 7.3009 8.25 7.5 8.25C7.6991 8.25 7.8854 8.2835 8.059 8.3246C8.2513 7.5656 8.9344 7 9.752 7H13.691L12.3206 4.25912C12.2412 4.10032 12.0788 4 11.9013 4C11.777 4 11.6577 4.04939 11.5698 4.1373L10.8536 4.85355C10.6583 5.04882 10.3417 5.04882 10.1465 4.85355C9.9512 4.65829 9.9512 4.34171 10.1465 4.14645L10.8626 3.43027C11.1381 3.15477 11.5118 3 11.9014 3C12.4577 3 12.9663 3.31421 13.2152 3.81169L14.9414 7.26172L14.9404 7.26308C14.9784 7.33359 15 7.41428 15 7.5V8.5C15 8.7761 14.7761 9 14.5 9H14V9.5C14 11.0889 12.998 12 11.25 12H10.75C9.002 12 8 11.0889 8 9.5V9.3413C7.8499 9.2933 7.6693 9.25 7.5 9.25C7.3307 9.25 7.1503 9.2933 7 9.3413V9.5C7 11.0889 5.9976 12 4.25 12H3.75C2.0024 12 1 11.0889 1 9.5V9H0.4992C0.2235 9 0 8.7765 0 8.5007V7.5C0 7.41428 0.0215731 7.33359 0.0595866 7.26308L0.0585938 7.26172L1.78483 3.81169ZM9.752 8C9.3369 8 9 8.3374 9 8.7524V9.5C9 10.1982 9.1992 11 10.75 11H11.25C12.8008 11 13 10.1982 13 9.5V8.7529C13 8.3379 12.6621 8 12.2471 8H9.752ZM2.7529 8C2.3379 8 2 8.3374 2 8.7524V9.5C2 10.1982 2.1987 11 3.75 11H4.25C5.8013 11 6 10.1982 6 9.5V8.7524C6 8.3374 5.6626 8 5.2475 8H2.7529Z",paint:"m13.5 3.5h-1v-.9973c0-.2777-.2251-.5027-.5027-.5027h-10.4946c-.2776 0-.5027.225-.5027.5027v2.9946c0 .2776.2251.5027.5027.5027h10.4946c.2776 0 .5027-.2251.5027-.5027v-.9973h.5v3.1021l-6.1123 1.4106c-.2271.0527-.3877.2549-.3877.4873v1.5074c-.2783.02-.5.246-.5.5295v2.9261c0 .2966.2404.537.5369.537h.9261c.2966 0 .537-.2404.537-.5369v-2.9261c0-.2834-.2217-.5095-.5-.5295v-1.11l6.1123-1.4102c.2266-.0522.3877-.2544.3877-.4873v-4c0-.2764-.2236-.5-.5-.5z",park:"M14,5.75c0.0113-0.6863-0.3798-1.3159-1-1.61C12.9475,3.4906,12.4014,2.9926,11.75,3 c-0.0988,0.0079-0.1962,0.0281-0.29,0.06c-0.0607-0.66-0.6449-1.1458-1.3048-1.0851C9.8965,1.9987,9.6526,2.1058,9.46,2.28l0,0 c0-0.6904-0.5596-1.25-1.25-1.25S6.96,1.5896,6.96,2.28C6.96,2.28,7,2.3,7,2.33C6.4886,1.8913,5.7184,1.9503,5.2797,2.4618 C5.1316,2.6345,5.0347,2.8451,5,3.07C4.8417,3.0195,4.6761,2.9959,4.51,3C3.6816,2.9931,3.0044,3.659,2.9975,4.4874 C2.9958,4.6872,3.0341,4.8852,3.11,5.07C2.3175,5.2915,1.8546,6.1136,2.0761,6.9061C2.2163,7.4078,2.6083,7.7998,3.11,7.94 c0.2533,0.7829,1.0934,1.2123,1.8763,0.959C5.5216,8.7258,5.9137,8.2659,6,7.71C6.183,7.8691,6.4093,7.9701,6.65,8v5L5,14h5l-1.6-1 v-2c0.7381-0.8915,1.6915-1.5799,2.77-2c0.8012,0.1879,1.603-0.3092,1.7909-1.1103C12.9893,7.7686,13.0025,7.6444,13,7.52 c0.0029-0.0533,0.0029-0.1067,0-0.16C13.6202,7.0659,14.0113,6.4363,14,5.75z M8.4,10.26V6.82C8.6703,7.3007,9.1785,7.5987,9.73,7.6 h0.28c0.0156,0.4391,0.2242,0.849,0.57,1.12C9.7643,9.094,9.0251,9.6162,8.4,10.26z","park-alt1":"M9.428,10.429a.269.269,0,0,1-.074-.18A.25.25,0,0,1,9.6,10h1.447a.25.25,0,0,0,.25-.25.258.258,0,0,0-.079-.179L9.07,7.419a.3.3,0,0,1-.063-.17A.249.249,0,0,1,9.257,7H10.4a.251.251,0,0,0,.25-.251.247.247,0,0,0-.077-.178L8.432,4.434,8.418,4.42a.262.262,0,0,1-.066-.17A.25.25,0,0,1,8.6,4h.866a.25.25,0,0,0,.25-.25.246.246,0,0,0-.068-.164h.006L7.7,1.238a.253.253,0,0,0-.042-.044A.249.249,0,0,0,7.5,1.139h0a.249.249,0,0,0-.158.055.253.253,0,0,0-.042.044L5.352,3.586a.246.246,0,0,0-.068.164.25.25,0,0,0,.25.25H6.4a.241.241,0,0,1,.184.42l-.014.014L4.431,6.571a.247.247,0,0,0-.077.178A.251.251,0,0,0,4.6,7H5.745a.249.249,0,0,1,.25.249.3.3,0,0,1-.063.17L3.782,9.571A.258.258,0,0,0,3.7,9.75a.25.25,0,0,0,.25.25H5.4a.25.25,0,0,1,.248.249.269.269,0,0,1-.074.18l-2.14,2.132-.009.009a.248.248,0,0,0,0,.351A.256.256,0,0,0,3.605,13H7v1l1-.008V13h3.391a.263.263,0,0,0,.26-.254.248.248,0,0,0-.071-.177Z",parking:"M4 2V13H6V9H8.5C10.433 9 12 7.433 12 5.5C12 3.567 10.433 2 8.5 2H4ZM6 7V4H8.5C9.32843 4 10 4.67157 10 5.5C10 6.32843 9.32843 7 8.5 7H6Z","parking-garage":"M10.5,10.14c-0.6637,0.4788-1.4732,0.7121-2.29,0.66h-1.9V14h-1.9V5h3.92 c0.7801-0.0414,1.5484,0.2041,2.16,0.69c0.5779,0.5595,0.875,1.3483,0.81,2.15C11.4042,8.6892,11.1088,9.5388,10.5,10.14z M9,6.9 C8.711,6.6881,8.3579,6.5822,8,6.6H6.31v2.65H8c0.3612,0.0191,0.717-0.0947,1-0.32c0.2559-0.2675,0.3867-0.6308,0.36-1 C9.4072,7.5493,9.274,7.1684,9,6.9z M14.41,4.21c0.114-0.2486,0.007-0.5427-0.24-0.66L7.5,0.45l-6.71,3.1 C0.5387,3.666,0.429,3.9637,0.545,4.215C0.661,4.4663,0.9587,4.576,1.21,4.46l0,0L7.5,1.55l6.29,2.9 c0.2486,0.114,0.5427,0.007,0.66-0.24H14.41z","parking-paid":"M1 13V2h4.5a3.5 3.5 0 0 1 3.21 2.103 3.36 3.36 0 0 0-.504.676c-.23.41-.232.837-.174 1.154l.3 1.625A3.495 3.495 0 0 1 5.5 9H3v4H1Zm4.5-6a1.5 1.5 0 1 0 0-3H3v3h2.5Zm3.516-1.248a.716.716 0 0 1 .062-.484C9.315 4.848 9.978 4 11.5 4c1.521 0 2.185.847 2.421 1.268a.716.716 0 0 1 .064.484L13.019 11H12v2h-1v-2H9.981l-.965-5.248ZM12.75 7 13 5.655C12.83 5.409 12.42 5 11.5 5s-1.33.41-1.5.655L10.25 7h2.5Z",pharmacy:"M9.5,4l1.07-1.54c0.0599,0.0046,0.1201,0.0046,0.18,0c0.6904-0.0004,1.2497-0.5603,1.2494-1.2506 C11.999,0.519,11.4391-0.0404,10.7487-0.04C10.0584-0.0396,9.499,0.5203,9.4994,1.2106c0,0.0131,0.0002,0.0262,0.0006,0.0394 c0,0,0,0.07,0,0.1L7,4H9.5z M12,6V5H3v1l1.5,3.5L3,13v1h9v-1l-1-3.5L12,6z M10,10H8v2H7v-2H5V9h2V7h1v2h2V10z","picnic-site":"M4,3C3.446,3,3,3.446,3,4s0.446,1,1,1h1.2969 L4.6523,7H2.5c-0.554,0-1,0.446-1,1s0.446,1,1,1h1.5098L3.041,12.0098c-0.1284,0.3939,0.0868,0.8173,0.4807,0.9457 s0.8173-0.0868,0.9457-0.4807c0.0005-0.0013,0.0009-0.0027,0.0013-0.004L5.5859,9h3.8281l1.1172,3.4707 c0.1273,0.3943,0.5501,0.6107,0.9443,0.4834s0.6107-0.5501,0.4834-0.9443l0,0L10.9902,9H12.5c0.554,0,1-0.446,1-1s-0.446-1-1-1 h-2.1523L9.7031,5H11c0.554,0,1-0.446,1-1s-0.446-1-1-1H4z M6.873,5H8.127l0.6445,2h-2.543L6.873,5z",pitch:"M5,3C4.4477,3,4,2.5523,4,2s0.4477-1,1-1s1,0.4477,1,1S5.5523,3,5,3z M12.5,10H10L9,7L8,5.25L9,5l2.3,1l0,0 c0.2761,0.1105,0.5895-0.0239,0.7-0.3S11.9761,5.1105,11.7,5l0,0L9,4H7L5,5L4,6H2.5C2.2239,6,2,6.2239,2,6.5S2.2239,7,2.5,7H5l1-1 l1,2l-2,2v3.5C5,13.7761,5.2239,14,5.5,14S6,13.7761,6,13.5v-3.11L8,9l1,2h3.5c0.2761,0,0.5-0.2239,0.5-0.5S12.7761,10,12.5,10z","place-of-worship":"M7.5,0l-2,2v2h4V2 L7.5,0z M5.5,4.5L4,6h7L9.5,4.5H5.5z M2,6.5c-0.5523,0-1,0.4477-1,1V13h2V7.5C3,6.9477,2.5523,6.5,2,6.5z M4,6.5V13h7V6.5H4z M13,6.5c-0.5523,0-1,0.4477-1,1V13h2V7.5C14,6.9477,13.5523,6.5,13,6.5z",playground:"m3.00002 1.15c.2091-.8016 1.0284-1.2819 1.83-1.0729s1.2819 1.0284 1.0729 1.83c-.2003.7681-.9643 1.2471-1.7429 1.0929-.8126-.161-1.3409-.9502-1.18-1.7629.0058-.0292.0125-.0583.02-.0871zm10.99998 11.17c.1032.5426-.2531 1.066-.7956 1.1692-.0015.0003-.0029.0006-.0044.0008-.4252.086-.8574-.1119-1.07-.49l-1.68-3.37-1.44998.29-.22.08h-.06v2.15l.62-.15h.14c.2871.0054.5155.2425.5101.5297-.0039.2064-.1295.391-.3201.4703l-5 1c-.0563.0095-.1137.0095-.17 0-.2872 0-.52-.2328-.52-.52 0-.2099.1262-.3993.32-.48l4.15-.83v-2.17l-3.22.58c-.164.0423-.336.0423-.5 0-.3394-.0867-.6088-.3446-.71-.68h-.02l-1-4.07c-.0312-.1416-.0312-.2884 0-.43.0936-.387.4078-.6815.8-.75l4.7-.52v-4.13h.22v4.1h.06l.22-.02.4-.08h.21c.2673.0643.43258.3323.37.6-.0439.235-.251.4041-.49.4l-.49.08h-.22-.06v2.86h.06l.22-.06 1.80998-.36c.4275-.0352.8299.2062 1 .6l2 3.94c.077.0758.1411.1636.19.26zm-5.49998-7.19-2.5.27.74 2.94 1.76-.34z",police:"M5.5,1L6,2h5l0.5-1H5.5z M6,2.5v1.25c0,0,0,2.75,2.5,2.75S11,3.75,11,3.75V2.5H6z M1.9844,3.9863 C1.4329,3.9949,0.9924,4.4485,1,5v4c-0.0001,0.6398,0.5922,1.1152,1.2168,0.9766L5,9.3574V14l5.8789-6.9297 C10.7391,7.0294,10.5947,7,10.4414,7H6.5L3,7.7539V5C3.0077,4.4362,2.5481,3.9775,1.9844,3.9863z M11.748,7.7109L6.4121,14H12 V8.5586C12,8.2451,11.9061,7.9548,11.748,7.7109z","police-JP":"M7.5,1A6.5,6.5,0,1,0,14,7.5,6.5,6.5,0,0,0,7.5,1Zm2.6,2.84L7.5,6.44,4.9,3.84A4.4428,4.4428,0,0,1,10.1,3.84ZM3.84,4.9007,6.4394,7.5l-2.6,2.5993A4.4429,4.4429,0,0,1,3.84,4.9007ZM4.9,11.16l2.6-2.6,2.6,2.6A4.4428,4.4428,0,0,1,4.9,11.16Zm6.26-1.0606L8.5606,7.5l2.6-2.5993a4.4429,4.4429,0,0,1-.0006,5.1986Z",post:"M13.5 3.65139C13.5 3.86918 13.3912 4.07257 13.2099 4.19338L7.5 8L1.79006 4.19338C1.60885 4.07257 1.5 3.86918 1.5 3.65139C1.5 3.29164 1.79164 3 2.15139 3L12.8486 3C13.2084 3 13.5 3.29164 13.5 3.65139Z M13.5 5.96713V11C13.5 11.5523 13.0523 12 12.5 12H2.5C1.94772 12 1.5 11.5523 1.5 11L1.5 5.96713C1.5 5.76746 1.72254 5.64836 1.88868 5.75912L7.5 9.5L13.1113 5.75912C13.2775 5.64836 13.5 5.76746 13.5 5.96713Z","post-JP":"m1.5 4c0-.26522.10536-.51957.29289-.70711.18754-.18753.44189-.29289.70711-.29289h10c.2652 0 .5196.10536.7071.29289.1875.18754.2929.44189.2929.70711s-.1054.51957-.2929.70711c-.1875.18753-.4419.29289-.7071.29289h-10c-.26513 0-.51941-.10529-.70693-.29272-.18752-.18742-.29294-.44165-.29307-.70678zm11 2.5h-10c-.26522 0-.51957.10536-.70711.29289-.18753.18754-.29289.44189-.29289.70711s.10536.51957.29289.70711c.18754.18753.44189.29289.70711.29289h4v4.5c0 .2652.10536.5196.29289.7071.18754.1875.44189.2929.70711.2929s.51957-.1054.70711-.2929c.18753-.1875.29289-.4419.29289-.7071v-4.5h4c.2652 0 .5196-.10536.7071-.29289.1875-.18754.2929-.44189.2929-.70711s-.1054-.51957-.2929-.70711c-.1875-.18753-.4419-.29289-.7071-.29289z",prison:"M3.5,1v13H12V1H3.5z M9.5,2H11v3.5H9.5V2z M4.5,2.0547H6V7H4.5V2.0547z M7,2.0547h1.5V7H7V2.0547z M10.25,6.5 C10.6642,6.5,11,6.8358,11,7.25S10.6642,8,10.25,8l0,0C9.8358,8,9.5,7.6642,9.5,7.25l0,0C9.5,6.8358,9.8358,6.5,10.25,6.5z M7,8 h1.4727L8.5,13H7.0273L7,8z M4.5,8.166H6V13H4.5V8.166z M9.5,9H11v4H9.5V9z",racetrack:"M4.99321 1.58228C5.03861 1.30989 4.8546 1.05228 4.58222 1.00688C4.30983 0.961484 4.05222 1.14549 4.00682 1.41788L2.00682 13.4179C1.96142 13.6903 2.14543 13.9479 2.41782 13.9933C2.6902 14.0387 2.94782 13.8547 2.99321 13.5823L3.6632 9.56238C4.46947 9.67976 5.3398 9.7187 6.026 10.2C6.45057 10.505 6.94151 10.7047 7.45839 10.7828C8.424 10.9286 9.28807 10.3976 10.242 10.549L11.531 10.743C11.7908 10.7822 12.0609 10.5828 12.1 10.323L12.984 4.38899L12.988 4.38499C13.0241 4.12469 12.8213 3.85686 12.561 3.82099L11.272 3.62699C10.3092 3.48421 9.44342 3.9997 8.48942 3.85618C8.06155 3.79181 7.65443 3.62915 7.3 3.38099C6.56128 2.86385 5.68119 2.77814 4.81426 2.656L4.99321 1.58228ZM4.40351 5.12049L4.73218 3.14849C5.33161 3.22962 5.96556 3.27693 6.521 3.51699L6.22626 5.48223C5.65576 5.24949 5.01279 5.2037 4.40351 5.12049ZM3.74549 9.0686L4.07436 7.09542C4.69451 7.18147 5.35159 7.22405 5.933 7.46299L6.23273 5.48673C6.89067 5.75614 7.3918 6.21952 8.126 6.32799L8.426 4.34799C9.16402 4.45947 9.77459 4.17131 10.484 4.11399L10.184 6.07999C9.47389 6.1406 8.85956 6.44062 8.124 6.32999L7.83802 8.30784C7.10186 8.19874 6.59996 7.73286 5.939 7.46399L5.639 9.43999C5.04421 9.20148 4.3764 9.15882 3.74549 9.0686ZM7.83898 8.30813C8.57282 8.41936 9.19002 8.11708 9.9 8.05799L10.184 6.07999C10.8385 6.01968 11.5087 6.19133 12.152 6.28899L11.872 8.26499C11.2277 8.16793 10.5563 7.99624 9.901 8.05799L9.601 10.034C8.89229 10.0817 8.26589 10.3943 7.539 10.284L7.83898 8.30813Z","racetrack-boat":"m10.0643 11.2159c.4691-.5125.9358-1.0224 1.5938-1.2417.9212-.3071 1.5902.0778 1.8665.2805.7241.531 1.3904-.2204.5914-.8064-.4269-.3131-1.4451-.86577-2.7741-.4228-.7202.2401-1.2127.7667-1.70487 1.2931-.40012.4279-.80009.8556-1.32212 1.1291-.61911.3243-1.06486-.0266-1.06486-.6352v-.0121c.00021-.7982-.40819-1.3004-1.25-1.3004-.49071 0-.99216.2582-1.50001.5-1.17511.5596-2.31799 1.2859-3.31714 2.1134-.210639.1751-.243189.4951-.06696.7066.2505.3006.58076.1621.82938-.0379.41361-.3329 1.78116-1.3913 2.93376-1.94.47652-.227.86169-.3421 1.12097-.3421.24997 0 .24997.1016.24997.3396-.00202 1.3264 1.29025 2.1428 2.52893 1.4939.50415-.2641.89557-.6917 1.28535-1.1176zm-7.56426-2.2159c1.5-1 3.25492-2 5-2 .75 0 .75.375.75.75s0 .75.75.75c2.52746 0 5.36316-3.21377 5.49996-5.5l-2.5 1-2.34195-.97445c-.61176-.20392-.92799.74476-.31623.94868l1.15818.52577-1.49996.5-4-1.25c-.23606-.07869-.38872.02744-.5.25l-1.5 3-2.00004 1zm2.5-7c0-.5523.4477-1 1-1s1 .4477 1 1-.4477 1-1 1-1-.4477-1-1z","racetrack-cycling":"M8 1L11 4H12C14 4 14 1 12 1H8ZM8.463 3C8.34323 3.00901 8.2307 3.06084 8.146 3.146L5.646 5.646C5.59615 5.69579 5.55739 5.75555 5.53225 5.82136C5.50711 5.88718 5.49617 5.95757 5.50014 6.02791C5.5041 6.09825 5.52289 6.16696 5.55526 6.22953C5.58764 6.2921 5.63287 6.34713 5.688 6.391L7.846 8.117L6.57 10.242C6.50157 10.356 6.48125 10.4926 6.51351 10.6216C6.54577 10.7506 6.62796 10.8616 6.742 10.93C6.85604 10.9984 6.9926 11.0187 7.12162 10.9865C7.25065 10.9542 7.36157 10.872 7.43 10.758L8.93 8.258C8.99256 8.15404 9.01519 8.03088 8.99366 7.91148C8.97214 7.79207 8.90793 7.68457 8.813 7.609L7.304 6.402L9 4.707L10.146 5.854C10.1925 5.9004 10.2477 5.93718 10.3085 5.96223C10.3692 5.98728 10.4343 6.00012 10.5 6H13C13.1326 6 13.2598 5.94732 13.3536 5.85355C13.4473 5.75979 13.5 5.63261 13.5 5.5C13.5 5.36739 13.4473 5.24021 13.3536 5.14645C13.2598 5.05268 13.1326 5 13 5H10.707L8.854 3.146C8.80319 3.09493 8.74195 3.05545 8.67446 3.03025C8.60698 3.00505 8.53484 2.99473 8.463 3ZM2.949 7C2.16222 7.01338 1.4122 7.33534 0.860573 7.89651C0.308947 8.45767 -0.000113683 9.21311 3.13683e-08 10C3.13683e-08 10.7956 0.316071 11.5587 0.87868 12.1213C1.44129 12.6839 2.20435 13 3 13C3.79565 13 4.55871 12.6839 5.12132 12.1213C5.68393 11.5587 6 10.7956 6 10C6.00006 9.60179 5.92083 9.20756 5.76695 8.84028C5.61307 8.47301 5.38761 8.14004 5.10372 7.8608C4.81982 7.58157 4.48318 7.36164 4.11341 7.21385C3.74364 7.06606 3.34815 6.99336 2.95 7H2.949ZM11.949 7C11.1622 7.01338 10.4122 7.33534 9.86057 7.89651C9.30895 8.45767 8.99989 9.21311 9 10C9 10.7956 9.31607 11.5587 9.87868 12.1213C10.4413 12.6839 11.2044 13 12 13C12.7956 13 13.5587 12.6839 14.1213 12.1213C14.6839 11.5587 15 10.7956 15 10C15.0001 9.60179 14.9208 9.20756 14.767 8.84028C14.6131 8.47301 14.3876 8.14004 14.1037 7.8608C13.8198 7.58157 13.4832 7.36164 13.1134 7.21385C12.7436 7.06606 12.3482 6.99336 11.95 7H11.949ZM12.049 8C12.5709 8.01279 13.0671 8.22914 13.4316 8.60283C13.7962 8.97653 14.0002 9.47795 14 10C14 10.5304 13.7893 11.0391 13.4142 11.4142C13.0391 11.7893 12.5304 12 12 12C11.4696 12 10.9609 11.7893 10.5858 11.4142C10.2107 11.0391 10 10.5304 10 10C9.99992 9.73318 10.0532 9.46904 10.1568 9.22314C10.2603 8.97724 10.4121 8.75455 10.603 8.56818C10.7939 8.3818 11.0202 8.23552 11.2686 8.13794C11.5169 8.04036 11.7823 7.99346 12.049 8V8Z","racetrack-horse":"M10 1C9.73478 1 9.48043 1.10536 9.29289 1.29289C9.10536 1.48043 9 1.73478 9 2C9 2.26522 9.10536 2.51957 9.29289 2.70711C9.48043 2.89464 9.73478 3 10 3C10.2652 3 10.5196 2.89464 10.7071 2.70711C10.8946 2.51957 11 2.26522 11 2C11 1.73478 10.8946 1.48043 10.7071 1.29289C10.5196 1.10536 10.2652 1 10 1ZM5.5 3C5.25 3 4.5 3 5 3.75L6.25 6H4.5C4.223 6.003 3.983 6.1 3.75 6.25C2.944 5.121 2.242 5.552 1.51 6C1.107 6.247 0.694 6.499 0.25 6.5C0.184332 6.50201 0.121902 6.52899 0.0754461 6.57545C0.0289898 6.6219 0.00200653 6.68433 0 6.75C0.00200653 6.81567 0.0289898 6.8781 0.0754461 6.92455C0.121902 6.97101 0.184332 6.99799 0.25 7C0.626 7.02 1.057 6.907 1.488 6.793C2.144 6.62 2.798 6.448 3.254 6.75C3.16 6.937 3 7.5 3 8L2.998 9.51C2.792 9.714 2.619 9.633 2.443 9.55C2.303 9.485 2.16 9.42 2 9.5L1 12.45C1 12.7 1.393 12.752 1.5 12.5L2.25 10.744C2.998 10.744 4.5 10 5 9L9 10L11.5 12.5C11.697 12.697 12.12 12.362 11.96 12.115L10 9L12 6.5C12.248 7 12.495 7 12.986 7H13L13.6 7.75C13.988 8.235 14.82 7.743 14.5 7.25L12.834 4.79L13 4.5C13.062 4.313 12.637 3.924 12.5 4L10.5 5.5L8.89 3.187C8.84314 3.12862 8.78377 3.08151 8.71627 3.04915C8.64877 3.01678 8.57486 2.99999 8.5 3H5.5ZM9 5.25L9.5 6L6.777 7.916C6.72243 7.95469 6.66065 7.98204 6.59532 7.99643C6.52999 8.01081 6.46244 8.01194 6.39666 7.99975C6.33089 7.98756 6.26823 7.96229 6.2124 7.92545C6.15656 7.8886 6.10869 7.84093 6.07162 7.78525C6.03454 7.72957 6.00901 7.66701 5.99655 7.60129C5.98409 7.53556 5.98494 7.46801 5.99905 7.40262C6.01317 7.33723 6.04026 7.27534 6.07873 7.22061C6.1172 7.16588 6.16626 7.11943 6.223 7.084L9 5.25Z",rail:"M 3 1 C 2.4477 1 2 1.4477 2 2 L 2 10 C 2 10.5523 2.4477 11 3 11 L 12 11 C 12.5523 11 13 10.5523 13 10 L 13 2 C 13 1.4477 12.5523 1 12 1 L 3 1 z M 5.75 1.5 L 5.7597656 1.5 L 9.2597656 1.5 C 9.3978656 1.5 9.5097656 1.6119 9.5097656 1.75 C 9.5097656 1.8881 9.3978656 2 9.2597656 2 L 5.75 2 C 5.6119 2 5.5 1.8881 5.5 1.75 C 5.5 1.6119 5.6119 1.5 5.75 1.5 z M 3.5 3 L 7 3 L 7 7 L 3.5 7 C 3.2239 7 3 6.7761 3 6.5 L 3 3.5 C 3 3.2239 3.2239 3 3.5 3 z M 8 3 L 11.5 3 C 11.7761 3 12 3.2239 12 3.5 L 12 6.5 C 12 6.7761 11.7761 7 11.5 7 L 8 7 L 8 3 z M 5 8 C 5.5523 8 6 8.4477 6 9 C 6 9.5523 5.5523 10 5 10 C 4.4477 10 4 9.5523 4 9 C 4 8.4477 4.4477 8 5 8 z M 10 8 C 10.5523 8 11 8.4477 11 9 C 11 9.5523 10.5523 10 10 10 C 9.4477 10 9 9.5523 9 9 C 9 8.4477 9.4477 8 10 8 z M 10.445312 11.994141 C 10.380597 11.999652 10.314981 12.018581 10.253906 12.050781 C 10.030606 12.168381 9.9302313 12.433922 10.019531 12.669922 L 10.189453 13 L 4.8105469 13 L 4.9394531 12.730469 C 5.0371531 12.472169 4.9067375 12.183637 4.6484375 12.085938 C 4.4124375 11.996738 4.1468969 12.097113 4.0292969 12.320312 L 3.0292969 14.320312 C 3.0080969 14.377912 2.9986 14.4387 3 14.5 C 3 14.7761 3.2239 15 3.5 15 C 3.6802 14.999 3.8450875 14.899434 3.9296875 14.740234 L 3.9296875 14.689453 L 4 14.689453 L 4.3105469 14 L 10.689453 14 L 11 14.689453 L 11 14.740234 C 11.0846 14.899434 11.249488 14.999 11.429688 15 C 11.705787 15 11.929688 14.7761 11.929688 14.5 C 11.949587 14.4212 11.949587 14.338566 11.929688 14.259766 L 10.929688 12.259766 C 10.833163 12.076541 10.639459 11.977608 10.445312 11.994141 z","rail-light":"M5.5,0C5,0,5,0.5,5,0.5v1C5,1.777,5.223,2,5.5,2S6,1.777,6,1.5V1h1v2H6c0,0-2,0-2,2v3c0,3,3,3,3,3h1 c0,0,3,0,3-3V5c0-2-2-2-2-2H8V1h1v0.5C9,1.777,9.223,2,9.5,2S10,1.777,10,1.5v-1C10,0,9.5,0,9.5,0H5.5z M7.5,4l2.0449,0.7734L10,6.5 C10.1316,7,9.5,7,9.5,7h-4c0,0-0.6316,0-0.5-0.5l0.4551-1.7266L7.5,4z M7.5,8C7.7761,8,8,8.2239,8,8.5S7.7761,9,7.5,9 S7,8.7761,7,8.5S7.2239,8,7.5,8z M4.125,12L3,15h1.5l0.375-1h5.25l0.375,1H12l-1.125-3h-1.5l0.375,1h-4.5l0.375-1H4.125z","rail-metro":"M5.5,0c0,0-0.75,0-1,1L3,6.5V10c0,1,1,1,1,1h7c0,0,1,0,1-1V6.5L10.5,1c-0.2727-1-1-1-1-1H5.5z M6.5,1.5h2 c0,0,0.5357,0,0.75,1L10,6c0.2146,1.0017-1,1-1,1H6c0,0-1.2146,0.0017-1-1l0.75-3.5C5.9643,1.5,6.5,1.5,6.5,1.5z M5,8 c0.5523,0,1,0.4477,1,1s-0.4477,1-1,1S4,9.5523,4,9S4.4477,8,5,8z M6.75,8h1.5C8.3885,8,8.5,8.1115,8.5,8.25S8.3885,8.5,8.25,8.5 h-1.5C6.6115,8.5,6.5,8.3885,6.5,8.25S6.6115,8,6.75,8z M10,8c0.5523,0,1,0.4477,1,1s-0.4477,1-1,1S9,9.5523,9,9S9.4477,8,10,8z M4.125,12L3,15h1.5l0.375-1h5.25l0.375,1H12l-1.125-3h-1.5l0.375,1h-4.5l0.375-1H4.125z","ranger-station":"M9,0.5l-2,1v3.7734L2,8v6h4v-4h3 v4h4V8L8,5.2734V4l1-0.5l2,1l2-1v-3l-2,1L9,0.5z",recycling:"M2.4556,8.6134C2.118,9.2112,1.501,10.3021,2.593,11.0312c0.3432,0.2268,0.7275,0.3836,1.131,0.4614 C4.0314,11.5382,4.0466,12.0111,3.6855,12c-0.3849-0.0193-2.2596-0.1934-2.5606-1.5995c-0.1556-0.8213,0.0204-1.5571,0.504-2.3556 L2.3263,6.812L1.0196,6.0688L4.5,4v4L3.1941,7.3057L2.4556,8.6134z M6.7,2.034c1.155-0.628,1.823,0.43,2.191,1.007l0.8059,1.2631 L8.431,5.112L12,6.986L11.803,2.96l-1.2639,0.8066L9.779,2.578C9.2572,1.8321,8.875,1.2812,7.944,1.033 C6.307,0.7203,5.3007,2.6194,5.311,2.607c-0.1639,0.2871,0.2156,0.5399,0.451,0.21C6.0202,2.4969,6.339,2.2309,6.7,2.034z M13.294,8.221c-0.0877-0.1897-0.5487-0.1413-0.419,0.267c0.1312,0.3892,0.1845,0.8003,0.157,1.21C12.939,11.01,11.684,11,11,11H9.5 V9.5l-3.5,2l3.488,2.025L9.4926,12H11c0.8906,0.0153,1.5999-0.1759,2.2-0.713C14.4,10.226,13.294,8.221,13.294,8.221z","religious-buddhist":"M13.4978,6.9989h-0.5329c-0.09997-1.10708-0.53528-2.15731-1.2478-3.0105l0.378-0.3784 c0.19605-0.19447,0.19733-0.51105,0.00286-0.7071C11.90698,2.71037,11.59733,2.70518,11.4,2.8912l0,0l-0.0123,0.0123L11.01,3.2815 c-0.85331-0.71298-1.90385-1.14864-3.0113-1.2488V1.5c0-0.27614-0.22386-0.5-0.5-0.5s-0.5,0.22386-0.5,0.5v0.5327 C5.8916,2.13306,4.84144,2.56871,3.9884,3.2815L3.61,2.9C3.41007,2.70952,3.09358,2.71717,2.9031,2.9171 c-0.184,0.19312-0.184,0.49668,0,0.6898l0.3784,0.3775C2.56787,4.83856,2.13216,5.89031,2.0327,6.9989H1.5 c-0.27614,0-0.5,0.22386-0.5,0.5s0.22386,0.5,0.5,0.5h0.5327c0.09987,1.10695,0.535,2.15711,1.2473,3.0103l-0.3779,0.3779 c-0.19538,0.19514-0.19557,0.51173-0.00043,0.70711c0.19053,0.19076,0.49798,0.19611,0.69503,0.01209L3.609,12.094l0.3779-0.3779 c0.8533,0.71312,1.90395,1.1488,3.0115,1.2488v0.5329c0,0.27614,0.22386,0.5,0.5,0.5s0.5-0.22386,0.5-0.5v-0.5329 c1.10719-0.10026,2.15744-0.53592,3.0105-1.2488l0.3779,0.3779c0.19514,0.19538,0.51173,0.19557,0.70711,0.00043 c0.19076-0.19053,0.19611-0.49798,0.01209-0.69503l-0.0123-0.0123l0,0l-0.3779-0.3779c0.71283-0.8531,1.14848-1.90333,1.2488-3.0105 h0.5329c0.27609-0.00544,0.49549-0.23366,0.49006-0.50975C13.98227,7.22064,13.76611,7.00435,13.4978,6.9989z M7.9987,3.0505 c0.83871,0.09248,1.63383,0.42154,2.2926,0.9488l-2.15,2.15c-0.04663-0.0218-0.09436-0.04116-0.143-0.058V3.0505H7.9987z M6.9987,3.0505V6.091c-0.04864,0.01684-0.09637,0.0362-0.143,0.058l-2.15-2.15c0.65897-0.52726,1.45431-0.85622,2.2932-0.9485 H6.9987z M3.9987,4.7062l2.15,2.15c-0.0218,0.04663-0.04116,0.09436-0.058,0.143H3.0505 c0.09243-0.83886,0.42154-1.63413,0.9489-2.293L3.9987,4.7062z M3.0505,7.9987H6.091c0.01687,0.04863,0.03623,0.09636,0.058,0.143 l-2.15,2.15C3.47173,9.63281,3.14276,8.83753,3.0505,7.9987z M6.9989,11.9471c-0.83871-0.09248-1.63383-0.42154-2.2926-0.9488 l2.15-2.15c0.04663,0.0218,0.09436,0.04116,0.143,0.058v3.0405L6.9989,11.9471z M7.9989,11.9471V8.9066 c0.04864-0.01683,0.09638-0.03619,0.143-0.058l2.15,2.15c-0.65895,0.5273-1.4543,0.85627-2.2932,0.9485H7.9989z M10.9989,10.2914 l-2.15-2.15c0.02177-0.04664,0.04113-0.09437,0.058-0.143h3.0415c-0.09276,0.83901-0.42232,1.6343-0.9502,2.293H10.9989z M8.9066,6.9989c-0.01684-0.04864-0.0362-0.09637-0.058-0.143l2.15-2.15c0.52726,0.65877,0.85632,1.45389,0.9488,2.2926H8.9066 V6.9989z","religious-christian":"M6,0.9552V4H3v3h3v8h3V7h3V4H9V1 c0-1-0.9776-1-0.9776-1H6.9887C6.9887,0,6,0,6,0.9552z","religious-jewish":"M7.50049 0.5L5.49949 4H1L3.49949 7.5L1 11H5.49949L7.50049 14.5L9.50049 11H14L11.5005 7.5L14 4H9.50049L7.50049 0.5Z","religious-muslim":"M12.0962 12.0962C9.55779 14.6346 5.44221 14.6346 2.90381 12.0962C0.365398 9.55779 0.365398 5.44221 2.90381 2.90381C5.44221 0.365398 9.55779 0.365398 12.0962 2.90381C12.2675 3.07512 12.4273 3.25362 12.5754 3.43832C10.5566 1.86336 7.63341 2.00437 5.77643 3.86135C3.76685 5.87092 3.76685 9.12908 5.77643 11.1387C7.63341 12.9956 10.5566 13.1366 12.5754 11.5617C12.4273 11.7464 12.2675 11.9249 12.0962 12.0962Z M10.1 6.5H8L9.7 8L9 10.5L11 9L13 10.5L12.3 8L14 6.5H11.9L11 4.5L10.1 6.5Z","religious-shinto":"M12.5,2.5H2.5a.9448.9448,0,0,0-1,1,.9448.9448,0,0,0,1,1H3V12a.9448.9448,0,0,0,1,1,.9448.9448,0,0,0,1-1V8h5v4a.9448.9448,0,0,0,1,1,.9448.9448,0,0,0,1-1V4.5h.5a.9448.9448,0,0,0,1-1,.9448.9448,0,0,0-1-1ZM10,6H8V4.5h2ZM7,6H5V4.5H7Z","residential-community":"m11.8 12.5v-2.5c.7-.1 1.2-.7 1.2-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5c0 .7.5 1.4 1.2 1.5v2.5h-4.2v-11.5h-5v11.5h-1v.5h13v-.5zm-5.8-2.5h-3v-1h3zm0-2h-3v-1h3zm0-2h-3v-1h3zm0-2h-3v-1h3z",restaurant:"M3.5,0l-1,5.5c-0.1464,0.805,1.7815,1.181,1.75,2L4,14c-0.0384,0.9993,1,1,1,1s1.0384-0.0007,1-1L5.75,7.5 c-0.0314-0.8176,1.7334-1.1808,1.75-2L6.5,0H6l0.25,4L5.5,4.5L5.25,0h-0.5L4.5,4.5L3.75,4L4,0H3.5z M12,0 c-0.7364,0-1.9642,0.6549-2.4551,1.6367C9.1358,2.3731,9,4.0182,9,5v2.5c0,0.8182,1.0909,1,1.5,1L10,14c-0.0905,0.9959,1,1,1,1 s1,0,1-1V0z","restaurant-bbq":"M12.0166,12.5H14.5L12,15V12.5165a1.6189,1.6189,0,0,1-1.1367.4806,1.6,1.6,0,0,1-.9931-.3448A6.7838,6.7838,0,0,1,9.8783,2.3418,1.6179,1.6179,0,0,1,12,2.462V0l2.5,2.5H12.036a1.5927,1.5927,0,0,1,.1225.1289,1.6239,1.6239,0,0,1-.2871,2.2793A3.5148,3.5148,0,0,0,10.75,7.4951a3.5578,3.5578,0,0,0,1.1465,2.6162,1.6352,1.6352,0,0,1,.2325,2.2783C12.0949,12.4315,12.0535,12.4624,12.0166,12.5ZM2.504,0l-1,5.5c-.1464.805,1.7815,1.181,1.75,2L3.004,14a.9625.9625,0,0,0,1,1,.9625.9625,0,0,0,1-1l-.25-6.5c-.0314-.8176,1.7334-1.1808,1.75-2l-1-5.5h-.5l.25,4-.75.5L4.254,0h-.5l-.25,4.5L2.754,4l.25-4Z","restaurant-noodle":"M4.457,11.9892,1,8V7H14V8l-3.4961,3.9891ZM3.9882,2.5a.5.5,0,0,0-1,0v.5671l-1.7969.3675a.25.25,0,1,0,.094.4911l1.7029-.2776v.5662l-1.75.0357a.25.25,0,0,0,0,.5l1.75.0357V5.998h1Zm9.5,1.5-7.5.2625V2.9951l7.594-1.0737a.5.5,0,0,0-.1881-.9822L5.9792,2.4555a.4963.4963,0,0,0-.991.0445v.2276l-.493.1009V3.18l.493-.08V4.2974l-.493.01v.4608L13.4882,5a.5.5,0,0,0,0-1ZM10,13H5v.5757h5Z","restaurant-pizza":"M1.393 7.931.025 7.315A14.05 14.05 0 0 1 7.764-.001l.027.07.511 1.331-.003.001a12.613 12.613 0 0 0-6.906 6.53Zm10.963 4.96L2.42 8.414a11.604 11.604 0 0 1 6.354-6.009l.003-.001.817 2.122c-.028-.002-.052-.016-.081-.016a1.062 1.062 0 1 0 .764 1.793l2.413 6.273a.249.249 0 0 1-.334.316ZM7.426 7.52a.925.925 0 1 0-1.849 0 .925.925 0 0 0 1.849 0Zm3.017 2.03a.925.925 0 1 0-.07.353.924.924 0 0 0 .07-.354Z","restaurant-seafood":"M11.433,10.0889h2.49v.75H11.8525A4.81,4.81,0,0,1,13.4751,13.14l-.71.2422a4.01,4.01,0,0,0-1.74-2.1971,1.7775,1.7775,0,0,1-1.0352.4538L8.4374,12.9852H6.5188L4.9839,11.623a2.0222,2.0222,0,0,1-1.0929-.44,4.0093,4.0093,0,0,0-1.7426,2.1988l-.71-.2422a4.8146,4.8146,0,0,1,1.622-2.3007H.99v-.75H3.4839l.8633-.6764L3.3329,7.7567a2.2738,2.2738,0,0,1-.269.0293,2.0192,2.0192,0,0,1-2.0532-2.08c0-2.08,1.979-4.16,1.979-4.16L2.2531,5.9931l1.7255-.0012L4.9913,2.9852l0,2.9956a2.0936,2.0936,0,0,1-.6993,1.4121l.8536,1.3936L5.23,8.7208a3.8669,3.8669,0,0,1,4.4784,0l.0605.0474.869-1.4152a2.1177,2.1177,0,0,1-.6433-1.3722l0-2.9956.9836,3.0067,1.7547.0012-.7367-4.4466s1.982,2.08,1.982,4.16a2.0211,2.0211,0,0,1-2.0562,2.08,2.3125,2.3125,0,0,1-.3441-.0376L10.5676,9.3945l.8407.6593C11.4212,10.0638,11.4218,10.0782,11.433,10.0889Z","restaurant-sushi":"M5.5,3C5.2239,3,5,3.2239,5,3.5H2.75C1.2265,3.5,0,4.7265,0,6.25c0,0.8274,0.3687,1.5592,0.9434,2.0625 C0.3803,8.6675,0,9.2893,0,10c0,1.0994,0.9006,2,2,2h3.5h2H10c1.0994,0,2-0.9006,2-2c0-0.4883-0.1863-0.9294-0.4805-1.2773 l2.1777,0.9629c0.3716,0.1831,0.8213,0.0303,1.0044-0.3413c0.1831-0.3716,0.0303-0.8213-0.3413-1.0044 c-0.0188-0.0093-0.038-0.0178-0.0576-0.0254l-1.8105-0.8027l1.6309-0.2715c0.4099-0.0599,0.6936-0.4408,0.6337-0.8507 c-0.0544-0.3724-0.3765-0.6469-0.7528-0.6415c-0.0426,0.0003-0.085,0.0042-0.127,0.0117l-2.1309,0.3555 C11.2595,4.9521,10.0387,3.7837,8,3.5488V3.5C8,3.2239,7.7761,3,7.5,3H5.5z M6,4h1v5v2H6V9V4z M9.5,8 c0.259,0,0.4638,0.1974,0.4902,0.4492l0.0762-0.1328c0.1385-0.2399,0.4437-0.3201,0.6836-0.1816s0.3201,0.4418,0.1816,0.6816 l-0.2578,0.4473C10.8727,9.445,11,9.7021,11,10c0,0.5626-0.4374,1-1,1H8V9h1V8.5C9,8.223,9.223,8,9.5,8z M2.4395,8.0703 c0.1934-0.0242,0.3903,0.0662,0.4941,0.2461l0.2012,0.3477C3.226,8.5647,3.3538,8.5,3.5,8.5C3.777,8.5,4,8.723,4,9h1v2H2 c-0.5626,0-1-0.4374-1-1s0.4374-1,1-1h0.1738L2.0684,8.8164C1.9299,8.5765,2.0101,8.2733,2.25,8.1348 C2.31,8.1001,2.375,8.0784,2.4395,8.0703z","road-accident":"M12.6,8.7,11.5,6.5a1.05,1.05,0,0,0-.9-.5H4.4a1.05,1.05,0,0,0-.9.5L2.4,8.7,1.16,9.852a.5.5,0,0,0-.16.366V14.5a.5.5,0,0,0,.5.5h2c.2,0,.5-.2.5-.4V14h7v.5c0,.2.2.5.4.5h2.1a.5.5,0,0,0,.5-.5V10.218a.5.5,0,0,0-.16-.366ZM4.5,7h6l1,2h-8ZM5,11.6c0,.2-.3.4-.5.4H2.4c-.2,0-.4-.3-.4-.5V10.4c.1-.3.3-.5.6-.4l2,.4c.2,0,.4.3.4.5Zm8-.1c0,.2-.2.5-.4.5H10.5c-.2,0-.5-.2-.5-.4v-.7c0-.2.2-.5.4-.5l2-.4c.3-.1.5.1.6.4ZM8,4H7L6,0H9ZM1.1,1.8,3.7.3l1.1,4L4,4.7ZM11.3.3l2.6,1.5L11,4.8l-.9-.5Z",roadblock:"M7.5 14C11.0899 14 14 11.0899 14 7.5C14 3.91015 11.0899 1 7.5 1C3.91015 1 1 3.91015 1 7.5C1 11.0899 3.91015 14 7.5 14ZM12 6V9H3V6H12Z",rocket:"m11.5547 2c-2.14407 0-5.02107 1.471-6.95307 4h-1.6016c-1.1573 0-1.8206.8638-2.277302 1.7773l-.6114 1.2227h1.443402 1.4453l1.5 1.5 1.5 1.5v1.4453 1.4434l1.2227-.6113c.9135-.4568 1.7773-1.1201 1.7773-2.2774v-1.6016c2.52897-1.932 3.99997-4.809 3.99997-6.9531v-1.4453zm-2.55467 3c.5523 0 .99997.4477.99997 1s-.44767 1-.99997 1-1-.4477-1-1 .4477-1 1-1zm-6.5 6-.5.5c-.7222.7222-1 2.5-1 2.5s1.698-.198 2.5-1l.5-.5z",school:"M5.542 3.647 3.106 3l.443-1.63a.505.505 0 0 1 .618-.352l1.46.392a.5.5 0 0 1 .355.613l-.44 1.624Zm-4.52 7.356a.496.496 0 0 1-.005-.276l1.819-6.726 2.435.647-1.819 6.726a.499.499 0 0 1-.143.237l-1.457 1.347a.152.152 0 0 1-.247-.066l-.583-1.889ZM10 5c-2.25 0-3-.75-3-3 2.25 0 3 .75 3 3Zm-1.4 7.984c-1.37.21-3.126-1.706-3.52-3.8L5.969 5.9c.399-.35.903-.533 1.419-.533a2.71 2.71 0 0 1 1.564.489.964.964 0 0 0 1.089-.01 2.438 2.438 0 0 1 1.46-.479c.77 0 1.643.489 2.05 1.201 1.536 2.696-1.194 6.709-3.144 6.417a.867.867 0 0 1-.255-.093 1.427 1.427 0 0 0-1.302 0 .866.866 0 0 1-.25.092Z","school-JP":"M12.5,2.9992h-4v-1a1,1,0,0,0-2,0v1h-4a1,1,0,0,0,0,2h.67A10.8169,10.8169,0,0,0,5.15,8.8105c.3331.4313.6594.8248.9785,1.1936a14.3825,14.3825,0,0,1-2.6074,2.117,1,1,0,1,0,.955,1.7581h0A15.65,15.65,0,0,0,7.5,11.4613a15.65,15.65,0,0,0,3.0239,2.4179,1,1,0,1,0,.9551-1.7578,14.3789,14.3789,0,0,1-2.6073-2.1171c.3191-.3688.6453-.7622.9784-1.1935a10.818,10.818,0,0,0,1.98-3.8116h.67a1,1,0,0,0,0-2ZM8.2671,7.5879c-.2614.3385-.5154.6413-.767.937-.2517-.2957-.5057-.5985-.7672-.937A9.5885,9.5885,0,0,1,5.2676,4.9992H9.7319A9.5789,9.5789,0,0,1,8.2671,7.5879Z",scooter:"M4.908,12a1.5,1.5,0,1,1-2.816,0Zm8.65-6C13.539,6,13,6,13,6V3h.351a.282.282,0,0,0,.223-.148l.268-.536a.334.334,0,0,0,.009-.066A.25.25,0,0,0,13.6,2H13V1.7a.215.215,0,0,0-.2-.2H9.25a.25.25,0,0,0,0,.5H12V6.6L7.6,10H6V7.5A.5.5,0,0,0,5.5,7H5V5H6.75a.25.25,0,0,0,0-.5L2.266,4.034c-.006,0-.01-.007-.016-.007a.25.25,0,0,0-.25.25V4.75A.25.25,0,0,0,2.25,5H3V7H2.5A1.538,1.538,0,0,0,1,8.5v2a.472.472,0,0,0,.442.5C1.461,11,7.5,11,7.5,11L10,10h3.5a.472.472,0,0,0,.5-.442C14,9.539,14,6.5,14,6.5A.472.472,0,0,0,13.558,6ZM12.5,11A1.5,1.5,0,1,0,14,12.5,1.538,1.538,0,0,0,12.5,11Z",shelter:"M13 2L1 6V8L2 7.66667V13H12V11H4V7L13 4V2Z",shoe:"M9.5,7a9.97,9.97,0,0,1-1.315-.948L6.01,3.221a.558.558,0,0,0-1,.279H5V5H3.209a.5.5,0,0,1-.357-.148S2.5,4,2,4H1.5a.5.5,0,0,0-.5.5V9H6.5c1.5,0,2,1,3.5,1h4V9.5C14,8,10.547,7.594,9.5,7Zm0,4a3.131,3.131,0,0,1-1.526-.447A4.1,4.1,0,0,0,6,10H1v1.5a.5.5,0,0,0,.5.5h4a.5.5,0,0,0,.5-.5V11a3.134,3.134,0,0,1,1.526.447A4.1,4.1,0,0,0,9.5,12h4a.5.5,0,0,0,.5-.5V11Z",shop:"m13.33 5h-1.83l-.39-2.33c-.1601-.7182-.7017-1.2905-1.41-1.49-.3493-.1124-.7131-.173-1.08-.18h-2.24c-.3669.007-.7307.0676-1.08.18-.7083.1995-1.2499.7718-1.41 1.49l-.39 2.33h-1.83c-.2761-.0017-.5013.2208-.503.497-.0003.0519.0074.1035.023.153l1.88 6.3c.1964.6246.7753 1.0496 1.43 1.05h6c.651-.0047 1.2247-.4289 1.42-1.05l1.88-6.3c.0829-.2634-.0635-.5441-.3269-.627-.0463-.0146-.0945-.0223-.1431-.023zm-8.81 0 .36-2.17c.0807-.3625.3736-.6395.74-.7.2463-.0776.5019-.1213.76-.13h2.24c.2614.0078.5205.0515.77.13.3664.0605.6593.3375.74.7l.35 2.17h-6z",skateboard:"M1.25 5.25V5H2.75V5.25C2.75 5.94036 3.30964 6.5 4 6.5H11C11.6904 6.5 12.25 5.94036 12.25 5.25V5H13.75V5.25C13.75 6.76878 12.5188 8 11 8H4C2.48122 8 1.25 6.76878 1.25 5.25ZM5 10C5 10.5523 4.55228 11 4 11 3.44772 11 3 10.5523 3 10 3 9.44772 3.44772 9 4 9 4.55228 9 5 9.44772 5 10ZM12 10C12 10.5523 11.5523 11 11 11 10.4477 11 10 10.5523 10 10 10 9.44772 10.4477 9 11 9 11.5523 9 12 9.44772 12 10Z",skiing:"M15,4.5C15,5.3284,14.3284,6,13.5,6S12,5.3284,12,4.5S12.6716,3,13.5,3S15,3.6716,15,4.5z M13.72,11.89 c-0.0623-0.1197-0.2083-0.1684-0.33-0.11c-0.6846,0.4194-1.5208,0.5111-2.28,0.25L4.78,8.86L7.5,7.5v-3L9,5.25v3L10.5,9L12,8.25 L10.5,7.5V3l-3-1.5L6,2.25v4.5L3.28,8.11L0.61,6.78C0.4857,6.7192,0.3358,6.7707,0.275,6.895C0.2142,7.0193,0.2657,7.1692,0.39,7.23 l10.5,5.25c0.3156,0.135,0.6568,0.1998,1,0.19c0.5998-0.0103,1.1889-0.161,1.72-0.44c0.1236-0.0615,0.174-0.2116,0.1125-0.3352 C13.7217,11.8932,13.7208,11.8916,13.72,11.89z",slaughterhouse:"M15 6.1c0 1.376-1.363.694-1.363.694L12.5 7H11a5.31 5.31 0 0 1-1.5 2 3.272 3.272 0 0 1-.523 1.125c-.077.091-.06.2-.068.33l.091 2.3a.264.264 0 0 1-.266.25.242.242 0 0 1-.234-.205L8 9.5H4v3.253a.247.247 0 0 1-.247.247.25.25 0 0 1-.24-.2L3 10v-.5a8.2 8.2 0 0 1-1.426-.1A1.886 1.886 0 0 1 .9 10.826c-.128.083-.148.211-.133.386l.19 1.538a.25.25 0 0 1-.25.25.238.238 0 0 1-.23-.174l-.427-1.7a.35.35 0 0 1 .055-.3c.437-.68-.049-2.55-.049-2.55A1.354 1.354 0 0 1 0 7.922V5.5a2.027 2.027 0 0 1 2.736-1.914s.1.03.142.049a15.15 15.15 0 0 0 3.814.038l.18-.062a1.842 1.842 0 0 1 1.26 0c.078.02.154.05.226.089.1.049.196.106.287.171A1.8 1.8 0 0 0 9.5 4h1V3l.5.5c.5-1.5 2.5-1 2.5-1a1.687 1.687 0 0 0-1.5 1l2.5 2a.612.612 0 0 1 .186-.069.318.318 0 0 1 .314.321V6.1Z",slipway:"m2 10 12 1.495V12H2v-2Zm12-4-1 1v.583L5.196 4.332l.063-.125L6.61 2.845h.831a.35.35 0 0 0 0-.7h-.976a.352.352 0 0 0-.248.103L4.723 3.753a.371.371 0 0 0-.066.09l-.109.219L2 3c0 2-.03 3.958 2.86 4.5C6.28 7.765 13 9 13 9l2-2-1-1Z",snowmobile:"M15 10a1 1 0 0 1-1 1H9.414a1 1 0 0 1-.707-.293L7.146 9.146A.499.499 0 0 0 6.793 9H3.334a1 1 0 0 1-.601-.2L1.386 7.788A1.013 1.013 0 0 1 1 7a.995.995 0 0 1 .472-.844L5 4l1.038-1.692A.5.5 0 0 1 7 2.5V6l1 1h1l5.412-.992a.5.5 0 0 1 .355.915L13 8l1.631 1.224A.99.99 0 0 1 15 10Zm-9.5 0H3.225c-.504 0-.999-.127-1.44-.368L.74 9.062a.5.5 0 0 0-.48.877l1.269.693c.441.242.937.368 1.44.368H5.5a.5.5 0 0 0 0-1Z",soccer:"M11,1.5C11,2.3284,10.3284,3,9.5,3S8,2.3284,8,1.5S8.6716,0,9.5,0S11,0.6716,11,1.5z M11,11c-0.5523,0-1,0.4477-1,1 s0.4477,1,1,1s1-0.4477,1-1S11.5523,11,11,11z M12.84,6.09l-1.91-1.91l0,0C10.8399,4.0675,10.7041,4.0014,10.56,4H3.5 C3.2239,4,3,4.2239,3,4.5S3.2239,5,3.5,5h2.7L3,11.3l0,0c-0.0138,0.066-0.0138,0.134,0,0.2c-0.058,0.2761,0.1189,0.547,0.395,0.605 C3.6711,12.163,3.942,11.9861,4,11.71l0,0L5,10h2l-1.93,4.24l0,0C5.0228,14.3184,4.9986,14.4085,5,14.5 c-0.0552,0.2761,0.1239,0.5448,0.4,0.6c0.2761,0.0552,0.5448-0.1239,0.6-0.4l0,0l4.7-9.38l1.44,1.48 c0.211,0.1782,0.5264,0.1516,0.7046-0.0593C13.0037,6.5523,13.0018,6.2761,12.84,6.09z",square:"M12 13H3C2.4477 13 2 12.5523 2 12V3C2 2.4477 2.4477 2 3 2H12C12.5523 2 13 2.4477 13 3V12C13 12.5523 12.5523 13 12 13Z","square-stroked":"M11.7 3.3V11.7H3.3V3.3H11.7ZM12 2H3C2.4477 2 2 2.4477 2 3V12C2 12.5523 2.4477 13 3 13H12C12.5523 13 13 12.5523 13 12V3C13 2.4477 12.5523 2 12 2Z",stadium:"M7,1v2v1.5v0.5098C4.1695,5.1037,2.0021,5.9665,2,7v4.5c0,1.1046,2.4624,2,5.5,2s5.5-0.8954,5.5-2V7 c-0.0021-1.0335-2.1695-1.8963-5-1.9902V4.0625L11,2.75L7,1z M3,8.1465c0.5148,0.2671,1.2014,0.4843,2,0.6328v2.9668 C3.7948,11.477,3,11.0199,3,10.5V8.1465z M12,8.1484V10.5c0,0.5199-0.7948,0.977-2,1.2461V8.7812 C10.7986,8.6328,11.4852,8.4155,12,8.1484z M6,8.9219C6.4877,8.973,6.9925,8.9992,7.5,9C8.0073,8.9999,8.5121,8.9743,9,8.9238 v2.9844C8.5287,11.964,8.0288,12,7.5,12S6.4713,11.964,6,11.9082V8.9219z",star:"M7.5,0l-2,5h-5l4,3.5l-2,6l5-3.5 l5,3.5l-2-6l4-3.5h-5L7.5,0z","star-stroked":"m7.5 2.69 1.07 2.68.25.63h3l-2 1.75-.5.44.23.63 1 3.13-2.48-1.77-.57-.4-.57.4-2.52 1.77 1-3.13.21-.63-.5-.44-2-1.75h3l.25-.63zm0-2.69-2 5h-5l4 3.5-2 6 5-3.5 5 3.5-2-6 4-3.5h-5z",suitcase:"M4.5 4V2C4.5 1.44772 4.94772 1 5.5 1H9.5C10.0523 1 10.5 1.44772 10.5 2V4H12C12.5523 4 13 4.44772 13 5V11C13 11.5523 12.5523 12 12 12H3C2.44771 12 2 11.5523 2 11V5C2 4.44772 2.44772 4 3 4H4.5ZM5.5 2V4H9.5V2H5.5Z",swimming:"M10.1113,2C9.9989,2,9.6758,2.1465,9.6758,2.1465L6.3535,3.8262 C5.9111,4.0024,5.7358,4.7081,6.002,5.0605l0.9707,1.4082L3.002,8.498L5,9.998l2.502-1.5l2.5,1.5l1.002-1.002l-3-4l2.5566-1.5293 c0.5286-0.2662,0.4434-0.7045,0.4434-0.9707C10.9999,2.2861,10.6437,2,10.1113,2z M12.252,5C11.2847,5,10.5,5.7827,10.5,6.75 s0.7847,1.752,1.752,1.752s1.75-0.7847,1.75-1.752S13.2192,5,12.252,5z M2.5,10L0,11.5V13l2.5-1.5L5,13l2.502-1.5l2.5,1.5L12,11.5 l3,1.5v-1.5L12,10l-1.998,1.5l-2.5-1.5L5,11.5L2.5,10z","table-tennis":"M11.9676,10.2275a3.8116,3.8116,0,0,1-1.9122.9831L3.7678,4.9338A4.0283,4.0283,0,0,1,4.7725,3.0324C7.03.7745,9.98.2235,12.3781,2.6219S14.2255,7.97,11.9676,10.2275Zm-6.987,1.6093A3.8422,3.8422,0,0,1,6.149,11.278,4.5328,4.5328,0,0,1,8,11.4452L3.5456,7a4.4126,4.4126,0,0,1,.1572,1.9223,3.6639,3.6639,0,0,1-.5208,1.1159c-1.072,1.263-2.132,1.727-2.132,2.1879A1.8378,1.8378,0,0,0,2.7739,13.95C3.2348,13.95,3.6917,12.9368,4.9806,11.8368Z",teahouse:"M8.00002 5C8.00002 5 10 4.9 10 3.4 10 2.46598 9.17751 2.20864 8.47606 1.98917 7.95458 1.82601 7.5 1.68378 7.5 1.3 7.5.386843 8 0 8 0 8 0 7 .531581 7 1.5 7 2.21063 7.54045 2.46176 8.05947 2.70292 8.53888 2.92568 9 3.13994 9 3.7 9 4.7 8.00002 5 8.00002 5ZM11.8372 6.67447C11.3755 8.62063 10.7854 11.1073 9 12V14H6V12C4.21455 11.1073 3.62454 8.62063 3.16276 6.67447 3.10728 6.44061 3.05364 6.21455 3 6H12C11.9464 6.21453 11.8927 6.44063 11.8372 6.67447ZM6.99998 4C6.99998 5 5.49998 5 5.49998 5 5.49998 5 6.29295 4.9 6.29295 4.3 6.29295 4.02526 6.01604 3.85489 5.71852 3.67184 5.37315 3.45935 5 3.22977 5 2.8 5 1.9661 5.99998 1.5 5.99998 1.5 5.99998 1.5 5.49998 1.77344 5.49998 2.5 5.49998 2.88823 5.85322 3.04095 6.21687 3.19818 6.60257 3.36494 6.99998 3.53675 6.99998 4Z",telephone:"M4.51,8.88a0.51,0.51,0,0,0,0,.72l0.72,0.72L3.07,12.5,2.7,12.13A2.24,2.24,0,0,1,2,10.69V9.24a2.24,2.24,0,0,1,.7-1.45L7.77,2.72A2.24,2.24,0,0,1,9.22,2h1.45a2.24,2.24,0,0,1,1.45.72l0.36,0.36L10.31,5.26,9.58,4.53a0.51,0.51,0,0,0-.72,0ZM4.13,13.6a1,1,0,0,0,1.4137.0363Q5.5623,13.6186,5.58,13.6l0.72-.72a1,1,0,0,0,.0363-1.4137Q6.3186,11.4477,6.3,11.43Zm7.25-7.28a1,1,0,0,0,1.4137.0363C12.8061,6.3445,13.55,5.6,13.55,5.6a1,1,0,0,0,.0363-1.4137Q13.5686,4.1677,13.55,4.15Z",tennis:"M13.1284,1.87c-1.5418-1.5406-4.5535-.7759-6.28,1.05a6.8282,6.8282,0,0,0-1.88,4.4,5.7275,5.7275,0,0,1-.57,2.72.6814.6814,0,0,0-.67.17l-2.49,2.5a.6941.6941,0,0,0,0,.98l.07.07a.7051.7051,0,0,0,.98,0l2.5-2.49a.683.683,0,0,0,.18-.66,8.5694,8.5694,0,0,1,3.12-.58,6.5487,6.5487,0,0,0,3.99-1.87C14.1084,6.13,14.579,3.3194,13.1284,1.87Zm-2.2-.04a2.3071,2.3071,0,0,1,1.64.61,2.548,2.548,0,0,1,.5,2.44l-2.95-2.96A3.8648,3.8648,0,0,1,10.9284,1.83Zm-4.57,6.81a2.6485,2.6485,0,0,1-.48-2.55l3.04,3.04A2.8522,2.8522,0,0,1,6.3584,8.64Zm2.88.39-3.26-3.27a5.1623,5.1623,0,0,1,.49-1.08l3.85,3.85A5.5093,5.5093,0,0,1,9.2384,9.03Zm1.34-.66-3.94-3.95a5.2032,5.2032,0,0,1,.74-.9l4.1,4.1A5.6869,5.6869,0,0,1,10.5784,8.37Zm1.11-.96-4.1-4.1a5.5714,5.5714,0,0,1,.84-.65l3.92,3.92A5.7187,5.7187,0,0,1,11.6884,7.41Zm.82-1.09L8.6984,2.5a4.1707,4.1707,0,0,1,1.09-.48l3.2,3.2A5.5656,5.5656,0,0,1,12.5084,6.32Z",theatre:"M2,1c0,0-1,0-1,1v5.1582C1,8.8885,1.354,11,4.5,11H5V8L2.5,9c0,0,0-2.5,2.5-2.5V5 c0-0.7078,0.0868-1.3209,0.5-1.7754C5.8815,2.805,6.5046,1.9674,8.1562,2.7539L9,3.3027V2c0,0,0-1-1-1C7.2922,1,6.0224,2,5,2 S2.7865,1,2,1z M3,3c0.5523,0,1,0.4477,1,1S3.5523,5,3,5S2,4.5523,2,4S2.4477,3,3,3z M7,4c0,0-1,0-1,1v5c0,2,1,4,4,4s4-2,4-4V5 c0-1-1-1-1-1c-0.7078,0-1.9776,1-3,1S7.7865,4,7,4z M8,6c0.5523,0,1,0.4477,1,1S8.5523,8,8,8S7,7.5523,7,7S7.4477,6,8,6z M12,6 c0.5523,0,1,0.4477,1,1s-0.4477,1-1,1s-1-0.4477-1-1S11.4477,6,12,6z M7.5,10H10h2.5c0,0,0,2.5-2.5,2.5S7.5,10,7.5,10z",toilet:"M3 1.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0ZM11.5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM3.29 4a1 1 0 0 0-.868.504L.566 7.752a.5.5 0 1 0 .868.496l1.412-2.472A345.048 345.048 0 0 0 1 11h2v2.5a.5.5 0 0 0 1 0V11h1v2.5a.5.5 0 0 0 1 0V11h2L6.103 5.687l1.463 2.561a.5.5 0 1 0 .868-.496L6.578 4.504A1 1 0 0 0 5.71 4H3.29ZM9 4.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v5a.5.5 0 0 1-1 0v4a.5.5 0 0 1-1 0v-4h-1v4a.5.5 0 0 1-1 0v-4a.5.5 0 0 1-1 0v-5Z",toll:"M2.5 1C2.22386 1 2 1.22386 2 1.5V2V13H1.5C1.22386 13 1 13.2239 1 13.5C1 13.7761 1.22386 14 1.5 14H8.5C8.77614 14 9 13.7761 9 13.5C9 13.2239 8.77614 13 8.5 13H7V10.0987L13.7761 5.54576C14.0053 5.39175 14.0663 5.08109 13.9123 4.85189L13.6334 4.43687C13.4794 4.20766 13.1688 4.1467 12.9396 4.3007L7 8.29152V2H7.5C7.77614 2 8 1.77614 8 1.5C8 1.22386 7.77614 1 7.5 1H2.5ZM3 3.5C3 3.22386 3.22386 3 3.5 3H5.5C5.77614 3 6 3.22386 6 3.5V7.5C6 7.77614 5.77614 8 5.5 8H3.5C3.22386 8 3 7.77614 3 7.5V3.5Z",town:"m10.651 6.121c-.0445-.0357-.0999-.05516-.157-.05516s-.1125.01946-.157.05516l-2.245 1.808c-.02881.02323-.05204.05263-.06796.08603-.01593.03341-.02414.06997-.02404.10697v4.625c0 .0671.02666.1315.0741.1789.04745.0474.1118.0741.1789.0741h1.494c.0671 0 .13145-.0267.1789-.0741s.0741-.1118.0741-.1789v-1.747h1v1.747c0 .0671.0267.1315.0741.1789.0475.0474.1118.0741.1789.0741h1.494c.0671 0 .1315-.0267.1789-.0741s.0741-.1118.0741-.1789v-4.627c.0007-.03831-.0074-.07627-.0237-.11095s-.0404-.06514-.0703-.08905zm-.651 3.879h-1v-1h1zm2 0h-1v-1h1zm-6.29-9.184997c-.02299-.034654-.05419-.063081-.09083-.082746s-.07758-.029956-.11917-.029956c-.04158 0-.08252.010291-.11916.029956-.03665.019665-.06785.048092-.09084.082746l-3.248 4.120997c-.02752.0415-.04214.09021-.042.14v7.671c-.00013.0331.00626.0659.0188.0965s.031.0585.0543.082c.02331.0235.05102.0422.08154.0549.03053.0128.06327.0195.09636.0196h2.5c.06632-.0008.12964-.0277.17626-.0749.04661-.0471.07275-.1108.07274-.1771v-1.748h1v1.748c0 .0668.02655.1309.07381.1782s.11136.0738.17819.0738h.748v-6c-.00004-.07511.01684-.14926.04938-.21695.03255-.06769.07993-.12718.13862-.17405l1.812-1.609c0-.05-3.29-4.184997-3.29-4.184997zm-1.71 8.184997h-1v-1h1zm0-3h-1v-1h1zm2 3h-1v-1h1zm0-3h-1v-1h1z","town-hall":"M13,4H9l0-3L7.5,0L6,1v3H2L1,5v1h13V5L13,4z M7.5,1.5c0.4,0,0.7,0.3,0.7,0.8S7.9,3,7.5,3S6.7,2.7,6.7,2.2 C6.7,1.8,7.1,1.5,7.5,1.5z M13,7H2v4l-1,1.5V14h13v-1.5L13,11V7z M5,12.5H4V8h1V12.5z M8,12.5H7V8h1V12.5z M11,12.5h-1V8h1V12.5z",triangle:"m7.5385 1c-.2948 0-.4883.1772-.6154.3846l-5.8462 9.5385c-.0769.0769-.0769.2307-.0769.3846 0 .5385.3846.6923.6923.6923h11.6154c.3846 0 .6923-.1538.6923-.6923 0-.1538 0-.2308-.0769-.3846l-5.7693-9.5385c-.1258-.2081-.3656-.3846-.6153-.3846z","triangle-stroked":"m7.52427.500405c-.2814-.0091-.5456.1419-.6907.3948l-5.5 9.869195c-.3118.5434.0614 1.2355.6664 1.2356h11.00003c.605-.0001.9782-.6922.6664-1.2355l-5.50003-9.869195c-.1362-.2374-.378-.3861-.6421-.3949zm-.0243 2.398895 4.12673 7.4704h-8.25343z",tunnel:"M4 2C2.34315 2 1 3.32706 1 4.96406V12.012C1 12.5576 1.44772 13 2 13H3V8.55391C3 6.09839 5.01472 4.10781 7.5 4.10781C9.98528 4.10781 12 6.09842 12 8.55393V13H13C13.5523 13 14 12.5576 14 12.012V4.96406C14 3.32706 12.6569 2 11 2H4ZM11 10V9.04794C11 6.86526 9.43299 5.09583 7.5 5.09583C5.56701 5.09583 4.00001 6.86526 4 9.04794V13L11 10Z",veterinary:"M7.5,6c-2.5,0-3,2.28-3,3.47h0a6.149,6.149,0,0,0-1.7.89,2,2,0,0,0-.4,2.78,2.06,2.06,0,0,0,2.8.4,4,4,0,0,1,2.3-.69,4,4,0,0,1,2.3.69,2,2,0,0,0,2.8-.3,1.929,1.929,0,0,0-.226-2.72c-.024-.021-.049-.041-.074-.06l-.1-.1a8.992,8.992,0,0,0-1.7-.89h0C10.5,8.29,10,6,7.5,6ZM2.08,4.3a1.58,1.58,0,0,0-.76,2A1.52,1.52,0,0,0,2.93,7.7a1.58,1.58,0,0,0,.76-2A1.52,1.52,0,0,0,2.08,4.3Zm10.85,0a1.58,1.58,0,0,1,.76,2,1.52,1.52,0,0,1-1.61,1.4,1.58,1.58,0,0,1-.76-2A1.52,1.52,0,0,1,12.93,4.3Zm-7.85-3c-.68.09-1,.94-.76,1.87A1.77,1.77,0,0,0,5.93,4.7c.68-.09,1-.94.76-1.87A1.77,1.77,0,0,0,5.08,1.3Zm4.85,0c.68.09,1,.94.76,1.87A1.77,1.77,0,0,1,9.07,4.7c-.68-.08-1-.94-.76-1.87A1.769,1.769,0,0,1,9.93,1.3Z",viewpoint:"M6.02,8.425a2.3859,2.3859,0,0,0-.46.44l-4.55-3.5a7.9976,7.9976,0,0,1,1.51-1.51Zm6.46-4.56-3.5,4.55a2.3971,2.3971,0,0,1,.45.45l4.56-3.5A7.945,7.945,0,0,0,12.48,3.865ZM7.3042,10.0129a1.5,1.5,0,1,0,1.6829,1.2914h0A1.5,1.5,0,0,0,7.3042,10.0129ZM6.43,2.235a7.9329,7.9329,0,0,0-2.06.55l2.2,5.32a2.0438,2.0438,0,0,1,.61-.17Zm2.14.01-.75,5.69a2.49,2.49,0,0,1,.61.16l2.2-5.3A7.2129,7.2129,0,0,0,8.57,2.245Z",village:"M6.176 1.176a.249.249 0 0 0-.352 0l-4.4 4.4A.25.25 0 0 0 1.6 6H3v6.751a.25.25 0 0 0 .249.249h3.5A.248.248 0 0 0 7 12.753v-7.43c0-.066.026-.13.073-.176L8.5 3.5 6.176 1.176ZM6 11H5v-1h1v1Zm0-2H5V8h1v1Zm0-3v1H5V6h1Z M12.75 3h-.5a.25.25 0 0 0-.25.25V5l-1.324-1.824a.249.249 0 0 0-.352 0L8.056 5.932A.246.246 0 0 0 8 6.088v6.66a.249.249 0 0 0 .246.252h1.5a.253.253 0 0 0 .254-.252V11h1v1.747a.253.253 0 0 0 .253.253h1.5a.25.25 0 0 0 .247-.249V3.25a.25.25 0 0 0-.25-.25ZM10 8H9V7h1v1Zm2 0h-1V7h1v1Zm-2 2H9V9h1v1Zm2 0h-1V9h1v1Z",volcano:"M8.4844,1.0002 c-0.1464,0.005-0.2835,0.0731-0.375,0.1875L6.4492,3.2619L4.8438,1.7385C4.4079,1.3374,3.7599,1.893,4.0899,2.385l1.666,2.4004 C5.9472,5.061,6.3503,5.0737,6.5586,4.8108C6.7249,4.6009,7,4.133,7.5,4.133s0.7929,0.4907,0.9414,0.6777 c0.175,0.2204,0.4973,0.2531,0.7129,0.0723l1.668-1.4004c0.4408-0.3741,0.0006-1.0735-0.5273-0.8379L9,3.2268V1.5002 C9.0002,1.2179,8.7666,0.9915,8.4844,1.0002L8.4844,1.0002z M5,6.0002L2.0762,11.924C1.9993,12.0009,2,12.155,2,12.3088 c0,0.5385,0.3837,0.6914,0.6914,0.6914h9.6172c0.3846,0,0.6914-0.153,0.6914-0.6914c0-0.1538,0.0008-0.2309-0.0762-0.3848L10,6.0002 c-0.5,0-1,0.5-1,1v0.5c0,0.277-0.223,0.5-0.5,0.5S8,7.7772,8,7.5002v-0.5c0-0.2761-0.2238-0.5-0.5-0.5S7,6.7241,7,7.0002v2 c0,0.277-0.223,0.5-0.5,0.5S6,9.2772,6,9.0002v-2C6,6.5002,5.5,6.0002,5,6.0002z",volleyball:"M13.91,7.94a5.9086,5.9086,0,0,1-.13.94,8.8218,8.8218,0,0,0-2.17-1.49,8.89,8.89,0,0,0-1.4-.56,8.6142,8.6142,0,0,0-1.82-.35.221.221,0,0,0-.08-.01A7.32,7.32,0,0,1,7.5,4.59c-.01-.01-.01-.01,0-.02a7.7573,7.7573,0,0,1,1.52.15,7.0987,7.0987,0,0,1,1.56.5,6.8585,6.8585,0,0,1,1.4.78A7.4165,7.4165,0,0,1,13.91,7.94Zm-1.87-5a6.2232,6.2232,0,0,0-1.85-1.27,4.2725,4.2725,0,0,0-.98-.36,5.6412,5.6412,0,0,0-1.55-.23,1.2882,1.2882,0,0,0-.32,0A7.4263,7.4263,0,0,0,7.21,2.5c0,.2.01.39.02.58a2.28,2.28,0,0,1,.26-.01,2.6438,2.6438,0,0,1,.28.01,8.2865,8.2865,0,0,1,1.49.16,8.9879,8.9879,0,0,1,1.35.37,8.7922,8.7922,0,0,1,1.53.7,10.18,10.18,0,0,1,1.39.97A6.4588,6.4588,0,0,0,12.04,2.94ZM4.01,8.76a9.4084,9.4084,0,0,1-.62-1.37,9.1038,9.1038,0,0,1-.37-1.41,9.1748,9.1748,0,0,1-.16-1.67V4.28a8.455,8.455,0,0,1,.1-1.34A6.28,6.28,0,0,0,1.47,5.3a6.2222,6.2222,0,0,0-.4,2.2c0,.15.01.3.02.44a5.9086,5.9086,0,0,0,.13.94,5.7343,5.7343,0,0,0,.41,1.23c.22-.05.44-.11.65-.17a8.0188,8.0188,0,0,0,1.9-.88C4.12,8.96,4.06,8.86,4.01,8.76Zm2.6-2.28a9,9,0,0,1-.63-1.76,9.135,9.135,0,0,1-.24-1.48c-.02-.25-.03-.49-.03-.74a9.3777,9.3777,0,0,1,.08-1.19,4.2725,4.2725,0,0,0-.98.36,7.7038,7.7038,0,0,0-.42,1.94c-.02.22-.03.44-.03.67a7.2659,7.2659,0,0,0,.06.93,7.4258,7.4258,0,0,0,.37,1.63,6.4705,6.4705,0,0,0,.59,1.28A8.0174,8.0174,0,0,0,6.65,6.55.2522.2522,0,0,1,6.61,6.48ZM12.7,9.93s0-.01-.01,0a7.0128,7.0128,0,0,0-1.7-1.16c-.06.1-.11.19-.17.29a8.783,8.783,0,0,1-.88,1.22,8.9125,8.9125,0,0,1-1.06,1.07,10.4181,10.4181,0,0,1-1.38.98,8.9933,8.9933,0,0,1-2.64,1.02,6.2985,6.2985,0,0,0,5.28,0,5.9674,5.9674,0,0,0,2.42-1.89,4.8258,4.8258,0,0,0,.65-1.03A6.0315,6.0315,0,0,0,12.7,9.93Zm-5.17-2c-.01.01-.02.03-.03.04a9.26,9.26,0,0,1-1.25,1.4,9.5925,9.5925,0,0,1-1.19.91,9.2683,9.2683,0,0,1-2.62,1.18,6.0989,6.0989,0,0,0,.53.61,7.7353,7.7353,0,0,0,3.15-.72,7.3839,7.3839,0,0,0,1.38-.82A7.6429,7.6429,0,0,0,8.75,9.37a7.7441,7.7441,0,0,0,.82-1.15A7.3414,7.3414,0,0,0,7.53,7.93Z",warehouse:"M13.5,5c-0.0762,0.0003-0.1514-0.0168-0.22-0.05L7.5,2L1.72,4.93C1.4632,5.0515,1.1565,4.9418,1.035,4.685 S1.0232,4.1215,1.28,4L7.5,0.92L13.72,4c0.2761,0.0608,0.4508,0.3339,0.39,0.61C14.0492,4.8861,13.7761,5.0608,13.5,5z M5,10H2v3h3 V10z M9,10H6v3h3V10z M13,10h-3v3h3V10z M11,6H8v3h3V6z M7,6H4v3h3V6z","waste-basket":"M12.41,5.58l-1.34,8c-0.0433,0.2368-0.2493,0.4091-0.49,0.41H4.42c-0.2407-0.0009-0.4467-0.1732-0.49-0.41l-1.34-8 C2.5458,5.3074,2.731,5.0506,3.0035,5.0064C3.0288,5.0023,3.0544,5.0002,3.08,5h8.83c0.2761-0.0036,0.5028,0.2174,0.5064,0.4935 C12.4168,5.5225,12.4146,5.5514,12.41,5.58z M13,3.5C13,3.7761,12.7761,4,12.5,4h-10C2.2239,4,2,3.7761,2,3.5S2.2239,3,2.5,3H5V1.5 C5,1.2239,5.2239,1,5.5,1h4C9.7761,1,10,1.2239,10,1.5V3h2.5C12.7761,3,13,3.2239,13,3.5z M9,3V2H6v1H9z",watch:"M12.5,7H12a.426.426,0,0,0-.049.01A4.484,4.484,0,0,0,10,3.76V1.5A.5.5,0,0,0,9.5,1h-4a.5.5,0,0,0-.5.5V3.76a4.5,4.5,0,0,0,0,7.48V13.5a.5.5,0,0,0,.5.5h4a.5.5,0,0,0,.5-.5V11.24a4.486,4.486,0,0,0,1.951-3.25A.426.426,0,0,0,12,8h.5a.5.5,0,0,0,0-1Zm-5,4A3.5,3.5,0,1,1,11,7.5,3.5,3.5,0,0,1,7.5,11ZM9,7H8V5.5a.5.5,0,0,0-1,0v2a.5.5,0,0,0,.5.5H9A.5.5,0,0,0,9,7Z",water:"M7.5 14C9.57688 14 12 12.7117 12 9.43241C12 7.20724 8.53844 2.2883 7.5 1C6.57691 2.2883 3 7.09007 3 9.43241C3 12.7117 5.42312 14 7.5 14Z",waterfall:"M14 1H5C3.34315 1 2 2.34314 2 4V8.87918C1.39704 9.28261 1 9.96937 1 10.75C1 11.9927 2.00736 13 3.25 13C3.7127 13 4.14279 12.8599 4.5 12.6209C4.85721 12.8599 5.2873 13 5.75 13C6.28601 13 6.77826 12.812 7.16413 12.5H7.51743C8.01909 12.8165 8.61403 13 9.25 13C11.0449 13 12.5 11.5449 12.5 9.75002C12.5 8.39777 11.6747 7.23919 10.5 6.74934V5C10.5 3.89543 11.3954 3 12.5 3H14V1ZM11.5 9.75C11.5 10.9926 10.4926 12 9.25 12C8.71418 12 8.2221 11.8127 7.83567 11.5H6.75009C6.52204 11.8036 6.15895 12 5.75 12C5.34105 12 4.97796 11.8036 4.74991 11.5H4.25009C4.02204 11.8036 3.65895 12 3.25 12C2.55964 12 2 11.4404 2 10.75C2 10.1453 2.42944 9.64082 3 9.525V5.75C3 5.33579 3.33579 5 3.75 5C4.16421 5 4.5 5.33579 4.5 5.75V9C4.5 9.27614 4.72386 9.5 5 9.5C5.27614 9.5 5.5 9.27614 5.5 9V6.75C5.5 6.33579 5.83579 6 6.25 6C6.66421 6 7 6.33579 7 6.75V9C7 9.27614 7.22386 9.5 7.5 9.5C7.77614 9.5 8 9.27614 8 9V5.75C8 5.33579 8.33579 5 8.75 5C9.16421 5 9.5 5.33579 9.5 5.75V7.51373C10.625 7.63809 11.5 8.59186 11.5 9.75Z",watermill:"M2,10.2L4,9l2.5,1.5l1.4659-0.8788C7.6592,9.4698,7.3716,9.285,7.1231,9.0536l1.4131-1.4131 C8.7672,7.836,9.0557,7.9606,9.375,7.9874V9.224l0.25,0.1501V7.9874c0.3193-0.0268,0.6078-0.1514,0.8388-0.3469l1.4131,1.4131 c-0.4059,0.3781-0.9044,0.6492-1.4528,0.8003L11.5,10.5l0.6984-0.4191C13.2863,9.2595,14,7.9682,14,6.5C14,4.0147,11.9853,2,9.5,2 C8.1917,2,7.0241,2.5674,6.2018,3.4587L4.5,2L1,5h1V10.2z M12.0536,8.8769l-1.4131-1.4131c0.1954-0.231,0.3201-0.5196,0.3469-0.8388 h1.9999C12.956,7.4946,12.6089,8.2806,12.0536,8.8769z M12.9874,6.375h-1.9999c-0.0268-0.3193-0.1514-0.6078-0.3469-0.8388 l1.4131-1.4131C12.6089,4.7193,12.956,5.5054,12.9874,6.375z M9.625,3.0126c0.8696,0.0314,1.6557,0.3784,2.2519,0.9337 l-1.4131,1.4131c-0.231-0.1954-0.5196-0.32-0.8388-0.3468C9.625,5.0126,9.625,3.0126,9.625,3.0126z M9.375,3.0126v1.9999 C9.0558,5.0394,8.7672,5.164,8.5362,5.3594L7.1231,3.9463C7.7193,3.3911,8.5054,3.044,9.375,3.0126z M6.9464,4.1231l1.4131,1.4131 C8.164,5.7672,8.0394,6.0557,8.0126,6.375h-2C6.044,5.5054,6.3911,4.7193,6.9464,4.1231z M8.0126,6.625 c0.0268,0.3192,0.1515,0.6078,0.3469,0.8388L6.9464,8.8769C6.3911,8.2807,6.044,7.4946,6.0126,6.625H8.0126z M9.002,10L6.5,11.5 L4,10l-2.5,1.5V13L4,11.5L6.5,13l2.502-1.5L11.5,13l2.5-1.5V10l-2.5,1.5L9.002,10z",wetland:"M1.48,4.5C1.905,4.1467,2.4483,3.968,3,4c1.2273-0.0869,2.3154,0.7836,2.5,2l0.78,4.68c-0.6394-0.2893-1.3759-0.2709-2,0.05 L3.48,6C3.1874,5.1347,2.3926,4.5387,1.48,4.5z M7.48,11.24c0.3816-0.3076,0.825-0.5293,1.3-0.65L10,3 c0.2926-0.8653,1.0874-1.4613,2-1.5c-0.4198-0.3485-0.955-0.5269-1.5-0.5C9.2727,0.9131,8.1846,1.7836,8,3l-1.3,7.79 C6.9786,10.9052,7.2408,11.0565,7.48,11.24z M11.8,10.74L11.8,10.74c0.1565-0.1277,0.3238-0.2414,0.5-0.34L13,6 c0.2926-0.8653,1.0874-1.4613,2-1.5c-0.4198-0.3485-0.955-0.5269-1.5-0.5c-1.2273-0.0869-2.3154,0.7836-2.5,2l-0.67,4 C10.8731,10.123,11.3778,10.377,11.8,10.74z M14,12L14,12c-0.4346-0.01-0.8579,0.1394-1.19,0.42l-0.47,0.41 c-0.2847,0.2546-0.7153,0.2546-1,0c-0.15-0.12-0.29-0.26-0.44-0.39c-0.7076-0.5968-1.7424-0.5968-2.45,0 c-0.16,0.13-0.31,0.28-0.47,0.41c-0.2847,0.2546-0.7153,0.2546-1,0c-0.16-0.13-0.31-0.28-0.47-0.41 c-0.7059-0.5912-1.7341-0.5912-2.44,0c-0.15,0.13-0.29,0.27-0.44,0.39c-0.0892,0.0715-0.1909,0.1258-0.3,0.16 c-0.2922,0.0652-0.5969-0.0301-0.8-0.25c-0.2475-0.214-0.5117-0.4079-0.79-0.58C1.5336,12.0421,1.2974,11.9865,1.06,12H1 c-0.2761,0-0.5,0.2239-0.5,0.5S0.7239,13,1,13l0,0c0.246,0.0145,0.4762,0.126,0.64,0.31L2,13.57 c0.6717,0.55,1.6308,0.5747,2.33,0.06c0.19-0.14,0.36-0.32,0.55-0.47c0.2847-0.2546,0.7153-0.2546,1,0l0.39,0.35 c0.6937,0.6189,1.7322,0.6484,2.46,0.07c0.15-0.11,0.27-0.25,0.42-0.37c0.2976-0.3038,0.7851-0.3087,1.0889-0.0111 c0.0037,0.0037,0.0074,0.0074,0.0111,0.0111l0.39,0.35c0.4866,0.4124,1.1485,0.5516,1.76,0.37c0.3825-0.1036,0.7286-0.3113,1-0.6 c0.1549-0.1772,0.3674-0.294,0.6-0.33l0,0c0.2761,0,0.5-0.2239,0.5-0.5S14.2761,12,14,12z",wheelchair:"M12,1.5C12,2.3284,11.3284,3,10.5,3S9,2.3284,9,1.5S9.6716,0,10.5,0S12,0.6716,12,1.5z M2.82,4.87l1.74-1.71l1.85,1.29 L5.67,5.7c1.0747,0.3341,2.0207,0.9904,2.71,1.88l0.88-1.5c0.2295-0.4158,0.0785-0.939-0.3373-1.1685 C8.9218,4.911,8.9209,4.9105,8.92,4.91L8.3,4.54L4.79,2.1C4.5927,1.9594,4.3231,1.9805,4.15,2.15l-2,2 C1.9852,4.3716,2.0312,4.6848,2.2528,4.8496C2.4193,4.9735,2.645,4.9816,2.82,4.87z M8.13,10.94 c-0.0143,1.2308-0.5794,2.3904-1.54,3.16c-0.7118,0.5804-1.6016,0.8982-2.52,0.9C1.8261,15,0.0055,13.1839,0,10.94 c0.0023-0.9231,0.3238-1.8169,0.91-2.53c0.1868-0.232,0.398-0.4432,0.63-0.63c0.7131-0.5862,1.6069-0.9077,2.53-0.91 C6.3139,6.8755,8.13,8.6961,8.13,10.94z M6,12.21C6.7679,11.2051,6.5758,9.7679,5.5709,9C4.7501,8.3727,3.6109,8.3727,2.79,9 C2.5283,9.151,2.311,9.3683,2.16,9.63c-0.6923,1.0584-0.3956,2.4777,0.6628,3.17c0.7615,0.4981,1.7457,0.4981,2.5072,0 C5.5805,12.6365,5.8061,12.4378,6,12.21z M14.2,13.21l-2.49-5C11.5906,7.9251,11.3088,7.7425,11,7.75H8.51 c0.3293,0.4578,0.5856,0.9638,0.76,1.5h1.26l2.29,4.58c0.185,0.3728,0.6372,0.525,1.01,0.34c0.3728-0.185,0.525-0.6372,0.34-1.01 L14.2,13.21z",windmill:"M6,5L3.5,7.5l1,1L7,6V5.5L7.5,5L8,5.5V6l2.5,2.5l1-1L9,5H8.5L8,4.5L8.5,4H9l2.5-2.5l-1-1L8,3v0.5L7.5,4L7,3.5V3L4.5,0.5 l-1,1L6,4h0.5L7,4.5L6.5,5H6z M11.5,13h-1l-1-4l-2-2l-2,2l-1,4h-1C3.2239,13,3,13.2238,3,13.5C3,13.7761,3.2239,14,3.5,14h8 c0.2761,0,0.5-0.2239,0.5-0.5C12,13.2238,11.7761,13,11.5,13z M8,13H7v-1.5024C7,11.2228,7.2228,11,7.4976,11 C7.7751,11,8,11.2249,8,11.5024V13z",zoo:"M8.3879,3.8928C8.3879,3.8928,7.6818,5,7,5H4.5C3.8182,5,3.2016,5.4086,2.7273,5.8636L0.5,8C0.231,8.258,0.0072,8.7681,0,9 c-0.0156,0.5,0,1,0,1s1,0,1-1V8.5l1-1h0.5l0.158,0.2892c0,0-0.9535,1.8244-0.9535,3.5289C1.7046,12,2.3864,12,2.3864,12h0.6818 c0,0,0.3409,0,0-0.3409l-0.3409-0.3409C2.7273,10.6364,3.5002,9.6667,4,9c0,0,0.0168,1.1579,0,2c-0.008,0.4096,0.2721,1,0.6818,1 h0.6818c0,0,0.3409,0,0-0.3409l-0.3409-0.3409C4.7105,10.7495,5.5,8.5,5.5,8.5C6.7716,8.5,7,9,8.5,9l0.3636,2.3182 C8.975,12.0282,9.5,12,9.5,12H11c0.3409,0,0.9611-0.3115,0.3409-0.7736L11,11V9c1.2142-0.1722,2-1,2-2h1c0.3214,0,1,0,1-0.5v-1 l-1.7045-1.6818C12.5444,3.0772,12,2.5,11,2.5C9.5469,2.5,8.8636,3.0688,8.3879,3.8928z"},Qn=Object.keys(z1);function E0(e,n){const t=z1[e];t||console.warn(`[MakiIcon] Unknown icon: "${e}", falling back to "marker"`);const r=t??z1.marker??"",o=(n==null?void 0:n.size)??32,i=(n==null?void 0:n.fill)??"#333",s=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" width="${o}" height="${o}"><path fill="${i}" d="${r}"/></svg>`;return`data:image/svg+xml,${encodeURIComponent(s)}`}function Rn(e,n){const t={};for(const r of e)t[r]=E0(r,n);return t}const e5="M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 16 40 16 40C16 40 32 24.8366 32 16C32 7.16344 24.8366 0 16 0Z";function A0(e,n){const t=z1[e];t||console.warn(`[MakiIcon] Unknown icon: "${e}", falling back to "marker"`);const r=t??z1.marker??"",o=(n==null?void 0:n.size)??40,i=(n==null?void 0:n.fill)??"#2563eb",s=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 40" width="${o}" height="${Math.round(o*1.25)}"><path d="${e5}" fill="${i}" stroke="white" stroke-width="1.5"/>`+(r?`<svg x="8" y="8" viewBox="0 0 15 15" width="16" height="16"><path fill="white" d="${r}"/></svg>`:"")+"</svg>";return`data:image/svg+xml,${encodeURIComponent(s)}`}function Z0(e,n){const t={};for(const r of e)t[r]=A0(r,n);return t}const K1={primary:{fill:"#2563eb",bg:"rgba(37, 99, 235, 0.2)",ring:"rgba(37, 99, 235, 0.2)"},success:{fill:"#00854d",bg:"rgba(0, 133, 77, 0.2)",ring:"rgba(0, 133, 77, 0.2)"},warning:{fill:"#943700",bg:"rgba(148, 55, 0, 0.2)",ring:"rgba(148, 55, 0, 0.2)"},error:{fill:"#ba1a1a",bg:"rgba(186, 26, 26, 0.2)",ring:"rgba(186, 26, 26, 0.2)"}};function t5(e){return typeof e=="string"&&/<[a-zA-Z][^>]*>/.test(e)}function P0({color:e="primary"}){const{fill:n}=K1[e];return l.jsxs("svg",{viewBox:"0 0 32 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"aimapui-marker-pin",style:{width:32,height:40,display:"block",filter:"drop-shadow(0 4px 3px rgba(0,0,0,0.07)) drop-shadow(0 2px 2px rgba(0,0,0,0.06))"},children:[l.jsx("path",{d:"M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 16 40 16 40C16 40 32 24.8366 32 16C32 7.16344 24.8366 0 16 0Z",fill:n,stroke:"white",strokeWidth:1.5}),l.jsx("circle",{cx:"16",cy:"16",r:"4",fill:"white"})]})}function n5({icon:e,color:n="primary"}){const{fill:t}=K1[n],r=z1[e]??z1.marker??"";return l.jsxs("div",{className:"aimapui-marker-pin aimapui-marker-pin--icon",style:{position:"relative",display:"inline-flex",alignItems:"flex-start",justifyContent:"center",width:32,height:40,filter:"drop-shadow(0 4px 3px rgba(0,0,0,0.07)) drop-shadow(0 2px 2px rgba(0,0,0,0.06))"},children:[l.jsx("svg",{viewBox:"0 0 32 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{position:"absolute",inset:0,width:"100%",height:"100%"},children:l.jsx("path",{d:"M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 16 40 16 40C16 40 32 24.8366 32 16C32 7.16344 24.8366 0 16 0Z",fill:t,stroke:"white",strokeWidth:1.5})}),r&&l.jsx("svg",{viewBox:"0 0 15 15",xmlns:"http://www.w3.org/2000/svg",style:{position:"relative",zIndex:1,width:16,height:16,marginTop:8,fill:"white"},children:l.jsx("path",{d:r,style:{fill:"white"}})})]})}function r5({color:e="primary"}){const{fill:n,bg:t}=K1[e];return l.jsx("div",{className:"aimapui-marker-circle",style:{position:"relative",width:24,height:24,borderRadius:"50%",border:"1.5px solid white",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",justifyContent:"center",background:t,borderColor:n},children:l.jsx("div",{className:"aimapui-marker-circle__inner",style:{width:6,height:6,borderRadius:"50%",background:n}})})}function o5({color:e="primary"}){const{fill:n}=K1[e];return l.jsx("div",{className:"aimapui-marker-dot",style:{width:8,height:8,borderRadius:"50%",border:"1.5px solid white",boxShadow:"0 1px 3px rgba(0,0,0,0.3)",background:n}})}function s5({text:e}){return l.jsx("div",{className:"aimapui-marker-label",style:{position:"absolute",top:"calc(100% + 4px)",left:"50%",transform:"translateX(-50%)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:12,lineHeight:"16px",fontWeight:450,color:"#1d1d1f",whiteSpace:"nowrap",pointerEvents:"none",textShadow:"-1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff, 0 0 2px #fff, 0 0 4px rgba(255,255,255,0.5)"},children:e})}const I0={center:"translate(-50%, -50%)",top:"translate(-50%, 0)",bottom:"translate(-50%, -100%)",left:"translate(0, -50%)",right:"translate(-100%, -50%)","top-left":"translate(0, 0)","top-right":"translate(-100%, 0)","bottom-left":"translate(0, -100%)","bottom-right":"translate(-100%, -100%)"},i5=[0,0];function l5(e,n,t,r){let o;switch(e){case"pin":o=l.jsx(P0,{color:n});break;case"circle":o=l.jsx(r5,{color:n});break;case"icon":o=l.jsx(n5,{icon:t||"marker",color:n});break;case"dot":o=l.jsx(o5,{color:n});break;default:o=l.jsx(P0,{color:n})}return r?l.jsxs("div",{style:{position:"relative",display:"inline-flex",flexDirection:"column",alignItems:"center"},children:[o,l.jsx(s5,{text:r})]}):o}function A1({longitude:e,latitude:n,variant:t="pin",color:r="primary",icon:o,label:i,content:s,children:a,draggable:c=!1,className:d,overlayContainer:h,onClick:y,onMouseEnter:f,onMouseLeave:g,onDoubleClick:p,onDragEnd:C,onDragging:L,onDragStart:w,selected:S=!1,inactive:x=!1,anchor:Z="bottom",offsets:z=i5,overflowHide:P=!0}){const M=h1(),A=u.useRef(null),O=u.useRef(null),V=u.useRef({lng:e,lat:n}),D=u.useRef({width:0,height:0}),_=z[0]??0,F=z[1]??0,b=u.useRef(null),H=u.useRef(y);H.current=y;const B=u.useRef(f);B.current=f;const Y=u.useRef(g);Y.current=g;const t1=u.useRef(p);t1.current=p;const K=u.useRef(w);K.current=w;const R=u.useRef(L);R.current=L;const a1=u.useRef(C);a1.current=C;const G=u.useMemo(()=>{const I=["aimapui-marker"];return S&&I.push("aimapui-marker--selected"),x&&I.push("aimapui-marker--inactive"),I.push(`aimapui-marker--${r}`),d&&I.push(d),I.join(" ")},[S,x,r,d]),n1=u.useMemo(()=>s||a||l5(t,r,o,i),[s,a,t,r,o,i]),r1=I=>{const W=A.current;if(!W||!I)return;const{lng:l1,lat:X}=V.current;if(isNaN(l1)||isNaN(X))return;let s1;try{s1=I.lngLatToContainer([l1,X])}catch{return}if(!s1||isNaN(s1.x)||isNaN(s1.y))return;const u1=s1.x+_,E=s1.y-F,m=I0[Z]||I0.bottom,k=Math.round(u1),v=Math.round(E);if(W.style.left="0",W.style.top="0",W.style.transform=`translate3d(${k}px, ${v}px, 0) ${m}`,P){const{width:J,height:$}=D.current;W.style.visibility=u1<0||u1>J||E<0||E>$?"hidden":"visible"}};return u.useEffect(()=>{if(!M)return;let I=!1;const W=M.mapService;if(!W){console.error("[Marker] mapService not available");return}const l1=()=>{var k;const m=(k=W.getContainer)==null?void 0:k.call(W);m&&(D.current={width:m.scrollWidth||m.clientWidth||0,height:m.scrollHeight||m.clientHeight||0})},X=()=>{A.current&&r1(W)},s1=(m,k,v)=>{var J;try{(J=m==null?void 0:m.on)==null||J.call(m,k,v)}catch{}},u1=(m,k,v)=>{var J;try{(J=m==null?void 0:m.off)==null||J.call(m,k,v)}catch{}};return l1(),s1(W,"camerachange",X),s1(W,"viewchange",X),s1(M,"resize",l1),(async()=>{var T;if(M.loaded||await new Promise(N=>{M.once("loaded",()=>N())}),I)return;const m=document.createElement("div");m.className=G,m.style.position="absolute",m.style.left="0",m.style.top="0",m.style.whiteSpace="nowrap",m.style.pointerEvents="auto",A.current=m;const k=h??((T=W.getMarkerContainer)==null?void 0:T.call(W));if(k)k.appendChild(m);else{console.error("[Marker] getMarkerContainer not available");return}r1(W);let v=!1,J={lng:0,lat:0};const $=N=>{var o1;if(!c)return;v=!0,W.setMapStatus({dragEnable:!1,zoomEnable:!1});const Q=W.getContainer(),j=(o1=Q==null?void 0:Q.getClientRects())==null?void 0:o1[0];if(j){const c1=j.left,i1=j.top,f1=N.x||N.clientX,x1=N.y||N.clientY;J=W.containerToLngLat([f1-c1,x1-i1])}W.on("mousemove",q),document.addEventListener("mouseup",e1),K.current&&K.current(V.current.lng,V.current.lat)},q=N=>{if(!v)return;const Q=N.lngLat||N.lnglat,{lng:j,lat:o1}=J,{lng:c1,lat:i1}=Q,f1={lng:V.current.lng+c1-j,lat:V.current.lat+i1-o1};V.current=f1,J=Q,r1(W),R.current&&R.current(f1.lng,f1.lat)},e1=()=>{v&&(v=!1,W.setMapStatus({dragEnable:!0,zoomEnable:!0}),W.off("mousemove",q),document.removeEventListener("mouseup",e1),a1.current&&a1.current(V.current.lng,V.current.lat))};m.addEventListener("click",(N=>{var Q;return(Q=H.current)==null?void 0:Q.call(H,N)})),m.addEventListener("mouseenter",(N=>{var Q;return(Q=B.current)==null?void 0:Q.call(B,N)})),m.addEventListener("mouseleave",(N=>{var Q;return(Q=Y.current)==null?void 0:Q.call(Y,N)})),m.addEventListener("dblclick",(N=>{var Q;return(Q=t1.current)==null?void 0:Q.call(t1,N)})),c&&m.addEventListener("mousedown",$),b.current={updatePosition:X,handleDragStart:$,handleDragMove:q,handleDragEnd:e1}})(),()=>{if(I=!0,u1(W,"camerachange",X),u1(W,"viewchange",X),u1(M,"resize",l1),b.current&&c&&W.setMapStatus({dragEnable:!0,zoomEnable:!0}),A.current){const k=O.current,v=A.current;O.current=null,A.current=null,queueMicrotask(()=>{k&&k.unmount(),v.parentNode&&v.parentNode.removeChild(v)})}b.current=null}},[M,Z,_,F,P,c,h]),u.useEffect(()=>{if(!A.current)return;const I=A.current;t5(n1)?I.innerHTML=n1:(O.current||(O.current=ct.createRoot(I)),O.current.render(l.jsx(l.Fragment,{children:n1})))},[n1]),u.useEffect(()=>{A.current&&(A.current.className=G)},[G]),u.useEffect(()=>{if(V.current={lng:e,lat:n},M&&A.current){const I=M.mapService;I&&r1(I)}},[e,n,M]),null}function F0({interactions:e}){const n=h1(),[t,r]=u.useState(null);u.useEffect(()=>{if(!n)return;const s=()=>{try{const c=n.mapService;if(c&&typeof c.getMarkerContainer=="function"){const d=c.getMarkerContainer();if(d){r(d);return}}}catch{}const a=setTimeout(()=>{try{const c=n.mapService;if(c&&typeof c.getMarkerContainer=="function"){const d=c.getMarkerContainer();d&&r(d)}}catch{}},100);return()=>clearTimeout(a)};return n.loaded?s():(n.on("loaded",s),()=>{n.off("loaded",s)})},[n]);const o=e.filter(s=>s.type==="marker"),i=e.filter(s=>s.type==="popup");return l.jsxs(l.Fragment,{children:[t&&o.map((s,a)=>l.jsx(A1,{...s,overlayContainer:t},`marker-${a}`)),t&&i.map((s,a)=>l.jsx(_1,{...s,overlayContainer:t},`popup-${a}`))]})}function Me({title:e,labels:n,colors:t,swatchShape:r="square",grid:o=!1,className:i,interaction:s}){const[a,c]=u.useState(-1),[d,h]=u.useState(new Set),y=p=>{var C;c(p),(C=s==null?void 0:s.onHover)==null||C.call(s,p)},f=()=>{var p;c(-1),(p=s==null?void 0:s.onHover)==null||p.call(s,-1)},g=p=>{var C;h(L=>{const w=new Set(L);return w.has(p)?w.delete(p):w.add(p),w}),(C=s==null?void 0:s.onToggle)==null||C.call(s,p)};return l.jsxs("div",{className:d1(i),children:[e&&l.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),l.jsx("div",{className:d1("flex flex-col gap-1",o&&"grid grid-cols-2 gap-x-3 gap-y-1"),children:n.map((p,C)=>{const L=a>=0?a!==C:d.has(C);return l.jsxs("div",{className:d1("flex items-center gap-2 rounded px-1 py-0.5 cursor-pointer select-none transition-[background,opacity] duration-150 hover:bg-primary/[0.06]",L&&"opacity-35"),onMouseEnter:()=>y(C),onMouseLeave:f,onClick:()=>g(C),children:[l.jsx("span",{className:d1("size-3 shrink-0 rounded-sm shadow-[inset_0_0_0_1px_rgba(0,0,0,0.08)] transition-opacity duration-150",r==="circle"&&"rounded-full"),style:{backgroundColor:t[C]??"#ccc"}}),l.jsx("span",{className:"text-xs leading-4 text-on-surface truncate",children:p})]},C)})})]})}function we({title:e,labels:n,colors:t,isContinuous:r=!1,showTicks:o=!1,brushable:i=!1,className:s,interaction:a}){const[c,d]=u.useState([0,100]),h=u.useRef(null),y=t.join(", "),f=u.useCallback(g=>p=>{p.stopPropagation(),p.preventDefault();const C=h.current;if(!C)return;const L=C.getBoundingClientRect().width,w=x=>{const Z=C.getBoundingClientRect(),z=x.clientX-Z.left,P=Math.max(0,Math.min(100,z/L*100));d(M=>{var O;let A;return g==="left"?A=[Math.min(P,M[1]-5),M[1]]:A=[M[0],Math.max(P,M[0]+5)],(O=a==null?void 0:a.onBrush)==null||O.call(a,A),A})},S=()=>{document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",S)};document.addEventListener("mousemove",w),document.addEventListener("mouseup",S)},[a,h]);return l.jsxs("div",{className:d1(s),children:[e&&l.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),l.jsxs("div",{className:"flex flex-col gap-1",ref:h,children:[l.jsx("div",{className:d1("flex h-3 rounded overflow-hidden shadow-[inset_0_0_0_1px_rgba(0,0,0,0.06)]",r&&"bg-[length:100%_100%]"),style:r?{background:`linear-gradient(to right, ${y})`}:void 0,children:!r&&t.map((g,p)=>l.jsx("div",{className:"flex-1 relative",style:{backgroundColor:g}},p))}),o&&l.jsx("div",{className:"flex justify-between h-1.5 mt-0.5",children:t.map((g,p)=>p===0?null:l.jsx("div",{className:"w-px h-full bg-outline-variant",style:{position:"absolute",left:`${p/(t.length-1)*100}%`}},p))}),l.jsxs("div",{className:"flex justify-between font-mono text-[11px] leading-3.5 font-[450] text-on-surface-variant",children:[l.jsx("span",{children:n[0]}),n.length>2&&l.jsx("span",{children:n[Math.floor(n.length/2)]}),l.jsx("span",{children:n[n.length-1]})]}),i&&l.jsxs("div",{className:"relative h-3 mt-1 cursor-ew-resize",children:[l.jsx("div",{className:"absolute top-0 h-full border-2 border-primary rounded-sm bg-primary/10 pointer-events-none",style:{left:`${c[0]}%`,width:`${c[1]-c[0]}%`}}),l.jsx("div",{className:"absolute top-1/2 w-2 h-4 bg-primary rounded-sm -translate-x-1/2 -translate-y-1/2 cursor-ew-resize shadow-sm hover:shadow-md hover:shadow-primary/30 transition-shadow duration-150",style:{left:`${c[0]}%`},onMouseDown:f("left")}),l.jsx("div",{className:"absolute top-1/2 w-2 h-4 bg-primary rounded-sm -translate-x-1/2 -translate-y-1/2 cursor-ew-resize shadow-sm hover:shadow-md hover:shadow-primary/30 transition-shadow duration-150",style:{left:`${c[1]}%`},onMouseDown:f("right")})]})]})]})}function He({title:e,colors:n,labels:t,middleLabel:r,className:o}){const i=n.join(", ");return l.jsxs("div",{className:d1(o),children:[e&&l.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),l.jsxs("div",{className:"flex flex-col gap-1",children:[l.jsxs("div",{style:{position:"relative"},children:[l.jsx("div",{className:"flex h-3 rounded overflow-hidden shadow-[inset_0_0_0_1px_rgba(0,0,0,0.06)]",style:{background:`linear-gradient(to right, ${i})`}}),l.jsx("div",{style:{position:"absolute",top:-4,left:"50%",transform:"translateX(-50%)",width:1,height:20,background:"var(--color-outline-variant, #c3c6d7)"}}),r&&l.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 -bottom-[18px] font-mono text-[11px] text-on-surface-variant whitespace-nowrap",children:r})]}),l.jsxs("div",{className:"flex justify-between font-mono text-[11px] leading-3.5 font-[450] text-on-surface-variant",style:r?{marginBottom:12}:void 0,children:[l.jsx("span",{children:t[0]}),l.jsx("span",{children:t[1]})]})]})]})}function Se({title:e,ranges:n,colors:t,className:r,interaction:o}){const[i,s]=u.useState(-1),[a,c]=u.useState(new Set),d=f=>{var g;s(f),(g=o==null?void 0:o.onHover)==null||g.call(o,f)},h=()=>{var f;s(-1),(f=o==null?void 0:o.onHover)==null||f.call(o,-1)},y=f=>{var g;c(p=>{const C=new Set(p);return C.has(f)?C.delete(f):C.add(f),C}),(g=o==null?void 0:o.onToggle)==null||g.call(o,f)};return l.jsxs("div",{className:d1(r),children:[e&&l.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),l.jsx("div",{className:"flex flex-col gap-1.5",children:n.map(([f,g],p)=>{const C=i>=0?i!==p:a.has(p);return l.jsxs("div",{className:d1("flex items-center gap-2 cursor-pointer select-none transition-opacity duration-150 hover:opacity-80",C&&"opacity-35"),onMouseEnter:()=>d(p),onMouseLeave:h,onClick:()=>y(p),children:[l.jsx("span",{className:"w-6 h-3 shrink-0 rounded-sm shadow-[inset_0_0_0_1px_rgba(0,0,0,0.06)]",style:{backgroundColor:t[p]??"#ccc"}}),l.jsxs("span",{className:"font-mono text-[11px] leading-3.5 text-on-surface-variant",children:["[",f,", ",g,")"]})]},p)})})]})}function ze({title:e,fillColor:n="#4A90D9",items:t,className:r}){const o=Math.max(...t.map(i=>i.size),1);return l.jsxs("div",{className:d1(r),children:[e&&l.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),l.jsxs("div",{className:"flex flex-col gap-2",children:[l.jsx("div",{className:"flex items-end gap-2 px-1",children:t.map((i,s)=>l.jsx("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-end",height:o},children:l.jsx("div",{className:"rounded-full shrink-0 shadow-[inset_0_0_0_1px_rgba(0,0,0,0.06)]",style:{width:i.size,height:i.size,backgroundColor:n,opacity:.85}})},s))}),l.jsx("div",{className:"flex items-end gap-2 mt-1",children:t.map((i,s)=>l.jsx("span",{className:"font-mono text-[11px] leading-3.5 text-on-surface-variant whitespace-nowrap",children:i.label},s))})]})]})}function Ve({title:e,color:n="#4A90D9",items:t,className:r,interaction:o}){const[i,s]=u.useState(-1),[a,c]=u.useState(new Set),d=f=>{var g;s(f),(g=o==null?void 0:o.onHover)==null||g.call(o,f)},h=()=>{var f;s(-1),(f=o==null?void 0:o.onHover)==null||f.call(o,-1)},y=f=>{var g;c(p=>{const C=new Set(p);return C.has(f)?C.delete(f):C.add(f),C}),(g=o==null?void 0:o.onToggle)==null||g.call(o,f)};return l.jsxs("div",{className:d1(r),children:[e&&l.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),l.jsx("div",{className:"flex flex-col gap-1.5",children:t.map((f,g)=>{const p=i>=0?i!==g:a.has(g);return l.jsxs("div",{className:d1("flex items-center gap-2.5 py-0.5 cursor-pointer select-none transition-opacity duration-150 hover:opacity-80",p&&"opacity-35"),onMouseEnter:()=>d(g),onMouseLeave:h,onClick:()=>y(g),children:[l.jsx("div",{className:"w-7 shrink-0 rounded-full shadow-[0_0_0_1px_rgba(0,0,0,0.06)]",style:{height:f.width,backgroundColor:n,opacity:.85}}),l.jsx("span",{className:"text-xs leading-4 text-on-surface whitespace-nowrap",children:f.label})]},g)})})]})}function ke({title:e,labels:n,fillColor:t="#4A90D9",className:r}){return l.jsxs("div",{className:d1(r),children:[e&&l.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),l.jsxs("div",{className:"flex flex-col gap-2",children:[l.jsx("div",{className:"flex items-end gap-2 px-1",children:n.map(([s,a],c)=>{const h=6+c/Math.max(n.length-1,1)*18;return l.jsx("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-end",height:24},children:l.jsx("div",{className:"rounded-full shrink-0 shadow-[inset_0_0_0_1px_rgba(0,0,0,0.06)]",style:{width:h,height:h,backgroundColor:t,opacity:.85}})},c)})}),l.jsx("div",{className:"flex items-end gap-2 mt-1",children:n.map(([s,a],c)=>l.jsxs("span",{className:"font-mono text-[11px] leading-3.5 text-on-surface-variant whitespace-nowrap",children:[s,"–",a]},c))})]})]})}function T0(e){return/^(https?:|\/\/|data:)/i.test(e)}function Ee({title:e,items:n,className:t,interaction:r}){const[o,i]=u.useState(-1),[s,a]=u.useState(new Set),c=y=>{var f;i(y),(f=r==null?void 0:r.onHover)==null||f.call(r,y)},d=()=>{var y;i(-1),(y=r==null?void 0:r.onHover)==null||y.call(r,-1)},h=y=>{var f;a(g=>{const p=new Set(g);return p.has(y)?p.delete(y):p.add(y),p}),(f=r==null?void 0:r.onToggle)==null||f.call(r,y)};return l.jsxs("div",{className:d1(t),children:[e&&l.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),l.jsx("div",{className:"flex flex-col gap-1",children:n.map((y,f)=>{const g=o>=0?o!==f:s.has(f);return l.jsxs("div",{className:d1("flex items-center gap-2 px-1 py-0.5 rounded cursor-pointer select-none transition-[background,opacity] duration-150 hover:bg-primary/[0.06]",g&&"opacity-35"),onMouseEnter:()=>c(f),onMouseLeave:d,onClick:()=>h(f),children:[T0(y.icon)?l.jsx("img",{src:y.icon,alt:y.label,className:"size-5 object-contain shrink-0",onError:p=>{const C=p.target;C.style.display="none";const L=C.nextElementSibling;L&&(L.style.display="flex")}}):l.jsx("span",{className:"size-5 flex items-center justify-center shrink-0 text-base leading-none",children:y.icon}),T0(y.icon)&&l.jsx("span",{className:"size-5 hidden items-center justify-center shrink-0 text-base leading-none text-on-surface-variant",children:"□"}),l.jsx("span",{className:"text-xs leading-4 text-on-surface",children:y.label})]},f)})})]})}function N0({legends:e,className:n,style:t,interaction:r}){return e.length?l.jsx("div",{className:d1("absolute z-20 bottom-6 left-6 max-h-[40%] overflow-y-auto rounded-xl border border-outline-variant/30 bg-surface/80 backdrop-blur-md p-3 px-3.5 text-on-surface shadow-lg scrollbar-thin scrollbar-track-transparent scrollbar-thumb-outline-variant",n),style:t,children:l.jsx("div",{className:"flex flex-col gap-4 [&>*+*]:border-t [&>*+*]:border-outline-variant/20 [&>*+*]:pt-4",children:e.map((o,i)=>l.jsx(a5,{legend:o,interaction:r},`legend-${i}`))})}):null}function a5({legend:e,interaction:n}){switch(e.type){case"categories":return l.jsx(Me,{...e,interaction:n});case"ramp":return l.jsx(we,{...e,interaction:n});case"diverging":return l.jsx(He,{...e,interaction:n});case"threshold":return l.jsx(Se,{...e,interaction:n});case"size":return l.jsx(ze,{...e,interaction:n});case"lineWidth":return l.jsx(Ve,{...e,interaction:n});case"proportion":return l.jsx(ke,{...e,interaction:n});case"icon":return l.jsx(Ee,{...e,interaction:n});default:return null}}const _0=u.createContext({isMobile:!1,breakpoint:768,width:typeof window<"u"?window.innerWidth:1024,schema:void 0});function c5({responsive:e,children:n}){const[t,r]=u.useState(typeof window<"u"?window.innerWidth:1024);u.useEffect(()=>{const a=()=>r(window.innerWidth);return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);const o=(e==null?void 0:e.breakpoint)??768,i=t<o,s=u.useMemo(()=>({isMobile:i,breakpoint:o,width:t,schema:e}),[i,o,t,e]);return l.jsx(_0.Provider,{value:s,children:n})}function D0(){return u.useContext(_0)}function $0({config:e,className:n}){const t=h1(),{items:r,position:o="bottom"}=e,i=c=>{switch(c){case"zoomIn":t==null||t.zoomIn();break;case"zoomOut":t==null||t.zoomOut();break;case"locate":navigator.geolocation&&navigator.geolocation.getCurrentPosition(d=>{t==null||t.setCenter([d.coords.longitude,d.coords.latitude]),t==null||t.setZoom(14)});break;case"reset":t==null||t.setCenter([105,35]),t==null||t.setZoom(4);break}},s={zoomIn:l.jsx("svg",{viewBox:"0 0 24 24",className:"w-6 h-6",fill:"none",stroke:"currentColor",strokeWidth:2,children:l.jsx("path",{d:"M12 5v14m-7-7h14"})}),zoomOut:l.jsx("svg",{viewBox:"0 0 24 24",className:"w-6 h-6",fill:"none",stroke:"currentColor",strokeWidth:2,children:l.jsx("path",{d:"M5 12h14"})}),locate:l.jsxs("svg",{viewBox:"0 0 24 24",className:"w-6 h-6",fill:"none",stroke:"currentColor",strokeWidth:2,children:[l.jsx("circle",{cx:"12",cy:"12",r:"3"}),l.jsx("path",{d:"M12 2v4m0 12v4m10-10h-4M6 12H2"})]}),reset:l.jsxs("svg",{viewBox:"0 0 24 24",className:"w-6 h-6",fill:"none",stroke:"currentColor",strokeWidth:2,children:[l.jsx("path",{d:"M3 12a9 9 0 1 1 3.3 6.9"}),l.jsx("path",{d:"M3 22v-7h7"})]}),layers:l.jsx("svg",{viewBox:"0 0 24 24",className:"w-6 h-6",fill:"none",stroke:"currentColor",strokeWidth:2,children:l.jsx("path",{d:"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"})})},a={zoomIn:"放大",zoomOut:"缩小",locate:"定位",reset:"复位",layers:"图层"};return l.jsx("div",{className:d1("aimapui-mobile-toolbar pointer-events-none",o==="bottom"?"aimapui-mobile-toolbar--bottom":"aimapui-mobile-toolbar--top",n),children:l.jsx("div",{className:"aimapui-mobile-toolbar__bar pointer-events-auto",children:r.map((c,d)=>l.jsxs("button",{onClick:()=>i(c),className:"aimapui-mobile-toolbar__button group",style:{background:"none",border:"none",cursor:"pointer"},"aria-label":a[c]??c,title:a[c]??c,children:[l.jsx("span",{className:"aimapui-mobile-toolbar__icon",children:s[c]}),l.jsx("span",{className:"aimapui-mobile-toolbar__label",children:a[c]??c})]},`${c}-${d}`))})})}function O0({legends:e,className:n,interaction:t}){const[r,o]=u.useState(!1);return e.length?l.jsx("div",{className:d1("aimapui-mobile-sheet-legend",n),children:l.jsxs("div",{className:"aimapui-mobile-sheet-legend__panel",children:[l.jsx("div",{className:"aimapui-mobile-sheet-legend__handle","aria-hidden":"true"}),l.jsxs("button",{onClick:()=>o(!r),className:"aimapui-mobile-sheet-legend__toggle",style:{background:"none",border:"none",cursor:"pointer"},children:[l.jsxs("span",{className:"aimapui-mobile-sheet-legend__toggle-copy",children:[l.jsx("span",{className:"aimapui-mobile-sheet-legend__eyebrow",children:"Legend Panel"}),l.jsxs("span",{className:"aimapui-mobile-sheet-legend__title-row",children:[l.jsx("span",{className:"aimapui-mobile-sheet-legend__title",children:"图例"}),l.jsxs("span",{className:"aimapui-mobile-sheet-legend__badge",children:[e.length," 项"]})]})]}),l.jsx("span",{className:"aimapui-mobile-sheet-legend__chevron-shell","aria-hidden":"true",children:l.jsx("svg",{viewBox:"0 0 24 24",className:d1("aimapui-mobile-sheet-legend__chevron",r&&"aimapui-mobile-sheet-legend__chevron--expanded"),fill:"none",stroke:"currentColor",strokeWidth:2,children:l.jsx("path",{d:"M6 9l6 6 6-6"})})})]}),l.jsx("div",{className:d1("aimapui-mobile-sheet-legend__content custom-scrollbar",r?"aimapui-mobile-sheet-legend__content--expanded":"aimapui-mobile-sheet-legend__content--collapsed"),children:e.map((i,s)=>l.jsx("div",{className:"aimapui-mobile-sheet-legend__section",children:l.jsx(u5,{legend:i,interaction:t})},`mobile-legend-${s}`))})]})}):null}function u5({legend:e,interaction:n}){switch(e.type){case"categories":return l.jsx(Me,{...e,interaction:n});case"ramp":return l.jsx(we,{...e,interaction:n});case"diverging":return l.jsx(He,{...e,interaction:n});case"threshold":return l.jsx(Se,{...e,interaction:n});case"size":return l.jsx(ze,{...e,interaction:n});case"lineWidth":return l.jsx(Ve,{...e,interaction:n});case"proportion":return l.jsx(ke,{...e,interaction:n});case"icon":return l.jsx(Ee,{...e,interaction:n});default:return null}}function d5({map:e,schema:n,theme:t="light",onSceneReady:r,onLayerClick:o,onLayerMouseMove:i,onLayerMouseEnter:s,onLayerMouseLeave:a,onMapMove:c,onMapZoom:d,autoFit:h,events:y,children:f,className:g,style:p}){const C=u.useRef(null),L=u.useMemo(()=>n?ee($e(n)):{map:f5(e??{basemap:"gaode"}),layers:[],controls:[],interactions:[],legends:[]},[n,e]),w=!n&&!!e,S=u.useMemo(()=>({onClick:o,onMouseMove:i,onMouseEnter:s,onMouseLeave:a}),[o,i,s,a]),x=u.useMemo(()=>({onMove:c,onZoom:d}),[c,d]),Z=u.useCallback(z=>{r==null||r(z)},[r]);return l.jsx(Ye,{defaultTheme:t,target:"container",children:l.jsx(je,{schema:L,children:l.jsx(qe,{events:y,children:l.jsx(xt,{responsive:L.responsive,children:l.jsx(p5,{schema:L,isComposableMode:w,autoFit:h,onSceneReady:Z,layerEventHandlers:S,mapEventHandlers:x,containerRef:C,className:g,style:p,children:f})})})})})}function h5(){const e=h1();return u.useEffect(()=>{if(!e)return;let n=!1,t=null,r=null;const o=new Set,i=()=>{var L,w;if(n)return;const h=((L=e.getLayers)==null?void 0:L.call(e))??[];if(h.length===0)return;let y=1/0,f=1/0,g=-1/0,p=-1/0,C=!1;for(const S of h)try{const x=(w=S.getSource)==null?void 0:w.call(S),Z=x==null?void 0:x.extent;if(!Z||!Array.isArray(Z)||Z.length<4)continue;const[z,P,M,A]=Z;if(!isFinite(z)||!isFinite(P)||!isFinite(M)||!isFinite(A)||z>=M||P>=A)continue;y=Math.min(y,z),f=Math.min(f,P),g=Math.max(g,M),p=Math.max(p,A),C=!0}catch{}if(!(!C||y>=g||f>=p))try{e.fitBounds([[y,f],[g,p]]),n=!0}catch{}},s=()=>{n||(t&&clearTimeout(t),t=setTimeout(i,200))};let a=0;const c=50,d=()=>{var y;if(n)return;a+=1;const h=((y=e.getLayers)==null?void 0:y.call(e))??[];for(const f of h)o.has(f)||(o.add(f),f.inited&&s(),typeof f.on=="function"&&f.on("inited",s));!n&&a<c&&(r=setTimeout(d,100))};return r=setTimeout(d,100),()=>{t&&clearTimeout(t),r&&clearTimeout(r)}},[e]),null}function f5(e){return{basemap:e.basemap??"gaode",token:e.token,style:e.style,center:e.center??[105,35],zoom:e.zoom??4,pitch:e.pitch??0,rotation:e.rotation??0,minZoom:e.minZoom,maxZoom:e.maxZoom,bounds:e.bounds,gestureConfig:e.gestureConfig}}function p5({schema:e,isComposableMode:n,autoFit:t,onSceneReady:r,layerEventHandlers:o,mapEventHandlers:i,containerRef:s,className:a,style:c,children:d}){var L,w;const{isMobile:h}=D0(),[y,f]=u.useState(e.layers??[]),g=u.useMemo(()=>{var x,Z;if(n||!h||!((Z=(x=e.responsive)==null?void 0:x.mobile)!=null&&Z.layers))return e.layers;const S=e.responsive.mobile.layers;if("*"in S){const z=S["*"];return e.layers.map(P=>({...P,...z,id:P.id}))}return e.layers.map(z=>z.id&&S[z.id]?{...z,...S[z.id],id:z.id}:z)},[e.layers,e.responsive,h,n]),p=u.useMemo(()=>{var Z,z;const S=e.controls??[];if(!h||!((z=(Z=e.responsive)==null?void 0:Z.mobile)!=null&&z.controls))return S;const x=e.responsive.mobile.controls;return x.hide?S.filter(P=>!x.hide.includes(P.type)):S},[e.controls,e.responsive,h]),C=u.useCallback((S,x)=>{f(Z=>Z.map(z=>z.id===S?{...z,visible:x}:z))},[]);return l.jsx("div",{ref:s,className:a??"aimapui-container",style:c??{width:"100%",height:"100%"},children:l.jsxs(Re,{mapSchema:e.map,onSceneReady:r,mapEventHandlers:i,events:e.events,style:{width:"100%",height:"100%"},children:[t&&l.jsx(h5,{}),!n&&g.length>0&&l.jsx(a0,{layers:g,eventHandlers:o}),!n&&l.jsx(k0,{controls:p,layers:g,onLayerToggle:C,containerRef:s}),!n&&e.interactions&&e.interactions.length>0&&l.jsx(F0,{interactions:e.interactions}),!n&&(h?e.legends&&e.legends.length>0&&l.jsx(O0,{legends:e.legends}):l.jsx(N0,{legends:e.legends??[]})),!n&&h&&((w=(L=e.responsive)==null?void 0:L.mobile)==null?void 0:w.toolbar)&&l.jsx($0,{config:e.responsive.mobile.toolbar}),n?l.jsx(g5,{children:d}):null]})})}function g5({children:e}){const{controls:n,others:t}=u.useMemo(()=>{const r=[],o=[];return u.Children.forEach(e,(i,s)=>{u.isValidElement(i)&&y1.check(i)?r.push(i):o.push(i)}),{controls:r,others:o}},[e]);return l.jsxs(l.Fragment,{children:[n.length>0&&l.jsx(ce,{children:n}),t]})}function D1(e,n){if(e===n)return!1;if(e==null||n==null||typeof e!=typeof n||typeof e!="object")return!0;try{return JSON.stringify(e)!==JSON.stringify(n)}catch{return!0}}function y5(e,n){const t=D1(e.map,n.map),r=new Map;(e.layers??[]).forEach(L=>{L.id&&r.set(L.id,L)});const o=new Map;(n.layers??[]).forEach(L=>{L.id&&o.set(L.id,L)});const i=[],s=[],a=[];(n.layers??[]).forEach((L,w)=>{const S=L.id??`__index_${w}`;if(!r.has(S))i.push(L);else{const x=r.get(S);D1(x,L)&&a.push({id:S,prev:x,next:L})}}),(e.layers??[]).forEach((L,w)=>{const S=L.id??`__index_${w}`;o.has(S)||s.push(S)});const c=e.controls??[],d=n.controls??[],h=[],y=[],f=[],g=Math.max(c.length,d.length);for(let L=0;L<g;L++)L>=c.length?h.push(d[L]):L>=d.length?y.push(c[L]):D1(c[L],d[L])&&f.push({index:L,prev:c[L],next:d[L]});const p=D1(e.interactions,n.interactions),C=D1(e.legends,n.legends);return{mapChanged:t,layersAdded:i,layersRemoved:s,layersUpdated:a,controlsAdded:h,controlsRemoved:y,controlsUpdated:f,interactionsChanged:p,legendsChanged:C}}function m5(e){const n=[];return e.map?n.push(...C5(e.map)):n.push({path:"map",message:"map is required",severity:"error"}),!e.layers||!Array.isArray(e.layers)?n.push({path:"layers",message:"layers must be an array",severity:"error"}):e.layers.forEach((t,r)=>{n.push(...v5(t,r))}),e.controls&&(Array.isArray(e.controls)?e.controls.forEach((t,r)=>{t.type||n.push({path:`controls[${r}].type`,message:"control type is required",severity:"error"})}):n.push({path:"controls",message:"controls must be an array",severity:"error"})),e.interactions&&(Array.isArray(e.interactions)?e.interactions.forEach((t,r)=>{(t.type==="marker"||t.type==="popup")&&(typeof t.longitude!="number"||typeof t.latitude!="number")&&n.push({path:`interactions[${r}]`,message:"marker/popup requires longitude and latitude as numbers",severity:"error"})}):n.push({path:"interactions",message:"interactions must be an array",severity:"error"})),e.legends&&(Array.isArray(e.legends)?e.legends.forEach((t,r)=>{t.type||n.push({path:`legends[${r}].type`,message:"legend type is required",severity:"error"})}):n.push({path:"legends",message:"legends must be an array",severity:"error"})),n}function C5(e){const n=[],t=["gaode","mapbox","maplibre","tianditu","tencent","baidu","google","map"];if(t.includes(e.basemap)||n.push({path:"map.basemap",message:`Invalid basemap "${e.basemap}". Valid values: ${t.join(", ")}`,severity:"error"}),e.center){const[r,o]=e.center;(r<-180||r>180)&&n.push({path:"map.center[0]",message:"Longitude must be between -180 and 180",severity:"error"}),(o<-90||o>90)&&n.push({path:"map.center[1]",message:"Latitude must be between -90 and 90",severity:"error"})}return e.zoom!==void 0&&(e.zoom<0||e.zoom>22)&&n.push({path:"map.zoom",message:"Zoom must be between 0 and 22",severity:"warning"}),["gaode","mapbox","tianditu","tencent","baidu","google"].includes(e.basemap)&&!e.token&&n.push({path:"map.token",message:`basemap "${e.basemap}" requires a token`,severity:"warning"}),n}function v5(e,n){const t=[],r=`layers[${n}]`,o=["point","line","polygon","heatmap","raster","image"];return e.type?o.includes(e.type)||t.push({path:`${r}.type`,message:`Invalid layer type "${e.type}". Valid values: ${o.join(", ")}`,severity:"error"}):t.push({path:`${r}.type`,message:"layer type is required",severity:"error"}),e.source===void 0&&e.source,e.colorField&&!e.colorValues&&!e.color&&t.push({path:`${r}.colorValues`,message:"colorField is set but colorValues is not. L7 will use default scale.",severity:"warning"}),e.sizeField&&!e.sizeValues&&e.size===void 0&&t.push({path:`${r}.sizeValues`,message:"sizeField is set but sizeValues is not. L7 will use default scale.",severity:"warning"}),t}const L5={$schema:"http://json-schema.org/draft-07/schema#",title:"AiMapSchema",description:"Schema-driven React map visualization component configuration",type:"object",required:["map","layers"],properties:{map:{type:"object",required:["basemap"],properties:{basemap:{type:"string",enum:["gaode","mapbox","maplibre","tianditu","tencent","baidu","google","map"],description:"Map base tile provider"},token:{type:"string",description:"API token for the map service"},style:{type:"string",description:"Map style preset (light/dark/normal/darkblue/satellite) or custom URL"},center:{type:"array",items:{type:"number"},minItems:2,maxItems:2,description:"Map center [longitude, latitude], default [105, 35]"},zoom:{type:"number",description:"Map zoom level, default 4"},pitch:{type:"number",description:"Map pitch in degrees, default 0"},rotation:{type:"number",description:"Map rotation in degrees, default 0"},minZoom:{type:"number",description:"Minimum zoom level"},maxZoom:{type:"number",description:"Maximum zoom level"},bounds:{type:"array",items:{type:"array",items:{type:"number"},minItems:2,maxItems:2},minItems:2,maxItems:2,description:"Initial bounds [[swLng, swLat], [neLng, neLat]]"},gestureConfig:{type:"object",properties:{dragPan:{type:"boolean"},pinchZoom:{type:"boolean"},dragRotate:{type:"boolean"}}}}},layers:{type:"array",description:"Array of map layers",items:{type:"object",required:["type","source"],properties:{id:{type:"string",description:"Unique layer ID (auto-generated if omitted)"},type:{type:"string",enum:["point","line","polygon","heatmap","raster","image"],description:"Layer visualization type"},name:{type:"string",description:"Human-readable layer name"},visible:{type:"boolean",default:!0},zIndex:{type:"number",default:0},minZoom:{type:"number"},maxZoom:{type:"number"},autoFit:{type:"boolean",default:!1},source:{description:"GeoJSON, JSON array, or URL string"},sourceType:{type:"string",enum:["geojson","json","csv"]},sourceConfig:{type:"object",properties:{x:{type:"string",description:"Longitude field name"},y:{type:"string",description:"Latitude field name"},x1:{type:"string",description:"End longitude field (for arc lines)"},y1:{type:"string",description:"End latitude field (for arc lines)"},coordinates:{type:"string",description:"Coordinates field"}}},color:{type:"string",description:"Fixed color"},colorField:{type:"string",description:"Field to map color to"},colorValues:{oneOf:[{type:"string",description:"Color palette name"},{type:"array",items:{type:"string"},description:"Array of color values"}]},size:{type:"number",description:"Fixed size"},sizeField:{type:"string",description:"Field to map size to"},sizeValues:{type:"array",items:{type:"number"},description:"Size range [min, max]"},shape:{type:"string",description:"Fixed shape"},shapeField:{type:"string",description:"Field to map shape to"},shapeValues:{type:"array",items:{type:"string"}},style:{type:"object",description:"Additional style properties"},filterField:{type:"string"},filterValues:{type:"array"},animate:{type:"object",properties:{enable:{type:"boolean"},speed:{type:"number"},duration:{type:"number"},trailLength:{type:"number"},repeat:{type:"number"}}},active:{oneOf:[{type:"boolean"},{type:"object",properties:{color:{type:"string"}}}]},select:{oneOf:[{type:"boolean"},{type:"object",properties:{color:{type:"string"}}}]},events:{type:"object",description:"Layer event configuration",properties:{click:{type:"string",description:"Event identifier emitted on click (via EventBus)"},mousemove:{type:"string",description:"Event identifier emitted on mousemove"},mouseenter:{type:"string",description:"Event identifier emitted on mouseenter"},mouseleave:{type:"string",description:"Event identifier emitted on mouseleave"},enablePopup:{type:"boolean",description:"Auto-show popup on click"},popupFields:{type:"array",items:{type:"string"},description:"Fields to show in popup"},popupTemplate:{type:"string",description:"HTML template with {{field}} interpolation"}}}}}},controls:{type:"array",description:"Map control widgets",items:{type:"object",required:["type"],properties:{type:{type:"string",enum:["zoom","scale","fullscreen","geoLocate","mapTheme","mouseLocation","exportImage","layerSwitch"]},position:{type:"string",enum:["topleft","topright","bottomleft","bottomright","topcenter","bottomcenter"]},options:{type:"object"}}}},interactions:{type:"array",description:"Interactive elements (markers, popups, tooltips)",items:{oneOf:[{type:"object",required:["type","longitude","latitude"],properties:{type:{type:"string",const:"marker"},longitude:{type:"number"},latitude:{type:"number"},content:{type:"string"},draggable:{type:"boolean"}}},{type:"object",required:["type","longitude","latitude","content"],properties:{type:{type:"string",const:"popup"},longitude:{type:"number"},latitude:{type:"number"},content:{type:"string"},closeButton:{type:"boolean"}}},{type:"object",required:["type","content"],properties:{type:{type:"string",const:"tooltip"},content:{type:"string"},trigger:{type:"string",enum:["hover","click"]}}}]}},legends:{type:"array",description:"Legend configurations",items:{oneOf:[{type:"object",required:["type","labels","colors"],properties:{type:{type:"string",const:"categories"},title:{type:"string"},labels:{type:"array",items:{type:"string"}},colors:{type:"array",items:{type:"string"}}}},{type:"object",required:["type","labels","colors"],properties:{type:{type:"string",const:"ramp"},title:{type:"string"},labels:{type:"array",items:{type:"string"}},colors:{type:"array",items:{type:"string"}},isContinuous:{type:"boolean"}}},{type:"object",required:["type","labels"],properties:{type:{type:"string",const:"proportion"},title:{type:"string"},labels:{type:"array",items:{type:"array",items:{type:"number"}}},fillColor:{type:"string"}}},{type:"object",required:["type","items"],properties:{type:{type:"string",const:"icon"},title:{type:"string"},items:{type:"array",items:{type:"object",properties:{icon:{type:"string"},label:{type:"string"}}}}}}]}},responsive:{type:"object",properties:{breakpoint:{type:"number",default:768},mobile:{type:"object",properties:{controls:{type:"object",properties:{position:{type:"string"},scale:{type:"number"},hide:{type:"array",items:{type:"string"}}}},legends:{type:"object",properties:{compact:{type:"boolean"},position:{type:"string"}}},toolbar:{type:"object",required:["items","position"],properties:{items:{type:"array",items:{type:"string"}},position:{type:"string",enum:["bottom","top"]}}}}}}},events:{type:"object",description:"Global event identifier mappings for map and interactions",properties:{mapMove:{type:"string",description:"Event identifier for map move"},mapZoom:{type:"string",description:"Event identifier for map zoom"},markerDragEnd:{type:"string",description:"Event identifier for marker drag end"}}}}};function C1({source:e,sourceType:n,sourceConfig:t,onClick:r,onMouseMove:o,onMouseEnter:i,onMouseLeave:s,onLayerCreated:a,...c}){const d=h1();if(!d)return null;const h={...c,type:"point",source:e,sourceType:n??"json",sourceConfig:t},y=r||o||i||s?{onClick:r,onMouseMove:o,onMouseEnter:i,onMouseLeave:s}:void 0;return l.jsx(V1,{schema:h,scene:d,eventHandlers:y,onLayerCreated:a})}function w1({source:e,sourceType:n,sourceConfig:t,onClick:r,onMouseMove:o,onMouseEnter:i,onMouseLeave:s,onLayerCreated:a,...c}){const d=h1();if(!d)return null;const h={...c,type:"line",source:e,sourceType:n??"json",sourceConfig:t},y=r||o||i||s?{onClick:r,onMouseMove:o,onMouseEnter:i,onMouseLeave:s}:void 0;return l.jsx(V1,{schema:h,scene:d,eventHandlers:y,onLayerCreated:a})}function Q1({source:e,sourceType:n,sourceConfig:t,onClick:r,onMouseMove:o,onMouseEnter:i,onMouseLeave:s,onLayerCreated:a,...c}){const d=h1();if(!d)return null;const h={...c,type:"polygon",source:e,sourceType:n??"geojson",sourceConfig:t},y=r||o||i||s?{onClick:r,onMouseMove:o,onMouseEnter:i,onMouseLeave:s}:void 0;return l.jsx(V1,{schema:h,scene:d,eventHandlers:y,onLayerCreated:a})}function j0({source:e,sourceType:n,sourceConfig:t,onClick:r,onMouseMove:o,onMouseEnter:i,onMouseLeave:s,onLayerCreated:a,...c}){const d=h1();if(!d)return null;const h={...c,type:"heatmap",source:e,sourceType:n??"json",sourceConfig:t},y=r||o||i||s?{onClick:r,onMouseMove:o,onMouseEnter:i,onMouseLeave:s}:void 0;return l.jsx(V1,{schema:h,scene:d,eventHandlers:y,onLayerCreated:a})}function B0({source:e,sourceType:n="json",sourceConfig:t,hexSize:r=100,weightField:o="h12",weightMethod:i="sum",onClick:s,onMouseMove:a,style:c,...d}){const h=[{type:"hexagon",size:r,field:o,method:i}];return l.jsx(j0,{...d,source:e,sourceType:n,sourceConfig:{...t,transforms:h},shape:"hexagonColumn",style:{coverage:.8,angle:0,...c??{}},onClick:s,onMouseMove:a})}function U0({source:e,sourceType:n,sourceConfig:t,onClick:r,...o}){const i=h1();if(!i)return null;const s={...o,type:"raster",source:e,sourceType:n??"raster",sourceConfig:t},a=r?{onClick:r}:void 0;return l.jsx(V1,{schema:s,scene:i,eventHandlers:a})}function b5({source:e,sourceType:n,sourceConfig:t,onClick:r,...o}){const i=h1();if(!i)return null;const s={...o,type:"image",source:e,sourceType:n??"image",sourceConfig:t},a=r?{onClick:r}:void 0;return l.jsx(V1,{schema:s,scene:i,eventHandlers:a})}const x5=[8,16,32,48,64],R1={primary:"#2563eb",warning:"#f59e0b",error:"#ef4444",success:"#10b981"};function M5({source:e,sourceType:n="geojson",sourceConfig:t,labelField:r="name",labelColor:o="#0b3b8c",labelSize:i=12,showLabel:s=!0,labelTrigger:a="always",labelOffset:c,sizeDomain:d,bubbleAnchor:h="bottom",labelAnchor:y="top",hoverEffect:f=!0,clickEffect:g=!0,tooltipEffect:p=!0,tooltipFields:C,tooltipTemplate:L,semanticColorField:w,color:S="#2563eb",size:x=16,sizeField:Z,sizeValues:z,style:P,active:M,select:A,onClick:O,onMouseMove:V,onMouseEnter:D,onMouseLeave:_,...F}){const b=w??F.colorField,H=F.colorValues??(w?[R1.primary,R1.warning,R1.error,R1.success]:void 0),B=Z?z??[...x5]:z,[Y,t1]=u.useState(a==="always"),K=u.useCallback(X=>{a==="hover"&&t1(!0),D==null||D(X)},[a,D]),R=u.useCallback(X=>{a==="hover"&&t1(!1),_==null||_(X)},[a,_]),a1={color:"#60a5fa"},G={color:"#1d4ed8"},n1=(()=>{const X=F.events;return p?{...X,enablePopup:(X==null?void 0:X.enablePopup)??!0,popupFields:(X==null?void 0:X.popupFields)??C,popupTemplate:(X==null?void 0:X.popupTemplate)??L}:X})(),[r1,I]=u.useState(!1);u.useEffect(()=>{const X=requestAnimationFrame(()=>I(!0));return()=>cancelAnimationFrame(X)},[]);const W=s&&Y&&r1,l1=Z?{sizeField:Z,sizeValues:B}:{size:x};return l.jsxs(l.Fragment,{children:[l.jsx(C1,{source:e,sourceType:n,sourceConfig:t,shape:"circle",color:S,colorField:b,colorValues:H,...l1,opacity:.75,active:f?M??a1:M,select:g?A??G:A,events:n1,zIndex:F.zIndex??0,autoFit:F.autoFit,visible:F.visible,name:F.name??"bubble-circle",onClick:O,onMouseMove:V,onMouseEnter:K,onMouseLeave:R,style:{stroke:S??"#004ac6",strokeWidth:2,strokeOpacity:1,...P??{}}}),W&&l.jsx(C1,{source:e,sourceType:n,sourceConfig:t,shapeField:r,shapeValues:"text",color:o,size:i,zIndex:(F.zIndex??0)+1,style:{textAnchor:y,textOffset:c??[0,0],stroke:"#fff",strokeWidth:2,textAllowOverlap:!0}})]})}function w5({source:e,sourceType:n="geojson",sourceConfig:t,gridSize:r=60,minClusterSize:o=2,animationDuration:i=300,easing:s="cubic-bezier(0.4, 0, 0.2, 1)",onPointClick:a,onClusterClick:c}){const d=h1(),[h,y]=u.useState([]),[f,g]=u.useState(null),[p,C]=u.useState(null),L=u.useRef(null),w=u.useRef(-1),S=u.useMemo(()=>z5(e,n,t),[e,n,t]);u.useEffect(()=>{if(S.length===0){L.current=null,y([]),w.current=-1;return}const M=new ut({radius:r,minPoints:o,maxZoom:20,minZoom:0}),A=S.map(O=>({type:"Feature",properties:{id:O.id,...O.properties},geometry:{type:"Point",coordinates:[O.lng,O.lat]}}));M.load(A),L.current=M,w.current=-1},[S,r,o]);const x=u.useCallback((M,A)=>{try{const O=Math.floor(A.getZoom());if(O===w.current)return;w.current=O;let V=[-180,-90,180,90];try{const F=A.getBounds();F&&(V=[F[0][0],F[0][1],F[1][0],F[1][1]])}catch{}const _=M.getClusters(V,O).map(F=>{const b=F.geometry.coordinates,H=b[0],B=b[1];return F.properties.cluster?{id:`cluster-${F.properties.cluster_id}`,clusterId:F.properties.cluster_id,lng:H,lat:B,pointCount:F.properties.point_count,isCluster:!0,properties:{}}:{id:`point-${F.properties.id}`,clusterId:-1,lng:H,lat:B,pointCount:1,isCluster:!1,properties:F.properties}});y(_),g(null)}catch{}},[]);u.useEffect(()=>{var V,D;if(!d)return;const M=d.mapService,A=()=>{requestAnimationFrame(()=>{const _=L.current;_&&d.loaded&&x(_,d)})};d.loaded?A():d.once("loaded",A);const O=()=>{const _=L.current;_&&x(_,d)};return(V=M==null?void 0:M.on)==null||V.call(M,"camerachange",O),(D=M==null?void 0:M.on)==null||D.call(M,"viewchange",O),()=>{var _,F;d.off("loaded",A),(_=M==null?void 0:M.off)==null||_.call(M,"camerachange",O),(F=M==null?void 0:M.off)==null||F.call(M,"viewchange",O)}},[d,x]);const Z=u.useCallback(M=>{if(!d||!M.isCluster)return;let A=[];const O=L.current;O&&(A=O.getLeaves(M.clusterId,1/0)),c==null||c(M,A);try{if(d.getZoom()>=20-.5){g(_=>_===M.id?null:M.id);return}if(A.length>0){const _=A.map(Y=>Y.geometry.coordinates),F=_.map(Y=>Y[0]),b=_.map(Y=>Y[1]),H=[Math.min(...F),Math.min(...b)],B=[Math.max(...F),Math.max(...b)];d.fitBounds([H,B],{padding:[40,40,40,40],duration:i})}}catch{}},[d,c,i]),z=u.useMemo(()=>{if(!d||!f||!L.current)return[];const M=h.find(A=>A.id===f&&A.isCluster);if(!M)return[];try{const A=L.current.getLeaves(M.clusterId,1/0),O=d.mapService;if(!O)return[];const V=O.lngLatToContainer([M.lng,M.lat]);if(!V)return[];const D=A.length,_=Math.max(24,Math.min(72,18+D*2));return A.map((F,b)=>{var K,R;const H=Math.PI*2*b/D-Math.PI/2,B=V.x+Math.cos(H)*_,Y=V.y+Math.sin(H)*_,t1=O.containerToLngLat([B,Y]);return{id:`spider-${M.id}-${((K=F.properties)==null?void 0:K.id)??b}`,lng:t1.lng,lat:t1.lat,point:{id:String(((R=F.properties)==null?void 0:R.id)??b),lng:F.geometry.coordinates[0],lat:F.geometry.coordinates[1],properties:F.properties??{}}}})}catch{return[]}},[d,f,h]),P=u.useMemo(()=>f?h.find(M=>M.id===f&&M.isCluster)??null:null,[f,h]);return l.jsxs(l.Fragment,{children:[f&&P&&z.map(M=>l.jsx(A1,{longitude:M.lng,latitude:M.lat,anchor:"center",content:l.jsx(H5,{centerLng:P.lng,centerLat:P.lat,lineLng:M.lng,lineLat:M.lat})},`line-${M.id}`)),h.map(M=>{var D;if(!M.isCluster)return l.jsx(A1,{longitude:M.lng,latitude:M.lat,anchor:"center",content:l.jsx("div",{title:String(((D=M.properties)==null?void 0:D.name)??"单点"),onClick:()=>{var _;return a==null?void 0:a({id:String(((_=M.properties)==null?void 0:_.id)??""),lng:M.lng,lat:M.lat,properties:M.properties})},style:{width:14,height:14,borderRadius:9999,background:"#2563eb",border:"2px solid #fff",boxShadow:"0 2px 10px rgba(37,99,235,.5), 0 0 0 3px rgba(37,99,235,.15)",transition:"transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.15s cubic-bezier(0.4, 0, 0.2, 1)",cursor:"pointer"}})},M.id);const A=M.pointCount,O=S5(A),V=p===M.id;return l.jsx(A1,{longitude:M.lng,latitude:M.lat,anchor:"center",content:l.jsxs("div",{title:`包含 ${A} 个要素`,onClick:()=>Z(M),onMouseEnter:()=>C(M.id),onMouseLeave:()=>C(_=>_===M.id?null:_),style:{width:O.size,height:O.size,borderRadius:9999,display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontWeight:O.fontWeight,fontSize:O.fontSize,background:O.background,border:O.border,boxShadow:O.shadow,position:"relative",cursor:"pointer",transition:"transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.15s cubic-bezier(0.4, 0, 0.2, 1)",transform:V?"scale(1.1)":"scale(1)"},children:[O.pulse&&l.jsx("span",{style:{position:"absolute",inset:-6,borderRadius:9999,background:"rgba(37,99,235,0.25)",animation:"aimapui-cluster-pulse 1.6s ease-out infinite"}}),l.jsx("span",{style:{position:"relative",zIndex:1},children:A})]})},M.id)}),z.map(M=>{var A;return l.jsx(A1,{longitude:M.lng,latitude:M.lat,anchor:"center",content:l.jsx("div",{title:String(((A=M.point.properties)==null?void 0:A.name)??M.point.id),onClick:()=>a==null?void 0:a(M.point),style:{width:10,height:10,borderRadius:9999,background:"#fff",border:"2px solid #2563eb",boxShadow:"0 2px 8px rgba(0,0,0,.2)",cursor:"pointer"}})},M.id)})]})}function H5({centerLng:e,centerLat:n,lineLng:t,lineLat:r}){const o=h1(),i=u.useRef(null);return u.useEffect(()=>{if(!o)return;const s=o.mapService;if(!s)return;const a=()=>{const h=i.current;if(h)try{const y=s.lngLatToContainer([e,n]),f=s.lngLatToContainer([t,r]);if(!y||!f)return;const g=f.x-y.x,p=f.y-y.y,C=Math.sqrt(g*g+p*p),L=Math.atan2(p,g)*180/Math.PI;h.style.width=`${C}px`,h.style.transform=`rotate(${L}deg)`}catch{}};a();const c=(h,y,f)=>{var g;try{(g=h==null?void 0:h.on)==null||g.call(h,y,f)}catch{}},d=(h,y,f)=>{var g;try{(g=h==null?void 0:h.off)==null||g.call(h,y,f)}catch{}};return c(s,"camerachange",a),c(s,"viewchange",a),()=>{d(s,"camerachange",a),d(s,"viewchange",a)}},[o,e,n,t,r]),l.jsx("div",{ref:i,style:{position:"absolute",left:0,top:0,height:1,background:"rgba(195, 198, 215, 0.5)",transformOrigin:"0 50%",pointerEvents:"none"}})}function S5(e){return e>=1e3?{size:48,fontSize:14,fontWeight:700,background:"linear-gradient(135deg, #2563eb 0%, #1e3a8a 100%)",border:"2px solid rgba(255,255,255,0.55)",shadow:"0 10px 24px rgba(37,99,235,.45)",pulse:!0}:e>=100?{size:40,fontSize:13,fontWeight:700,background:"rgba(37,99,235,0.30)",border:"2px solid rgba(255,255,255,0.5)",shadow:"0 6px 16px rgba(37,99,235,.25)",pulse:!1}:{size:32,fontSize:12,fontWeight:600,background:"radial-gradient(circle, #2563eb 60%, rgba(37,99,235,0.20) 61%)",border:"1px solid rgba(255,255,255,0.55)",shadow:"0 4px 12px rgba(37,99,235,.2)",pulse:!1}}function z5(e,n,t){if(!e)return[];if(n==="geojson"&&typeof e=="object"&&e!==null){const r=e;return(Array.isArray(r.features)?r.features:[]).map((i,s)=>{var d,h,y;const a=i,c=(d=a==null?void 0:a.geometry)==null?void 0:d.coordinates;return!Array.isArray(c)||c.length<2?null:{id:String(((h=a==null?void 0:a.properties)==null?void 0:h.id)??((y=a==null?void 0:a.properties)==null?void 0:y.Id)??s),lng:Number(c[0]),lat:Number(c[1]),properties:(a==null?void 0:a.properties)??{}}}).filter(Boolean)}if(Array.isArray(e)){const r=(t==null?void 0:t.x)??"lng",o=(t==null?void 0:t.y)??"lat";return e.map((i,s)=>{const a=i,c=Number(a[r]),d=Number(a[o]);return Number.isNaN(c)||Number.isNaN(d)?null:{id:String(a.id??s),lng:c,lat:d,properties:a}}).filter(Boolean)}return[]}const V5=["#dbeafe","#93c5fd","#60a5fa","#3b82f6","#2563eb"],k5=["#dc2626","#fca5a5","#e5e7eb","#86efac","#16a34a"],E5=["#2563eb","#f59e0b","#ef4444","#10b981","#8b5cf6","#14b8a6","#f97316","#64748b"];function A5({source:e,sourceType:n="geojson",colorMapping:t="sequential",showStroke:r=!0,strokeColor:o="rgba(255,255,255,0.30)",strokeWidth:i=.5,hoverEffect:s=!0,clickEffect:a=!0,stickySelection:c=!0,tooltipEffect:d=!0,tooltipFields:h,tooltipTemplate:y,regionIdField:f="name",highlightStrokeColor:g="#2563eb",highlightStrokeWidth:p=2,zoomToRegionOnClick:C=!0,clickZoomPadding:L=40,clickZoomDelta:w=1.2,onRegionClick:S,onDrilldown:x,onLayerCreated:Z,showLabel:z=!1,labelField:P="name",labelColor:M="#0f172a",labelSize:A=11,labelAreaThreshold:O=5e-5,labelHaloWidth:V=2,minLabelZoom:D,valueField:_,percentageField:F,nameField:b,color:H,colorField:B,colorValues:Y,active:t1,select:K,events:R,style:a1,...G}){const n1=h1(),[r1,I]=u.useState(null),[W,l1]=u.useState(null),[X,s1]=u.useState(()=>{if(!n1)return 0;try{return n1.getZoom()}catch{return 0}});u.useEffect(()=>{if(!n1)return;const j=()=>{try{s1(n1.getZoom())}catch{}};return j(),n1.on("zoomchange",j),()=>{n1.off("zoomchange",j)}},[n1]);const u1=D===void 0||X>=D,E=u.useMemo(()=>{if(Y)return Y;switch(t){case"diverging":return[...k5];case"categorical":return[...E5];case"sequential":default:return[...V5]}},[Y,t]),m=_??B??"value",k=b??P,v=u.useMemo(()=>y??Z5(k,m,F),[y,k,m,F]),J={color:"#ffffff"},$={color:"#0f172a"},q=u.useMemo(()=>P5(e,n,P,f,O),[e,n,P,f,O]),e1=u.useCallback(j=>{S==null||S(j);const o1=q0(j.feature,f);if(o1!==null&&a&&l1(i1=>!c&&i1===o1?null:o1),j.feature&&(x==null||x(j.feature)),!n1||!C)return;const c1=Number.isFinite(j.lng)&&Number.isFinite(j.lat)?[j.lng,j.lat]:F5(j.originalEvent);if(c1)try{const i1=n1.getZoom(),f1=Math.abs(w);n1.setCenter(c1),n1.setZoom(i1+f1)}catch{}},[S,f,a,c,x,n1,C,w]),T=u.useCallback(j=>{if(!s)return;const o1=q0(j.feature,f);I(o1)},[s,f]),N=u.useCallback(()=>{s&&I(null)},[s]),Q=u.useMemo(()=>{const j=R;return d?{...j,enablePopup:(j==null?void 0:j.enablePopup)??!0,popupTrigger:(j==null?void 0:j.popupTrigger)??"hover",popupFields:(j==null?void 0:j.popupFields)??h,popupTemplate:(j==null?void 0:j.popupTemplate)??v}:j},[R,d,h,v]);return l.jsxs(l.Fragment,{children:[l.jsx(Q1,{...G,source:e,sourceType:n,shape:G.shape??"fill",color:H??"#2563eb",colorField:B,colorValues:E,active:s?t1??J:t1,select:a?K??$:K,events:Q,onClick:e1,onMouseEnter:T,onMouseLeave:N,onLayerCreated:Z,style:{opacity:.8,...a1??{}}}),r&&l.jsx(w1,{source:e,sourceType:n,color:o,size:i,zIndex:2}),s&&r1!==null&&l.jsxs(l.Fragment,{children:[l.jsx(w1,{source:e,sourceType:n,color:W0(g,.35),size:p+2,filterField:f,filterValues:[r1],zIndex:3}),l.jsx(w1,{source:e,sourceType:n,color:g,size:p,filterField:f,filterValues:[r1],zIndex:4})]}),a&&W!==null&&l.jsx(w1,{source:e,sourceType:n,color:W0(g,.9),size:Math.max(1.5,p),filterField:f,filterValues:[W],zIndex:5}),z&&u1&&l.jsx(C1,{source:q.data,sourceType:q.sourceType,sourceConfig:q.sourceConfig,shapeField:P,shapeValues:"text",color:M,size:A,style:{textAllowOverlap:!1,stroke:"#ffffff",strokeWidth:V,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace"}})]})}function Z5(e,n,t){const r=t?`<tr><td style="padding-right:8px;color:#64748b">占比</td><td style="font-weight:600">{{${t}}}%</td></tr>`:"";return['<div style="min-width:160px">',`<div style="font-weight:700;margin-bottom:6px">{{${e}}}</div>`,'<table style="font-size:12px;line-height:1.4">',`<tr><td style="padding-right:8px;color:#64748b">指标</td><td style="font-weight:600">{{${n}}}</td></tr>`,r,"</table>","</div>"].join("")}function W0(e,n){if(e.startsWith("#")){const t=e.replace("#",""),r=t.length===3?`${t[0]}${t[0]}${t[1]}${t[1]}${t[2]}${t[2]}`:t;if(r.length===6){const o=parseInt(r.slice(0,2),16),i=parseInt(r.slice(2,4),16),s=parseInt(r.slice(4,6),16);return`rgba(${o},${i},${s},${n})`}}return e}function q0(e,n){if(!e)return null;const t=e[n]??e.id??e.name;return typeof t=="string"||typeof t=="number"?t:null}function P5(e,n,t,r,o){return n!=="geojson"||!I5(e)?{data:e,sourceType:n}:{data:e.features.map(s=>{if(!s||!s.geometry||!s.properties)return null;const a=G0(s.geometry),c=N5(s.geometry);if(!a||c<o)return null;const d=s.properties;return{lng:a[0],lat:a[1],[t]:d[t],[r]:d[r]}}).filter(s=>s!==null),sourceType:"json",sourceConfig:{x:"lng",y:"lat"}}}function I5(e){if(!e||typeof e!="object")return!1;const n=e;return n.type==="FeatureCollection"&&Array.isArray(n.features)}function F5(e){const n=T5(e);return n?G0(n):null}function T5(e){var t,r;const n=e;return((t=n==null?void 0:n.feature)==null?void 0:t.geometry)??((r=n==null?void 0:n.data)==null?void 0:r.geometry)??null}function G0(e){if(e.type==="Polygon")return Y0(e.coordinates[0]);if(e.type==="MultiPolygon"){let n=0,t=null;return e.coordinates.forEach(r=>{const o=r[0],i=Math.abs(Ae(o));i>n&&(n=i,t=Y0(o))}),t}return null}function N5(e){return e.type==="Polygon"?Math.abs(Ae(e.coordinates[0])):e.type==="MultiPolygon"?e.coordinates.reduce((n,t)=>n+Math.abs(Ae(t[0])),0):0}function Y0(e){if(!e||e.length<3)return null;let n=0,t=0,r=0;for(let i=0;i<e.length-1;i+=1){const[s,a]=e[i],[c,d]=e[i+1],h=s*d-c*a;n+=h,t+=(s+c)*h,r+=(a+d)*h}const o=n/2;if(Math.abs(o)<1e-12){const i=e[0];return i?[i[0],i[1]]:null}return[t/(6*o),r/(6*o)]}function Ae(e){if(!e||e.length<3)return 0;let n=0;for(let t=0;t<e.length-1;t+=1){const[r,o]=e[t],[i,s]=e[t+1];n+=r*s-i*o}return n/2}const J0=["#eff6ff","#bfdbfe","#60a5fa","#2563eb","#1d4ed8","#1e3a8a"],X0="https://mdn.alipayobjects.com/antforest/afts/file/A*T2OJQ7XZzeEAAAAAgCAAAAgAerd2AQ/original_中国_省.json",K0="https://mdn.alipayobjects.com/antforest/afts/file/A*Xd8TQoduwj8AAAAAgEAAAAgAerd2AQ/original_中国_市.json",Q0="https://mdn.alipayobjects.com/portal_moelhz/afts/file/A*Rb96Tac1p8EAAAAAgKAAAAgAegAAAQ",_5=u.forwardRef(function(n,t){const{provinceSource:r=X0,citySource:o=K0,districtSource:i=Q0,level:s="province",drillEnabled:a=!0,drillPath:c,onDrill:d,onDrillUp:h,autoFitOnDrill:y=!0,data:f,joinField:g="name",dataJoinField:p="name",valueField:C="value",colors:L=[...J0],fillOpacity:w=.8,strokeColor:S="rgba(255,255,255,0.5)",strokeWidth:x=1.5,dimOpacity:Z=.12,showLabel:z=!0,labelField:P="name",labelSize:M=12,hoverHighlight:A=!0,clickSelect:O=!0,showTooltip:V=!0,tooltipFields:D,onRegionClick:_,zIndex:F=0}=n,b=h1(),[H,B]=u.useState(null),[Y,t1]=u.useState(null),[K,R]=u.useState(null),[a1,G]=u.useState(null),[n1,r1]=u.useState([{level:"province",name:"中国"}]),I=c??n1,W=a?$5(I):s,l1=u.useCallback(()=>{if(I.length<=1)return;const N=I.slice(0,-1);c?h==null||h(N):(r1(N),h==null||h(N),d==null||d(N)),u1(null)},[I,c,h,d]),X=u.useCallback(N=>{if(N<0||N>=I.length-1)return;const Q=I.slice(0,N+1);c?h==null||h(Q):(r1(Q),h==null||h(Q),d==null||d(Q)),u1(null)},[I,c,h,d]),[s1,u1]=u.useState(null);u.useImperativeHandle(t,()=>({drillUp:l1,drillUpTo:X,getDrillPath:()=>I}),[l1,X,I]);const E=u.useRef(I.length);u.useEffect(()=>{Ze(r,B,G)},[r]),u.useEffect(()=>{o&&Ze(o,t1)},[o]),u.useEffect(()=>{i&&Ze(i,R)},[i]);const m=u.useMemo(()=>{switch(W){case"city":return Y;case"district":return K;default:return H}},[W,H,Y,K]),k=u.useMemo(()=>!m||!f||f.length===0?m:W5(m,f,g,p,C),[m,f,g,p,C]),v=u.useMemo(()=>{if(!a||I.length<=1)return k;if(!k)return null;const N=I[I.length-1];return!N.adcode&&!N.name?k:G5(k,N)},[a,I,k,g]),J=u.useMemo(()=>!a||I.length<=1?null:(I.length===2?H:Y)??null,[a,I,H,Y]);u.useMemo(()=>`<div style="min-width:140px"><table style="font-size:12px;line-height:1.6">${(D??[P,C]).map(j=>`<tr><td style="padding-right:8px;color:#64748b">${j}</td><td style="font-weight:600">{{${j}}}</td></tr>`).join("")}</table></div>`,[D,P,C]);const $=!!(f&&f.length>0),q=u.useMemo(()=>k?v??k:null,[v,k]),e1=W==="province"?x:x*.6;u.useEffect(()=>{if(!(!y||!b||!q||E.current===I.length)){E.current=I.length;try{const Q=K5(q);Q&&b.fitBounds(Q,{padding:[40,40,40,40]})}catch{}}},[y,b,q,I.length]);const T=u.useCallback(N=>{const Q=N.feature;if(!Q)return;const j=String(Q[P]??Q.name??""),o1=Q.adcode??Q.gb;if(_==null||_(Q,W),O&&u1(c1=>c1===j?null:j),a&&O5(W)){const c1=[...I,{level:W,name:j,adcode:o1}];c||r1(c1),d==null||d(c1),u1(null)}},[P,W,O,a,I,c,d,_]);return!b||!q?null:l.jsxs(l.Fragment,{children:[a&&J&&I.length>1&&l.jsxs(l.Fragment,{children:[l.jsx(Q1,{source:J,sourceType:"geojson",shape:"fill",color:"#94a3b8",style:{opacity:Z},zIndex:F}),l.jsx(w1,{source:J,sourceType:"geojson",color:"rgba(148,163,184,0.2)",size:.5,zIndex:F+1})]}),l.jsx(Q1,{source:q,sourceType:"geojson",shape:"fill",...$?{colorField:C,colorValues:L}:{color:L[2]??"#3b82f6"},active:A?{color:"#ffffff"}:void 0,select:O?{color:"#0f172a"}:void 0,style:{opacity:w},onClick:T,zIndex:F+2}),l.jsx(w1,{source:q,sourceType:"geojson",color:S,size:e1,zIndex:F+3}),a1&&W==="province"&&I.length<=1&&l.jsx(w1,{source:a1,sourceType:"geojson",color:"#94a3b8",size:1,zIndex:F+3}),z&&q&&l.jsx(D5,{geoData:q,labelField:P,labelSize:M,zIndex:F+4})]})});function D5({geoData:e,labelField:n,labelSize:t,zIndex:r}){const o=u.useMemo(()=>Y5(e,n),[e,n]);return!o||o.data.length===0?null:l.jsx(C1,{source:o.data,sourceType:o.sourceType,sourceConfig:o.sourceConfig,shapeField:n,shapeValues:"text",color:"#0f172a",size:t,style:{textAllowOverlap:!1,stroke:"#ffffff",strokeWidth:2,fontFamily:"PingFang SC, Microsoft YaHei, sans-serif"},zIndex:r})}function $5(e){return e.length<=1?"province":e.length===2?"city":"district"}function O5(e){return e!=="district"}const j5=new Set(["境界线","边界线","九段线","十段线"]);function B5(e){var t,r,o;const n=(t=e.properties)==null?void 0:t.name;if(typeof n!="string")return!1;if(n==="九段线"||n==="十段线")return!0;if(n==="境界线"){const i=(r=e.geometry)==null?void 0:r.type;if(i!=="MultiLineString"&&i!=="LineString")return!1;const s=(o=e.geometry)==null?void 0:o.coordinates;if(!s)return!1;const a=i==="MultiLineString"?s.flat():s;if(Math.min(...a.map(d=>d[1]))<10)return!0}return!1}function U5(e){var r,o;const n=(r=e.properties)==null?void 0:r.name;if(!n||typeof n!="string"||j5.has(n))return!1;const t=(o=e.geometry)==null?void 0:o.type;return!(t==="LineString"||t==="MultiLineString")}function R0(e){const n=[],t=[];for(const r of e.features)B5(r)?t.push(r):U5(r)&&n.push(r);return{admin:{type:"FeatureCollection",features:n},dashLine:t.length>0?{type:"FeatureCollection",features:t}:null}}function Ze(e,n,t){if(typeof e=="string")fetch(e).then(r=>r.json()).then(r=>{if(r&&r.type==="FeatureCollection"){const o=R0(r);n(o.admin),t==null||t(o.dashLine)}}).catch(()=>{});else if(e&&e.type==="FeatureCollection"){const r=R0(e);n(r.admin),t==null||t(r.dashLine)}}function W5(e,n,t,r,o){const i=new Map;for(const a of n){const c=String(a[r]??"");c&&i.set(c,a)}return{type:"FeatureCollection",features:e.features.map(a=>{const c=String(a.properties[t]??""),d=i.get(c),h=d?d[o]??d.value??0:0;return{...a,properties:{...a.properties,...d??{},[o]:h}}})}}function et(e){const n=String(e);return n.startsWith("156")&&n.length>=9?n.slice(3):n}const q5=["省","市","自治区","特别行政区","壮族","回族","维吾尔","藏族","彝族","苗","侗","瑶","白","哈尼","傣","傈僳","佤","畲","拉祜","水","景颇","土家","羌","毛南","仫佬","布朗","撒拉","裕固","塔吉克","柯尔克孜","锡伯","达斡尔","鄂温克","鄂伦春","赫哲","德昂","门巴","珞巴","基诺","怒","保安","京","独龙","仡佬","阿昌","普米"];function Pe(e){let n=e;for(const t of q5)if(n.endsWith(t)){n=n.slice(0,-t.length);break}return n}function G5(e,n,t){const r=n.name,o=n.adcode,s=n.level==="province"?2:4;return{type:"FeatureCollection",features:e.features.filter(c=>{const d=c.properties;if(d.parent&&String(d.parent)===r||d.parentName&&String(d.parentName)===r)return!0;const h=d.adcode??d.gb;if(o&&h){const f=et(String(o)),g=et(String(h));if(g.length>=s&&g.slice(0,s)===f.slice(0,s)&&g!==f)return!0}const y=Pe(r);return!!(d.province&&(String(d.province)===r||Pe(String(d.province))===y)||d.city&&(String(d.city)===r||Pe(String(d.city))===y))})}}function Y5(e,n){const t=[];for(const r of e.features){if(!r.geometry||!r.properties)continue;const o=J5(r.geometry);o&&t.push({lng:o[0],lat:o[1],[n]:r.properties[n]??r.properties.name??""})}return t.length===0?null:{data:t,sourceType:"json",sourceConfig:{x:"lng",y:"lat"}}}function J5(e){const n=e.type,t=e.coordinates;if(!t)return null;if(n==="Point")return t;if(n==="Polygon")return tt(t);if(n==="MultiPolygon"){const r=t;let o=0,i=null;for(const s of r){const a=Math.abs(X5(s[0]));a>o&&(o=a,i=tt(s))}return i}return null}function tt(e){const n=e[0];if(!n||n.length===0)return null;let t=0,r=0;const o=n.length;for(const i of n)t+=i[0],r+=i[1];return[t/o,r/o]}function X5(e){let n=0;const t=e.length;for(let r=0;r<t;r++){const o=(r+1)%t;n+=e[r][0]*e[o][1],n-=e[o][0]*e[r][1]}return n/2}function K5(e){let n=1/0,t=1/0,r=-1/0,o=-1/0;for(const i of e.features)Q5(i.geometry,(s,a)=>{s<n&&(n=s),a<t&&(t=a),s>r&&(r=s),a>o&&(o=a)});return!isFinite(n)||!isFinite(t)?null:[[n,t],[r,o]]}function Q5(e,n){const t=e.type,r=e.coordinates;if(r){if(t==="Point"){const[o,i]=r;n(o,i)}else if(t==="LineString"||t==="MultiPoint")for(const[o,i]of r)n(o,i);else if(t==="Polygon"||t==="MultiLineString")for(const o of r)for(const[i,s]of o)n(i,s);else if(t==="MultiPolygon")for(const o of r)for(const i of o)for(const[s,a]of i)n(s,a)}}const R5=[["sunny","&#xe81a;"],["cloud","&#xf15c;"],["cloudy","&#xf15c;"],["partly_cloudy_day","&#xf172;"],["partly_cloudy_night","&#xf174;"],["rainy","&#xf176;"],["rainy_heavy","&#xf61f;"],["rainy_light","&#xf61e;"],["rainy_snow","&#xf61d;"],["thunderstorm","&#xebdb;"],["foggy","&#xe818;"],["air","&#xefd8;"],["water_drop","&#xe798;"],["ac_unit","&#xeb3b;"],["filter_drama","&#xe3dd;"],["cloudy_snowing","&#xe810;"],["snowing","&#xe80f;"],["snowflake","&#xed5b;"],["severe_cold","&#xebd3;"],["umbrella","&#xf1ad;"],["storm","&#xf070;"],["tornado","&#xe199;"],["thermostat","&#xf076;"],["heat","&#xf537;"],["hot","&#xef23;"],["flight","&#xe539;"],["flight_takeoff","&#xe905;"],["flight_land","&#xe904;"],["train","&#xe570;"],["directions_transit","&#xeffa;"],["directions_railway","&#xeff8;"],["directions_bus","&#xeff6;"],["directions_car","&#xeff7;"],["directions_boat","&#xeff5;"],["directions_bike","&#xe52f;"],["directions_walk","&#xe536;"],["directions_run","&#xe566;"],["taxi","&#xe559;"],["local_taxi","&#xe559;"],["local_airport","&#xe53d;"],["connecting_airports","&#xe7c9;"],["two_wheeler","&#xe9f9;"],["tram","&#xe571;"],["subway","&#xe56f;"],["ferry","&#xe572;"],["cable_car","&#xf479;"],["ev_station","&#xe56d;"],["local_gas_station","&#xe546;"],["location_on","&#xf1db;"],["place","&#xf1db;"],["room","&#xf1db;"],["pin","&#xf045;"],["pin_drop","&#xe55e;"],["near_me","&#xe569;"],["my_location","&#xe55c;"],["gps_fixed","&#xe55c;"],["navigation","&#xe55d;"],["explore","&#xe87a;"],["map","&#xe55b;"],["restaurant","&#xe56c;"],["local_cafe","&#xeb44;"],["coffee","&#xefef;"],["local_bar","&#xe540;"],["hotel","&#xe549;"],["local_hospital","&#xe548;"],["local_pharmacy","&#xe550;"],["local_atm","&#xe53e;"],["local_police","&#xef56;"],["local_fire_department","&#xef55;"],["local_post_office","&#xe554;"],["local_library","&#xe54b;"],["local_mall","&#xe54c;"],["local_grocery_store","&#xe8cc;"],["store","&#xe8d1;"],["school","&#xe80c;"],["church","&#xeaae;"],["mosque","&#xeab2;"],["synagogue","&#xeab0;"],["temple_buddhist","&#xeab3;"],["temple_hindu","&#xeaaf;"],["museum","&#xea36;"],["castle","&#xeab1;"],["stadium","&#xeb90;"],["theater_comedy","&#xea66;"],["pool","&#xeb48;"],["fitness_center","&#xeb43;"],["spa","&#xeb4c;"],["park","&#xea63;"],["forest","&#xea99;"],["attractions","&#xea52;"],["celebration","&#xea65;"],["festival","&#xea68;"],["nightlife","&#xea62;"],["sports","&#xea30;"],["sports_soccer","&#xea2f;"],["sports_basketball","&#xea26;"],["sports_football","&#xea29;"],["sports_tennis","&#xea32;"],["sports_golf","&#xea2a;"],["layers","&#xe53b;"],["layers_clear","&#xe53c;"],["terrain","&#xe564;"],["landscape","&#xe564;"],["share","&#xe80d;"],["favorite","&#xe87e;"],["star","&#xf09a;"],["home","&#xe9b2;"],["work","&#xe943;"],["person","&#xf0d3;"],["people","&#xea21;"],["trip","&#xe6fb;"],["warning","&#xf083;"],["emergency","&#xe1eb;"],["photo_camera","&#xe412;"],["shopping_bag","&#xf1cc;"],["search","&#xe8b6;"],["settings","&#xe8b8;"],["info","&#xe88e;"],["help","&#xe8fd;"],["close","&#xe5cd;"],["check","&#xe876;"],["add","&#xe145;"],["remove","&#xe15b;"],["edit","&#xe254;"],["delete","&#xe872;"],["refresh","&#xe5d5;"],["download","&#xe2c4;"],["upload","&#xe2c3;"],["visibility","&#xe8f4;"],["visibility_off","&#xe8f6;"]],nt="Material Symbols Outlined",er="https://fonts.gstatic.com/s/materialsymbolsoutlined/v261/kJEhBvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oFsI.woff2",tr="M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 16 40 16 40C16 40 32 24.8366 32 16C32 7.16344 24.8366 0 16 0Z";function nr(e){const n=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 40"><path d="${tr}" fill="${e}" stroke="white" stroke-width="1.5"/></svg>`;return`data:image/svg+xml,${encodeURIComponent(n)}`}function rr({source:e,sourceType:n="json",sourceConfig:t,iconField:r,iconFontFamily:o="material-symbols",iconFontPath:i,iconFontMap:s,iconColor:a="#3b82f6",iconSize:c=20,iconHaloColor:d="#fff",iconHaloWidth:h=1,iconStyle:y,iconAnchor:f="center",iconBgShape:g="pin",iconBgShapeColor:p,iconBgShapeSize:C=24,iconBgStrokeColor:L,iconBgStrokeWidth:w=0,iconBgPadding:S=0,iconBgCornerRadius:x=0,showLabel:Z=!0,labelField:z,labelColor:P="#333",labelSize:M=11,labelAnchor:A="top",labelOffset:O=[0,0],labelHaloColor:V="#fff",labelHaloWidth:D=2,labelStyle:_,textAllowOverlap:F=!1,iconAllowOverlap:b=!0,zoomAdaption:H=!0,zoomShowLabel:B=14,zoomDegradeToPoint:Y=10,onClick:t1,onMouseEnter:K,onMouseLeave:R,...a1}){const G=h1(),[n1,r1]=u.useState(!1),[I,W]=u.useState(!1),[l1,X]=u.useState(!1),[s1,u1]=u.useState(14),E=u.useRef(!1);u.useEffect(()=>{if(!G||g!=="pin"||!p)return;const e1=nr(p);G.addImage("glyph-pin-bg",e1),X(!0)},[G,g,p]);const{fontFamily:m,fontPath:k,iconMappings:v}=u.useMemo(()=>{switch(o){case"material-symbols":return{fontFamily:nt,fontPath:er,iconMappings:R5};default:return{fontFamily:o,fontPath:i??null,iconMappings:s??[]}}},[o,i,s]);if(u.useEffect(()=>{if(!G||E.current)return;E.current=!0;let e1=!1;return(async()=>{k&&G.addFontFace(m,k),v.length>0&&G.addIconFonts(v);try{if(m===nt){const N=v.slice(0,10).map(([,Q])=>String.fromCharCode(parseInt(Q.replace("&#x","").replace(";",""),16))).join("");await document.fonts.load(`${c}px "${m}"`,N)}else k&&await new Promise(N=>{const Q=setTimeout(()=>{N()},3e3),j=()=>{clearTimeout(Q),G.off("fontloaded",j),N()};G.on("fontloaded",j),document.fonts.load(`${c}px "${m}"`).then(()=>{clearTimeout(Q),G.off("fontloaded",j),N()}).catch(()=>{clearTimeout(Q),G.off("fontloaded",j),N()})})}catch{console.warn(`[GlyphLayer] 字体 "${m}" 加载超时,尝试继续渲染`)}try{const Q=`${c}px "${m}"`;document.fonts.check(Q,"X")||await document.fonts.ready}catch{}e1||r1(!0)})(),()=>{e1=!0}},[G,m,k,v,c]),u.useEffect(()=>{if(!G)return;const e1=()=>W(!0);return G.loaded?e1():G.on("loaded",e1),()=>{G.off("loaded",e1)}},[G]),u.useEffect(()=>{if(!G||!H)return;const e1=()=>{u1(G.getZoom())};return e1(),G.on("zoomchange",e1),()=>{G.off("zoomchange",e1)}},[G,H]),!n1||!I||g==="pin"&&p&&!l1)return null;const J=z??r,$=!H||s1>=B;return H&&s1<Y?l.jsx(C1,{source:e,sourceType:n,sourceConfig:t,shape:"circle",color:typeof a=="string"?a:"#3b82f6",size:4,style:{opacity:.7}}):l.jsxs(l.Fragment,{children:[l.jsx(C1,{...a1,source:e,sourceType:n,sourceConfig:t,shapeField:r,shapeValues:"text",color:a,size:c,style:{fontFamily:m,iconfont:!0,textAllowOverlap:b,textAnchor:f,backgroundColor:p,backgroundPadding:S,backgroundRadius:x,backgroundShape:g==="pin"?void 0:"circle",stroke:L,strokeWidth:w,...y??{}},onClick:t1,onMouseEnter:K,onMouseLeave:R}),Z&&$&&l.jsx(C1,{source:e,sourceType:n,sourceConfig:t,shapeField:J,shapeValues:"text",color:P,size:M,style:{textAnchor:A,textOffset:O,stroke:V,strokeWidth:D,fontWeight:"500",textAllowOverlap:F,..._??{}}})]})}function rt({source:e,sourceType:n="json",sourceConfig:t,iconField:r,iconMap:o,iconSize:i=24,iconAnchor:s="bottom",size:a,showLabel:c=!0,labelField:d,labelColor:h="#333",labelSize:y=12,labelAnchor:f="top",labelOffset:g=[0,0],labelHaloColor:p="#fff",labelHaloWidth:C=2,labelStyle:L,textAllowOverlap:w=!1,iconAllowOverlap:S=!0,zoomAdaption:x=!0,zoomShowLabel:Z=15,zoomDegradeToPoint:z=10,onClick:P,onMouseEnter:M,onMouseLeave:A,...O}){const V=h1(),[D,_]=u.useState(!1),[F,b]=u.useState(15),H=u.useMemo(()=>Object.keys(o),[o]),B=a??i,Y=d??r;if(u.useEffect(()=>{V&&(H.forEach(R=>{V.addImage(R,o[R])}),_(!0))},[V,H,o]),u.useEffect(()=>{if(!V||!x)return;const R=()=>{b(V.getZoom())};return R(),V.on("zoomchange",R),()=>{V.off("zoomchange",R)}},[V,x]),!D)return null;const t1=!x||F>=Z;return x&&F<z?l.jsx(C1,{source:e,sourceType:n,sourceConfig:t,shape:"circle",color:O.color??"#3b82f6",size:6,style:{opacity:.8}}):l.jsxs(l.Fragment,{children:[l.jsx(C1,{source:e,sourceType:n,sourceConfig:t,shapeField:r,shapeValues:H,size:B,style:{...O.style??{},anchor:s,allowOverlap:S},onClick:P,onMouseEnter:M,onMouseLeave:A}),c&&t1&&l.jsx(C1,{source:e,sourceType:n,sourceConfig:t,shapeField:Y,shapeValues:"text",color:h,size:y,style:{textAnchor:f,textOffset:g,stroke:p,strokeWidth:C,fontWeight:"500",textAllowOverlap:w,...L??{}}})]})}const or={gaode:()=>"https://webst0{1-4}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",google:()=>"https://gwxc.shipxy.com/tile.g?z={z}&x={x}&y={y}",tianditu:(e="4043dde46add842282bacc412299311d")=>`https://t{0-7}.tianditu.gov.cn/DataServer?T=img_w&X={x}&Y={y}&L={z}&tk=${e}`},sr={gaode:"高德卫星",tianditu:"天地图卫星",google:"谷歌卫星"};function ir({provider:e="gaode",zIndex:n=0,opacity:t=1,tiandituToken:r,visible:o=!0}){if(!o)return null;const i=or[e](r);return l.jsx(U0,{source:i,sourceType:"rasterTile",sourceConfig:{parser:{type:"rasterTile",tileSize:256,zoomOffset:1}},zIndex:n,opacity:t})}function lr({source:e,sourceType:n="json",sourceConfig:t,shape:r="arc",color:o="#2563EB",gradientColors:i,colorMode:s="single",colorField:a,colorValues:c,lineWidth:d=1.5,lineWidthRange:h,weightField:y="weight",opacity:f=.8,blur:g=.6,animate:p=!1,animateSpeed:C=1,animateTrailLength:L=.3,animateDuration:w=2e3,showNodes:S=!0,nodeColor:x,nodeSize:Z=4,nodeSizeRange:z,nodePulse:P=!1,showTooltip:M=!0,showNodePopup:A=!0,activeColor:O="#FFD93D",onArcHover:V,onArcClick:D,onNodeClick:_,style:F}){const b=u.useMemo(()=>t??{x:"fromLng",y:"fromLat",x1:"toLng",y1:"toLat"},[t]),H=u.useMemo(()=>s==="gradient"&&i?i:o,[s,i,o]),B=u.useMemo(()=>d,[d,h]),Y=u.useMemo(()=>{if(p)return{enable:!0,speed:C,duration:w,trailLength:L}},[p,C,w,L]),t1=u.useMemo(()=>({opacity:f,blur:g,...F}),[f,g,F]),K=u.useMemo(()=>{if(!S||typeof e=="string")return[];const X=new Map,s1=b.x??"fromLng",u1=b.y??"fromLat",E=b.x1??"toLng",m=b.y1??"toLat";return e.forEach(k=>{const v=`${k[s1]}_${k[u1]}`,J=`${k[E]}_${k[m]}`;X.has(v)||X.set(v,{lng:Number(k[s1]),lat:Number(k[u1]),degree:0,name:k.fromName}),X.has(J)||X.set(J,{lng:Number(k[E]),lat:Number(k[m]),degree:0,name:k.toName}),X.get(v).degree++,X.get(J).degree++}),Array.from(X.values())},[e,S,b]),R=x??o,[a1,G]=u.useState({visible:!1,lng:0,lat:0,from:"",to:"",weight:0}),n1=u.useCallback(X=>{if(V==null||V(X),!M)return;const s1=X.feature;s1&&G({visible:!0,lng:X.lng,lat:X.lat,from:String(s1.fromName??""),to:String(s1.toName??""),weight:Number(s1[y]??0)})},[V,M,y]),r1=u.useCallback(()=>{G(X=>({...X,visible:!1}))},[]),[I,W]=u.useState({visible:!1,lng:0,lat:0,name:"",degree:0}),l1=u.useCallback(X=>{if(_==null||_(X),!A)return;const s1=X.feature;s1&&W({visible:!0,lng:X.lng,lat:X.lat,name:String(s1.name??""),degree:Number(s1.degree??0)})},[_,A]);return l.jsxs(l.Fragment,{children:[l.jsx(w1,{source:e,sourceType:n,sourceConfig:b,shape:r,color:H,colorField:s==="field"?a:void 0,colorValues:s==="field"?c:void 0,size:B,sizeField:h?y:void 0,sizeValues:h||void 0,animate:Y,active:O?{color:O}:!1,style:t1,onMouseMove:n1,onMouseLeave:r1,onClick:D}),S&&K.length>0&&l.jsx(C1,{source:K,sourceConfig:{x:"lng",y:"lat"},color:R,size:Z,sizeField:z?"degree":void 0,sizeValues:z,shape:"circle",style:{opacity:.9,strokeWidth:1,stroke:"#fff"},animate:P?{enable:!0,speed:.6}:void 0,active:O?{color:O}:!1,onClick:l1}),M&&a1.visible&&l.jsx(ie,{longitude:a1.lng,latitude:a1.lat,visible:!0,variant:"dark",items:[{label:"起点",value:a1.from},{label:"终点",value:a1.to},{label:"流量",value:a1.weight}]}),A&&I.visible&&l.jsx(_1,{longitude:I.lng,latitude:I.lat,content:`<div style="min-width:80px"><div style="font-weight:700;font-size:13px;margin-bottom:4px">${I.name||"节点"}</div><div style="font-size:12px;color:#64748b">连接数: ${I.degree}</div></div>`,closeButton:!0,size:"compact",onClose:()=>W(X=>({...X,visible:!1}))})]})}function ar({path:e,segments:n,stops:t=[],routeType:r="straight",onRouteQuery:o,onRouteResult:i,color:s="#2563eb",lineWidth:a=4,opacity:c=.9,glow:d=!0,animate:h=!1,animateSpeed:y=1,stopSize:f=14,stopColor:g,endColor:p="#10b981",showStopIndex:C=!0,stopRenderer:L="point",stopMarkerVariant:w="circle",stopIconMap:S,stopIconField:x="iconValue",stopIconSize:Z=16,stopIconAnchor:z="bottom",showStopPopup:P=!0,activeColor:M="#fbbf24",onPathClick:A,onStopClick:O}){const[V,D]=u.useState(null),_=u.useRef(0),F=r==="walking"||r==="cycling"||r==="driving"||r==="transit";u.useEffect(()=>{if(!F||!o||t.length<2){D(null);return}const I=[t[0].lng,t[0].lat],W=[t[t.length-1].lng,t[t.length-1].lat],l1=t.length>2?t.slice(1,-1).map(s1=>[s1.lng,s1.lat]):[],X=++_.current;o({origin:I,destination:W,waypoints:l1.length>0?l1:void 0,routeType:r}).then(s1=>{_.current===X&&(D(s1),i==null||i(s1))}).catch(()=>{_.current===X&&D(null)})},[F,o,t,r]);const b=F&&V?V.path:e,H=F&&(V!=null&&V.segments)?V.segments:n,B=F&&(V!=null&&V.stops)?V.stops:[],Y=r==="arc"?"arc":"line",t1=u.useMemo(()=>H&&H.length>0?{type:"FeatureCollection",features:H.map((I,W)=>({type:"Feature",properties:{color:I.color||s,width:I.width||a,index:W},geometry:{type:"LineString",coordinates:I.coordinates}}))}:b&&b.length>1?{type:"FeatureCollection",features:[{type:"Feature",properties:{color:s,width:a},geometry:{type:"LineString",coordinates:b}}]}:null,[b,H,s,a]),K=H&&H.some(I=>I.color),R=u.useMemo(()=>{const I=b??(H&&H.length>0?[...H[0].coordinates.slice(0,1),...H[H.length-1].coordinates.slice(-1)]:null);let W=[...t,...B];if(I&&I.length>=2){const[l1,X]=I[0],[s1,u1]=I[I.length-1],E=t.some(k=>Math.abs(k.lng-l1)<1e-6&&Math.abs(k.lat-X)<1e-6),m=t.some(k=>Math.abs(k.lng-s1)<1e-6&&Math.abs(k.lat-u1)<1e-6);E||(W=[{lng:l1,lat:X,name:"起点",type:"start"},...W]),m||(W=[...W,{lng:s1,lat:u1,name:"终点",type:"end"}])}return W.map((l1,X)=>({...l1,index:l1.index??X+1,type:l1.type??(X===0?"start":X===W.length-1?"end":"waypoint"),stopColor:l1.type==="end"||!l1.type&&X===W.length-1?p:g??s,iconValue:l1.icon??"marker",indexLabel:String(l1.index??X+1),markerColorValue:l1.markerColor??cr(l1.type??(X===0?"start":X===W.length-1?"end":"waypoint"))}))},[t,B,b,H,s,g,p]),a1=u.useMemo(()=>{if(L!=="icon")return;if(S)return S;const I=[...new Set(R.map(W=>W.iconValue).filter(Boolean))];if(I.length)return Z0(I,{fill:g??s,size:Math.max(24,Z+8)})},[L,S,R,g,s,Z]),[G,n1]=u.useState({visible:!1,lng:0,lat:0,name:"",index:""}),r1=u.useCallback(I=>{if(O==null||O(I),!P)return;const W=I.feature;W&&n1({visible:!0,lng:I.lng,lat:I.lat,name:String(W.name??""),index:String(W.indexLabel??W.index??"")})},[O,P]);return t1?l.jsxs(l.Fragment,{children:[d&&l.jsx(w1,{source:t1,sourceType:"geojson",shape:Y,color:K?void 0:s,colorField:K?"color":void 0,colorValues:K?H.map(I=>I.color||s):void 0,size:a*2.5,style:{opacity:.15}}),l.jsx(w1,{source:t1,sourceType:"geojson",shape:Y,color:K?void 0:s,colorField:K?"color":void 0,colorValues:K?H.map(I=>I.color||s):void 0,size:K?void 0:a,sizeField:K?"width":void 0,sizeValues:K?H.map(I=>I.width||a):void 0,style:{opacity:c},active:M?{color:M}:!1,onClick:A}),h&&l.jsx(w1,{source:t1,sourceType:"geojson",shape:"line",color:"#ffffff",size:Math.max(1.5,a*.5),style:{opacity:.6,lineType:"dash",lineDash:[8,16]},animate:{enable:!0,speed:y,duration:1500},zIndex:10}),R.length>0&&L==="point"&&l.jsx(C1,{source:R,sourceConfig:{x:"lng",y:"lat"},colorField:"stopColor",colorValues:[...new Set(R.map(I=>I.stopColor))],size:f,shape:"circle",style:{opacity:1,strokeWidth:2,stroke:"#ffffff"},active:M?{color:M}:!1,onClick:r1}),R.length>0&&L==="point"&&C&&l.jsx(C1,{source:R,sourceConfig:{x:"lng",y:"lat"},shapeField:"indexLabel",shapeValues:"text",color:"#ffffff",size:Math.max(10,Math.round(f*.75)),style:{textAnchor:"center",stroke:"rgba(18, 28, 42, 0.28)",strokeWidth:1.5,fontWeight:"700",textAllowOverlap:!0}}),R.length>0&&L==="icon"&&a1&&l.jsx(rt,{source:R,sourceType:"json",sourceConfig:{x:"lng",y:"lat"},iconField:x,iconMap:a1,iconSize:Z,iconAnchor:z,showLabel:C,labelField:"indexLabel",labelColor:"#ffffff",labelSize:11,labelAnchor:"top",labelOffset:[0,z==="bottom"?Math.max(10,Math.round(Z*.6)):0],labelHaloColor:"rgba(18, 28, 42, 0.35)",labelHaloWidth:2,onClick:r1}),R.length>0&&L==="marker"&&R.map((I,W)=>{const l1=I.markerVariant??w,X=I.markerColorValue,s1=ur(I.indexLabel,I.stopColor,C,l1);return l.jsx(A1,{longitude:I.lng,latitude:I.lat,variant:l1,color:X,icon:I.icon,content:s1,label:s1?void 0:C?I.indexLabel:void 0,onClick:u1=>{r1({layerId:"route-stop-marker",layerType:"point",originalEvent:u1,lng:I.lng,lat:I.lat,feature:I})}},`route-stop-marker-${W}`)}),P&&G.visible&&l.jsx(_1,{longitude:G.lng,latitude:G.lat,content:`<div style="min-width:100px"><div style="font-weight:700;font-size:13px;margin-bottom:4px">${G.name}</div><div style="font-size:12px;color:#64748b">第 ${G.index} 站</div></div>`,closeButton:!0,size:"compact",onClose:()=>n1(I=>({...I,visible:!1}))})]}):null}function cr(e){switch(e){case"start":return"success";case"end":return"error";default:return"primary"}}function ur(e,n,t,r){if(!t||r!=="circle"&&r!=="dot")return;const o=r==="circle"?24:18,i=r==="circle"?11:10;return l.jsx("div",{style:{width:o,height:o,borderRadius:"9999px",border:"2px solid #ffffff",background:n,color:"#ffffff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:i,lineHeight:1,fontWeight:700,boxShadow:"0 6px 12px rgba(0,0,0,0.14)"},children:e})}const ot=[73.482190241,3.8150178409999995,135.106618732,57.630045996],dr={type:"linear",colors:["rgba(92,58,16,0)","rgba(92,58,16,0)","#fabd08","#f1e93f","#f1ff8f","#fcfff7"],positions:[0,3,9,22.5,45,90]};function st(e){const n=e[0]/2003750834e-2*180;let t=e[1]/2003750834e-2*180;return t=180/Math.PI*(2*Math.atan(Math.exp(t*Math.PI/180))-Math.PI/2),[n,t]}function hr({url:e,extent:n=ot,renderMode:t="raster",bandIndex:r=0,domain:o=[0,90],noDataValue:i=0,rampColors:s=dr,clampLow:a=!1,clampHigh:c=!1,bands:d=[0,1,2],countCut:h,rMinMax:y,gMinMax:f,bMinMax:g,opacity:p=.8,mask:C=!1,maskData:L}){const[w,S]=u.useState(null),[x,Z]=u.useState(null),[z,P]=u.useState(null);u.useEffect(()=>{let b=!1;async function H(){try{const B=await import("geotiff"),Y=await fetch(e);if(!Y.ok)throw new Error(`Fetch failed: ${Y.status}`);const t1=await Y.arrayBuffer(),R=await(await B.fromArrayBuffer(t1)).getImage(),a1=R.getWidth(),G=R.getHeight(),n1=await R.readRasters();let r1;try{const I=R.getBoundingBox();I&&I.length===4&&(r1=I)}catch{}b||(S({rasters:n1,width:a1,height:G,tiffExtent:r1}),P(null))}catch(B){b||(P(B instanceof Error?B.message:"Failed to load TIFF"),console.error("[TiffRasterLayer] Load error:",B))}}return H(),()=>{b=!0}},[e]),u.useEffect(()=>{if(!C||!L)return;let b=!1;return typeof L=="string"?fetch(L).then(H=>H.json()).then(H=>{b||Z(H)}).catch(H=>console.error("[TiffRasterLayer] Mask load error:",H)):Z(L),()=>{b=!0}},[C,L]);const M=u.useMemo(()=>{if(n!==ot)return n;if(w!=null&&w.tiffExtent){const[b,H,B,Y]=w.tiffExtent;if(Math.abs(b)>180||Math.abs(B)>180){const t1=st([b,H]),K=st([B,Y]);return[t1[0],t1[1],K[0],K[1]]}return w.tiffExtent}return n},[n,w==null?void 0:w.tiffExtent]),A=u.useMemo(()=>{if(!w)return null;if(t==="rgb"){const b={type:"rgb",width:w.width,height:w.height,bands:d,extent:M};return y&&(b.RMinMax=y),f&&(b.GMinMax=f),g&&(b.BMinMax=g),h&&(b.countCut=h),{parser:b}}return t==="ndi"?{parser:{type:"ndi",width:w.width,height:w.height,bands:d,extent:M}}:{parser:{type:"raster",width:w.width,height:w.height,extent:M}}},[w,t,d,M]),O=u.useMemo(()=>t==="rgb"?{opacity:p}:t==="ndi"?{domain:o,rampColors:s,opacity:p}:{clampLow:a,clampHigh:c,domain:o,noDataValue:i,rampColors:s,opacity:p},[t,a,c,o,i,s,p]),V=u.useMemo(()=>w?t==="rgb"||t==="ndi"?w.rasters:w.rasters[r]:null,[w,t,r]),D=h1(),_=u.useRef(null);u.useRef(!1);const F=!C||!!x;return u.useEffect(()=>{if(!D||!A||!V||!F)return;_.current&&(D.removeLayer(_.current),_.current=null);const b={zIndex:10};C&&x&&(b.mask=!0,b.maskfence=x);const H=new p1.RasterLayer(b);return H.source(V,{parser:A.parser}),H.style(O),D.addLayer(H),_.current=H,()=>{_.current&&D&&(D.removeLayer(_.current),_.current=null)}},[D,A,V,F,x]),null}function it({position:e="bottomleft",className:n,style:t,children:r}){const{positionClassName:o}=L1(e),i=v1();if(!r)return null;const s=l.jsx("div",{className:`l7-control l7-control-legend l7-control--glass${n?` ${n}`:""}`,style:{padding:"12px 14px",borderRadius:8,maxHeight:"40%",overflowY:"auto",...t},children:r});return i?s:l.jsx("div",{className:`l7-control-anchor ${o}`,children:s})}y1.mark(it);function lt({logos:e,position:n="bottomleft",className:t,style:r}){const{positionClassName:o}=L1(n),i=v1(),s=l.jsx("div",{className:`l7-control l7-control-logo${t?` ${t}`:""}`,style:r,children:e.map((a,c)=>{const d=l.jsx("img",{src:a.src,alt:a.alt??"logo",width:a.width??24,height:a.width??24,style:{objectFit:"contain",display:"block"}},c);return a.href?l.jsx("a",{href:a.href,target:"_blank",rel:"noopener noreferrer",className:"l7-control-logo-link",children:d},c):l.jsx("div",{className:"l7-control-logo-link",children:d},c)})});return i?s:l.jsx("div",{className:`l7-control-anchor ${o}`,children:s})}y1.mark(lt);function fr({children:e,defaultSnap:n="collapsed",collapsedHeight:t=80,halfRatio:r=.45,expandedRatio:o=.85,onSnapChange:i,className:s,showHandle:a=!0,borderRadius:c=32}){const d=u.useRef(null),h=u.useRef(0),y=u.useRef(0),f=u.useRef(!1),[g,p]=u.useState(0),[C,L]=u.useState(n),[w,S]=u.useState(!1),x=u.useCallback(()=>{var D;const V=(D=d.current)==null?void 0:D.offsetParent;return V?V.clientHeight:window.innerHeight},[]),Z=u.useCallback(V=>{const D=x();switch(V){case"collapsed":return t;case"half":return D*r;case"expanded":return D*o}},[t,r,o,x]);u.useEffect(()=>{p(Z(n))},[n,Z]);const z=u.useCallback((V,D)=>{const _=Z("collapsed"),F=Z("half"),b=Z("expanded");let H;if(Math.abs(D)>.5)D>0?H=V>F?"expanded":"half":H=V<F?"collapsed":"half";else{const B=Math.abs(V-_),Y=Math.abs(V-F),t1=Math.abs(V-b),K=Math.min(B,Y,t1);K===B?H="collapsed":K===Y?H="half":H="expanded"}S(!0),L(H),p(Z(H)),i==null||i(H),setTimeout(()=>S(!1),300)},[Z,i]),P=u.useCallback(V=>{f.current=!0,h.current=V.touches[0].clientY,y.current=g,S(!1)},[g]),M=u.useCallback(V=>{if(!f.current)return;const D=h.current-V.touches[0].clientY,_=x()*o,F=Math.max(t,Math.min(_,y.current+D));p(F)},[t,o,x]),A=u.useCallback(V=>{if(!f.current)return;f.current=!1;const _=(h.current-V.changedTouches[0].clientY)/100;z(g,_)},[g,z]),O=u.useCallback(V=>{f.current=!0,h.current=V.clientY,y.current=g,S(!1);const D=F=>{if(!f.current)return;const b=h.current-F.clientY,H=x()*o,B=Math.max(t,Math.min(H,y.current+b));p(B)},_=F=>{f.current=!1;const H=(h.current-F.clientY)/100,B=x()*o;z(Math.max(t,Math.min(B,y.current+(h.current-F.clientY))),H),document.removeEventListener("mousemove",D),document.removeEventListener("mouseup",_)};document.addEventListener("mousemove",D),document.addEventListener("mouseup",_)},[g,t,o,z,x]);return u.useCallback(V=>{S(!0),L(V),p(Z(V)),i==null||i(V),setTimeout(()=>S(!1),300)},[Z,i]),l.jsx("div",{ref:d,className:s,style:{position:"absolute",bottom:0,left:0,width:"100%",height:g,zIndex:1e3,pointerEvents:"auto",transition:w?"height 0.3s cubic-bezier(0.4, 0, 0.2, 1)":"none",willChange:"height",touchAction:"none"},children:l.jsxs("div",{style:{width:"100%",height:"100%",background:"var(--color-surface, #f8f9ff)",borderTopLeftRadius:c,borderTopRightRadius:c,boxShadow:"0 -10px 40px rgba(0, 0, 0, 0.15)",borderTop:"1px solid rgba(195, 198, 215, 0.2)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[l.jsx("div",{onTouchStart:P,onTouchMove:M,onTouchEnd:A,onMouseDown:O,style:{padding:"12px 0 16px",cursor:"grab",userSelect:"none",flexShrink:0},children:a&&l.jsx("div",{style:{width:48,height:6,borderRadius:3,background:"rgba(195, 198, 215, 0.5)",margin:"0 auto"}})}),l.jsx("div",{style:{flex:1,overflowY:C==="collapsed"?"hidden":"auto",overflowX:"hidden",padding:"0 16px",WebkitOverflowScrolling:"touch",msOverflowStyle:"none",scrollbarWidth:"none"},children:e})]})})}function pr({placeholder:e="搜索地点...",onSearch:n,onFilter:t,className:r,trailing:o}){const[i,s]=u.useState(""),a=u.useCallback(d=>{const h=d.target.value;s(h),n==null||n(h)},[n]),c=u.useCallback(()=>{s(""),n==null||n("")},[n]);return l.jsxs("div",{className:`glass-panel ${r??""}`,style:{display:"flex",alignItems:"center",padding:"12px 16px",borderRadius:16,boxShadow:"0 2px 8px rgba(0, 0, 0, 0.08)",border:"1px solid rgba(195, 198, 215, 0.3)"},children:[l.jsx("span",{className:"material-symbols-outlined",style:{color:"var(--color-primary, #004ac6)",marginRight:12,fontSize:22},children:"search"}),l.jsx("input",{type:"text",value:i,onChange:a,placeholder:e,style:{flex:1,border:"none",background:"transparent",outline:"none",fontSize:14,lineHeight:"20px",color:"var(--color-on-surface, #121c2a)"}}),i&&l.jsx("button",{onClick:c,style:{background:"none",border:"none",cursor:"pointer",padding:4,borderRadius:999,display:"flex",alignItems:"center",justifyContent:"center"},children:l.jsx("span",{className:"material-symbols-outlined",style:{fontSize:18,color:"var(--color-on-surface-variant, #434655)"},children:"close"})}),t&&l.jsx("button",{onClick:t,style:{background:"none",border:"none",cursor:"pointer",padding:4,borderRadius:999,display:"flex",alignItems:"center",justifyContent:"center",marginLeft:4},children:l.jsx("span",{className:"material-symbols-outlined",style:{fontSize:22,color:"var(--color-on-surface-variant, #434655)"},children:"tune"})}),o]})}function Ie(e,n){if(!n)return e;const t={...e};for(const r of Object.keys(n)){const o=n[r],i=t[r];o!==null&&typeof o=="object"&&!Array.isArray(o)&&i!==null&&typeof i=="object"&&!Array.isArray(i)?t[r]=Ie(i,o):o!==void 0&&(t[r]=o)}return t}function gr(e,n){return n?Ie(e,n):e}class yr extends u.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,t){var r,o;(o=(r=this.props).onError)==null||o.call(r,n,t)}render(){if(this.state.hasError){const{fallback:n}=this.props,{error:t}=this.state;return typeof n=="function"?n(t):n||l.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",height:"100%",padding:32,color:"#666",fontFamily:"system-ui, sans-serif"},children:[l.jsx("span",{className:"material-symbols-outlined",style:{fontSize:48,marginBottom:16,color:"#e53e3e"},children:"error"}),l.jsx("p",{style:{fontSize:16,fontWeight:600,marginBottom:8},children:"地图加载失败"}),l.jsx("p",{style:{fontSize:13,color:"#999"},children:(t==null?void 0:t.message)??"未知错误"})]})}return this.props.children}}return U.ADMIN_SEQUENTIAL_COLORS=J0,U.AiMap=d5,U.AiMapJSONSchema=L5,U.ArcFlowLayer=lr,U.BottomSheet=fr,U.BubbleLayer=M5,U.ChinaDistrict=_5,U.ControlContainer=ce,U.ControlRegistry=y1,U.ControlRenderer=k0,U.DEFAULT_CITY_SOURCE=K0,U.DEFAULT_DISTRICT_SOURCE=Q0,U.DEFAULT_PROVINCE_SOURCE=X0,U.DrawControl=be,U.ErrorBoundary=yr,U.EventBus=Be,U.EventBusProvider=qe,U.ExportImageControl=Ce,U.FillLayer=A5,U.FullscreenControl=fe,U.GAODE_THEME_PRESETS=ge,U.GeoLocateControl=pe,U.GlyphLayer=rr,U.HeatmapHexagonLayer=B0,U.HeatmapLayer=j0,U.HexagonLayer=B0,U.INDEPENDENT_MAP_THEME_PRESETS=ln,U.IconLayer=rt,U.ImageCalibrationControl=xe,U.ImageLayer=b5,U.InteractionRenderer=F0,U.LayerRenderer=a0,U.LayerSwitchControl=ve,U.LegendCategories=Me,U.LegendControl=it,U.LegendDiverging=He,U.LegendIcon=Ee,U.LegendLineWidth=Ve,U.LegendProportion=ke,U.LegendRamp=we,U.LegendRenderer=N0,U.LegendSize=ze,U.LegendThreshold=Se,U.LineLayer=w1,U.LogoControl=lt,U.MAKI_ICONS=z1,U.MAKI_ICON_NAMES=Qn,U.MapSceneRenderer=Re,U.MapThemeControl=ye,U.Marker=A1,U.MarkerClusterLayer=w5,U.MobileSheetLegend=O0,U.MobileToolbar=$0,U.MouseLocationControl=me,U.OPENFREEMAP_THEME_PRESETS=sn,U.PointLayer=C1,U.PolygonLayer=Q1,U.Popup=_1,U.RasterLayer=U0,U.ResponsiveProvider=c5,U.RouteLayer=ar,U.SATELLITE_PROVIDER_NAMES=sr,U.SatelliteLayer=ir,U.ScaleControl=he,U.SceneProvider=Ke,U.SchemaProvider=je,U.SearchBar=pr,U.ThemeProvider=Ye,U.TiffRasterLayer=hr,U.Tooltip=ie,U.ZoomControl=ue,U.adaptHeatmapLayer=s0,U.adaptImageLayer=l0,U.adaptLineLayer=r0,U.adaptPointLayer=n0,U.adaptPolygonLayer=o0,U.adaptRasterLayer=i0,U.applyControlDefaults=De,U.applyLayerDefaults=_e,U.applyMapDefaults=j1,U.applyResponsiveOverrides=gr,U.applySchemaDefaults=ee,U.createBasemap=Qe,U.createEventBus=Ue,U.createMakiIconMap=Rn,U.createMakiPinMap=Z0,U.cx=d1,U.deepMerge=Ie,U.diffSchema=y5,U.hexToRgba=Dt,U.makiIconUrl=E0,U.makiPinUrl=A0,U.parseSchema=$e,U.useControlContainer=v1,U.useEventBus=te,U.useMapControl=L1,U.useMapPosition=oe,U.useResponsive=D0,U.useScene=h1,U.useSchema=Lt,U.useTheme=Je,U.validateAiMapSchema=m5,U.validateSchema=vt,Object.defineProperty(U,Symbol.toStringTag,{value:"Module"}),U})({},React,React,L7,ReactDOM,clsx,ReactDOM,Supercluster);
1
+ var AimapUI=(function(W,i,u,Ut,Ie,M0,k0,S0){"use strict";function z0(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const ge=z0(Ut),He={basemap:"map",center:[105,35],zoom:4,pitch:0,rotation:0};function Xe(e){return{basemap:e.basemap??He.basemap,engine:e.engine,token:e.token,style:e.style,center:e.center??[...He.center],zoom:e.zoom??He.zoom,pitch:e.pitch??He.pitch,rotation:e.rotation??He.rotation,minZoom:e.minZoom,maxZoom:e.maxZoom,bounds:e.bounds,gestureConfig:e.gestureConfig}}let H0=0;function V0(){return`aimap-layer-${++H0}`}function qt(e){return{id:e.id??V0(),type:e.type,name:e.name??e.type,visible:e.visible??!0,zIndex:e.zIndex??0,minZoom:e.minZoom,maxZoom:e.maxZoom,autoFit:e.autoFit??!1,source:e.source,sourceType:e.sourceType,sourceConfig:e.sourceConfig,color:e.color,colorField:e.colorField,colorValues:e.colorValues,size:e.size,sizeField:e.sizeField,sizeValues:e.sizeValues,shape:e.shape,shapeField:e.shapeField,shapeValues:e.shapeValues,style:e.style,filterField:e.filterField,filterValues:e.filterValues,animate:e.animate,active:e.active,select:e.select,events:e.events}}const E0={zoom:"topright",scale:"bottomleft",fullscreen:"topright",geoLocate:"topright",mapTheme:"topright",mouseLocation:"bottomright",exportImage:"topright",layerSwitch:"topright",draw:"topright"};function Yt(e){return{type:e.type,position:e.position??E0[e.type]??"topright",options:e.options}}const A0={breakpoint:768};function Z0(e){return{breakpoint:(e==null?void 0:e.breakpoint)??A0.breakpoint,mobile:e==null?void 0:e.mobile}}function it(e){return{map:Xe(e.map),layers:(e.layers??[]).map(qt),controls:(e.controls??[]).map(Yt),interactions:e.interactions??[],legends:e.legends??[],responsive:e.responsive?Z0(e.responsive):void 0,events:e.events}}function Xt(e){return it(e)}function F0(e){const t=[];if(e.basemap||t.push("map.basemap is required"),e.center){const[n,r]=e.center;(n<-180||n>180)&&t.push("map.center[0] (longitude) must be between -180 and 180"),(r<-90||r>90)&&t.push("map.center[1] (latitude) must be between -90 and 90")}return t}function T0(e,t){const n=[];return e.type||n.push(`layers[${t}].type is required`),e.source===void 0&&e.source,e.colorField&&!e.colorValues&&e.color,n}function N0(e){const t=[];return t.push(...F0(e.map)),(e.layers??[]).forEach((n,r)=>{t.push(...T0(n,r))}),{valid:t.length===0,errors:t}}const Gt=u.createContext(null);function Jt({schema:e,children:t}){return i.jsx(Gt.Provider,{value:e,children:t})}function I0(){return u.useContext(Gt)}class Kt{constructor(){this.listeners=new Map}on(t,n){return this.listeners.has(t)||this.listeners.set(t,new Set),this.listeners.get(t).add(n),()=>{var r;(r=this.listeners.get(t))==null||r.delete(n)}}once(t,n){const r=(...l)=>{n(...l),o()},o=this.on(t,r);return o}emit(t,...n){const r=this.listeners.get(t);r&&r.forEach(o=>{try{o(...n)}catch(l){console.error(`[aimapui EventBus] Error in event "${t}":`,l)}})}off(t){this.listeners.delete(t)}clear(){this.listeners.clear()}}function Qt(){return new Kt}const Rt=u.createContext(null);function e1({events:e,children:t}){const n=u.useRef(null);return n.current||(n.current=Qt()),u.useEffect(()=>{if(!e||!n.current)return;const r=n.current,o=[];for(const[l,s]of Object.entries(e))s&&o.push(r.on(l,s));return()=>{o.forEach(l=>l())}},[e]),i.jsx(Rt.Provider,{value:n.current,children:t})}function lt(){const e=u.useContext(Rt);if(!e)throw new Error("[aimapui] useEventBus must be used within an EventBusProvider");return e}const t1=u.createContext({resolvedTheme:"light",theme:"light",setTheme:()=>{},toggleTheme:()=>{}});function n1({defaultTheme:e="light",target:t="container",children:n}){const[r,o]=u.useState(e),[l,s]=u.useState("light");u.useEffect(()=>{const h=window.matchMedia("(prefers-color-scheme: dark)");s(h.matches?"dark":"light");const f=p=>{s(p.matches?"dark":"light")};return h.addEventListener("change",f),()=>h.removeEventListener("change",f)},[]);const a=r==="system"?l:r,c=u.useCallback(()=>{o(h=>h==="system"?l==="light"?"dark":"light":h==="light"?"dark":"light")},[l]);u.useEffect(()=>{t==="root"&&document.documentElement.setAttribute("data-theme",a)},[a,t]);const d=u.useMemo(()=>({resolvedTheme:a,theme:r,setTheme:o,toggleTheme:c}),[a,r,c]);return i.jsx(t1.Provider,{value:d,children:t==="container"?i.jsx("div",{"data-theme":a,style:{display:"contents"},children:n}):n})}function r1(){return u.useContext(t1)}const P0=u.createContext({isMobile:!1,breakpoint:768,width:typeof window<"u"?window.innerWidth:1024,schema:void 0});function D0({responsive:e,children:t}){const[n,r]=u.useState(typeof window<"u"?window.innerWidth:1024);u.useEffect(()=>{let a;const c=()=>{cancelAnimationFrame(a),a=requestAnimationFrame(()=>r(window.innerWidth))};return window.addEventListener("resize",c),()=>{window.removeEventListener("resize",c),cancelAnimationFrame(a)}},[]);const o=(e==null?void 0:e.breakpoint)??768,l=n<o,s=u.useMemo(()=>({isMobile:l,breakpoint:o,width:n,schema:e}),[l,o,n,e]);return i.jsx(P0.Provider,{value:s,children:t})}const o1=u.createContext(null);function s1({scene:e,children:t}){const n=u.useRef(e);return n.current=e,i.jsx(o1.Provider,{value:n.current,children:t})}function me(){return u.useContext(o1)}async function i1(e){var l,s,a;const t=e.basemap??He.basemap,n=e.token??"",r=e.style??"normal",o={center:e.center??He.center,zoom:e.zoom??He.zoom,pitch:e.pitch??He.pitch,rotation:e.rotation??He.rotation,minZoom:e.minZoom,maxZoom:e.maxZoom,dragEnable:((l=e.gestureConfig)==null?void 0:l.dragPan)??!0,zoomEnable:((s=e.gestureConfig)==null?void 0:s.pinchZoom)??!0,rotateEnable:((a=e.gestureConfig)==null?void 0:a.dragRotate)??!0};if(e.engine)return new e.engine({...o,style:r,token:n});switch(t){case"gaode":{const{GaodeMap:c}=await import("@antv/l7-maps/gaode");return new c({...o,style:$0(r),token:n})}case"mapbox":{const{Mapbox:c}=await import("@antv/l7-maps/mapbox");return new c({...o,style:_0(r),token:n})}case"tianditu":{const{TMap:c}=await import("@antv/l7-maps/tianditu");return new c({...o,token:n})}case"tencent":{const{TencentMap:c}=await import("@antv/l7-maps/tencent");return new c({...o,token:n})}case"baidu":{const{BaiduMap:c}=await import("@antv/l7-maps/baidu");return new c({...o,style:O0(r),token:n})}case"maplibre":{const{MapLibre:c}=await import("@antv/l7-maps/maplibre");return new c({...o,style:B0(r),token:n})}case"google":{const{GoogleMap:c}=await import("@antv/l7-maps/google"),d=new c({...o,style:j0(r),token:n});return W0(d),d}case"map":default:{const{Map:c}=await import("@antv/l7-maps/simple");return new c({center:e.center??He.center,zoom:e.zoom??He.zoom})}}}function $0(e){return{light:"light",dark:"dark",normal:"normal",darkblue:"dark",satellite:"satellite"}[e]??e}function _0(e){return{light:"https://tiles.openfreemap.org/styles/positron",dark:"https://tiles.openfreemap.org/styles/dark",normal:"https://tiles.openfreemap.org/styles/bright",liberty:"https://tiles.openfreemap.org/styles/liberty",fiord:"https://tiles.openfreemap.org/styles/fiord"}[e]??e}function O0(e){return{light:"light",dark:"dark",normal:"normal",darkblue:"dark",satellite:"satellite"}[e]??e}function j0(e){return{light:"roadmap",dark:"roadmap",normal:"roadmap",darkblue:"roadmap",satellite:"satellite",hybrid:"hybrid",terrain:"terrain"}[e]??"roadmap"}function B0(e){return{light:"https://tiles.openfreemap.org/styles/positron",dark:"https://tiles.openfreemap.org/styles/dark",normal:"https://tiles.openfreemap.org/styles/bright",liberty:"https://tiles.openfreemap.org/styles/liberty",fiord:"https://tiles.openfreemap.org/styles/fiord"}[e]??e}function W0(e){const t=["zoomControl","mapTypeControl","streetViewControl","fullscreenControl","scaleControl","rotateControl","panControl"],n={};for(const s of t)n[s]=!1;const r=()=>{const s=e.map;if(!s||typeof s.setOptions!="function")return!1;s.setOptions(n);const a=s.setOptions.bind(s);return s.setOptions=c=>{const d={...c};for(const h of t)h in d&&delete d[h];a(d)},!0};if(r())return;let o=0;const l=setInterval(()=>{o+=1,(r()||o>100)&&clearInterval(l)},50)}function l1({mapSchema:e,children:t,onSceneReady:n,mapEventHandlers:r,events:o,className:l,style:s}){const a=u.useRef(null),c=u.useRef(null),[d,h]=u.useState(null),f=u.useRef(n);f.current=n;const p=u.useRef(r);p.current=r;const g=lt(),y=u.useCallback((k,L)=>{var M,H,N;if(L.basemap==="map")return;const z=((M=L.gestureConfig)==null?void 0:M.dragPan)??!0,E=((H=L.gestureConfig)==null?void 0:H.pinchZoom)??!0,T=((N=L.gestureConfig)==null?void 0:N.dragRotate)??!0;try{const V=k.mapService;if(V&&typeof V.setMapStatus=="function"&&V.setMapStatus({dragEnable:z,zoomEnable:E,rotateEnable:T,doubleClickZoom:E}),L.basemap==="google"&&(V!=null&&V.map)){const F=V.map;typeof F.setOptions=="function"&&F.setOptions({zoomControl:!1,mapTypeControl:!1,streetViewControl:!1,fullscreenControl:!1,scaleControl:!1,rotateControl:!1,panControl:!1})}}catch{}},[]);u.useEffect(()=>{if(!a.current)return;let k=!1;const L=Xe(e),z=T=>{if(k||!a.current)return;const M=new Ut.Scene({id:a.current,map:T,logoVisible:!1});c.current=M,M.on("loaded",()=>{var H;k||(y(M,L),h(M),(H=f.current)==null||H.call(f,M),E(M))}),L.bounds&&M.on("loaded",()=>{try{const[H,N]=L.bounds;M.fitBounds([H[0],H[1],N[0],N[1]])}catch{}})};if(L.engine){const T={center:L.center,zoom:L.zoom,pitch:L.pitch,rotation:L.rotation,minZoom:L.minZoom,maxZoom:L.maxZoom,style:L.style??"normal",token:L.token??""},M=new L.engine(T);z(M)}else i1(L).then(z);function E(T){T.on("mapmove",()=>{var H,N;const M={originalEvent:null,center:[T.getCenter().lng,T.getCenter().lat],zoom:T.getZoom(),pitch:T.getPitch(),rotation:T.getRotation()};(N=(H=p.current)==null?void 0:H.onMove)==null||N.call(H,M),o!=null&&o.mapMove&&g.emit(o.mapMove,M)}),T.on("zoomchange",()=>{var H,N;const M={originalEvent:null,center:[T.getCenter().lng,T.getCenter().lat],zoom:T.getZoom(),pitch:T.getPitch(),rotation:T.getRotation()};(N=(H=p.current)==null?void 0:H.onZoom)==null||N.call(H,M),o!=null&&o.mapZoom&&g.emit(o.mapZoom,M)})}return()=>{if(k=!0,c.current){try{c.current.destroy()}catch{}c.current=null}h(null)}},[e.basemap,e.engine,y]);const C=JSON.stringify(e.center),b=JSON.stringify(e.gestureConfig);u.useEffect(()=>{if(!d)return;const k=Xe(e);try{d.setCenter(k.center)}catch{}try{d.setZoom(k.zoom)}catch{}try{d.setPitch(k.pitch)}catch{}try{d.setRotation(k.rotation)}catch{}y(d,k)},[d,C,e.zoom,e.pitch,e.rotation,b,y]);const x=u.useCallback(()=>{if(c.current)try{const k=c.current.map;k&&typeof k.resize=="function"&&k.resize()}catch{}},[]);return u.useEffect(()=>(window.addEventListener("resize",x),()=>window.removeEventListener("resize",x)),[x]),i.jsx("div",{ref:a,className:l??"aimapui-container",style:s??{width:"100%",height:"100%"},children:d&&i.jsx(s1,{scene:d,children:t})})}function a1(e){if(e.colorField)return{field:e.colorField,values:e.colorValues};if(e.color)return{values:e.color}}function U0(e){if(e.sizeField)return{field:e.sizeField,values:e.sizeValues};if(e.size!==void 0)return{values:e.size}}function c1(e){if(e.shapeField)return{field:e.shapeField,values:e.shapeValues};if(e.shape)return{values:e.shape}}function at(e){return{color:a1(e),size:U0(e),shape:c1(e),style:e.style?{...e.style}:void 0}}function q0(e){var t,n;return{data:e.source,options:{parser:{type:"json",x:((t=e.sourceConfig)==null?void 0:t.x)??"lng",y:((n=e.sourceConfig)==null?void 0:n.y)??"lat"}}}}function Y0(e){var t,n;return{data:e.source,options:{parser:{type:"csv",x:(t=e.sourceConfig)==null?void 0:t.x,y:(n=e.sourceConfig)==null?void 0:n.y}}}}function ct(e){return{data:e.source,options:void 0}}function X0(e){var t;return(t=e.sourceConfig)!=null&&t.parser?{data:e.source,options:{parser:e.sourceConfig.parser}}:e.sourceType==="geojson"?ct(e):e.sourceType==="csv"?Y0(e):q0(e)}function u1(e){return{type:"PointLayer",sourceConfig:X0(e),visual:at(e),schema:e}}function d1(e){return{type:"LineLayer",sourceConfig:G0(e),visual:at(e),schema:e}}function G0(e){var t,n,r,o,l,s,a,c,d,h;return(t=e.sourceConfig)!=null&&t.parser?{data:e.source,options:{parser:e.sourceConfig.parser}}:e.sourceType==="geojson"?ct(e):e.sourceType==="csv"?{data:e.source,options:{parser:{type:"csv",x:(n=e.sourceConfig)==null?void 0:n.x,y:(r=e.sourceConfig)==null?void 0:r.y,x1:(o=e.sourceConfig)==null?void 0:o.x1,y1:(l=e.sourceConfig)==null?void 0:l.y1}}}:{data:e.source,options:{parser:{type:"json",x:((s=e.sourceConfig)==null?void 0:s.x)??"lng",y:((a=e.sourceConfig)==null?void 0:a.y)??"lat",x1:(c=e.sourceConfig)==null?void 0:c.x1,y1:(d=e.sourceConfig)==null?void 0:d.y1,coordinates:(h=e.sourceConfig)==null?void 0:h.coordinates}}}}function h1(e){return{type:"PolygonLayer",sourceConfig:J0(e),visual:at(e),schema:e}}function J0(e){var t;return e.sourceType==="geojson"?ct(e):{data:e.source,options:{parser:{type:"json",coordinates:((t=e.sourceConfig)==null?void 0:t.coordinates)??"coordinates"}}}}function p1(e){return{type:"HeatmapLayer",sourceConfig:K0(e),visual:Q0(e),schema:e}}function K0(e){var t,n,r,o,l,s,a,c;return(t=e.sourceConfig)!=null&&t.parser?{data:e.source,options:{parser:e.sourceConfig.parser,...e.sourceConfig.transforms?{transforms:e.sourceConfig.transforms}:{}}}:e.sourceType==="geojson"?{data:e.source,options:(n=e.sourceConfig)!=null&&n.transforms?{transforms:e.sourceConfig.transforms}:void 0}:e.sourceType==="csv"?{data:e.source,options:{parser:{type:"csv",x:(r=e.sourceConfig)==null?void 0:r.x,y:(o=e.sourceConfig)==null?void 0:o.y},...(l=e.sourceConfig)!=null&&l.transforms?{transforms:e.sourceConfig.transforms}:{}}}:{data:e.source,options:{parser:{type:"json",x:((s=e.sourceConfig)==null?void 0:s.x)??"lng",y:((a=e.sourceConfig)==null?void 0:a.y)??"lat"},...(c=e.sourceConfig)!=null&&c.transforms?{transforms:e.sourceConfig.transforms}:{}}}}function Q0(e){const t=e.sizeField?{field:e.sizeField,values:e.sizeValues}:void 0,n=a1(e),r=c1(e),o=e.style?{...e.style}:void 0;return{color:n,size:t,shape:r,style:o}}function f1(e){return{type:"RasterLayer",sourceConfig:R0(e),visual:en(e),schema:e}}function R0(e){var t;return(t=e.sourceConfig)!=null&&t.parser?{data:e.source,options:{parser:e.sourceConfig.parser}}:{data:e.source,options:e.sourceType==="raster"?{parser:{type:"raster",extent:[73.482190241,3.82501784112,135.106618732,53.557926206]}}:e.sourceType==="rasterTile"?{parser:{type:"rasterTile",tileSize:256,zoomOffset:1}}:void 0}}function en(e){return{color:void 0,size:void 0,shape:void 0,style:e.style?{...e.style}:void 0}}function g1(e){var t;return{type:"ImageLayer",sourceConfig:{data:e.source,options:{parser:((t=e.sourceConfig)==null?void 0:t.parser)??(e.sourceType==="image"?{type:"image"}:void 0)}},visual:{color:void 0,size:void 0,shape:void 0,style:e.style?{...e.style}:void 0},schema:e}}function ut(e,t,n,r){const o=u.useRef(t),l=u.useRef(n);o.current=t,l.current=n;const s=u.useRef(r);s.current=r;const a=u.useRef(null),c=u.useRef(e);c.current=e;const d=u.useCallback(()=>{const f=c.current;if(f)try{const p=f.mapService;if(p){const g=p.lngLatToContainer([o.current,l.current]);g&&s.current(g.x,g.y)}else{const g=f.lngLatToContainer([o.current,l.current]);g&&s.current(g.x,g.y)}}catch{}},[]),h=u.useCallback(()=>{d()},[d]);u.useEffect(()=>{if(!e)return;const f=()=>{setTimeout(()=>d(),0)};return e.loaded?f():e.on("loaded",f),()=>{e.off("loaded",f)}},[e,d]),u.useEffect(()=>{d()},[t,n,d]),u.useEffect(()=>{if(e){try{const f=e.mapService;if(f)return f.on("camerachange",h),f.on("viewchange",h),()=>{f.off("camerachange",h),f.off("viewchange",h)}}catch{}return e.on("camerachange",h),e.on("resize",h),()=>{e.off("camerachange",h),e.off("resize",h)}}},[e,h]),u.useEffect(()=>()=>{a.current!==null&&(cancelAnimationFrame(a.current),a.current=null)},[])}function fe(...e){return M0(e)}function tn(e,t=1){const n=e.replace("#","").match(/.{2}/g);if(!n||n.length<3)return e;const[r,o,l]=n.map(s=>parseInt(s,16));return`rgba(${r}, ${o}, ${l}, ${t})`}function Ge(e){return typeof e=="string"&&/<[a-zA-Z][^>]*>/.test(e)}let Ue=null;const dt=new Set;function nn(e,t){Ue&&Ue!==e&&dt.forEach(n=>n(e)),Ue=e}function rn(e){Ue===e&&(Ue=null)}function on(e,t,n,r,o,l,s,a){if(s!=="auto")return je(s,a);const c=t,d=l-t,h=e,f=o-e,p=8;if(c>=r+a+p)return je("top",a);if(d>=r+a+p)return je("bottom",a);if(f>=n+a+p)return je("right",a);if(h>=n+a+p)return je("left",a);const y=Object.entries({top:c,bottom:d,right:f,left:h}).sort((C,b)=>b[1]-C[1])[0][0];return je(y,a)}function je(e,t){switch(e){case"top":return{placement:"top",transform:`translate(-50%, -100%) translateY(-${t}px)`};case"bottom":return{placement:"bottom",transform:`translate(-50%, 0) translateY(${t}px)`};case"left":return{placement:"left",transform:`translate(-100%, -50%) translateX(-${t}px)`};case"right":return{placement:"right",transform:`translate(0, -50%) translateX(${t}px)`}}}function Je({onClick:e}){return i.jsx("button",{onClick:t=>{t.stopPropagation(),e()},className:"aimapui-popup-close-btn absolute top-2 right-2 size-8 flex items-center justify-center text-on-surface-variant rounded-lg transition-[color,background] duration-200 cursor-pointer bg-transparent border-none p-0 hover:text-on-surface hover:bg-surface-container-high [&_.material-symbols-outlined]:text-xl","aria-label":"关闭",children:i.jsx("span",{className:"material-symbols-outlined",children:"close"})})}const sn={top:"M0 0L8 8L16 0",bottom:"M0 8L8 0L16 8",left:"M0 0L8 8L0 16",right:"M8 0L0 8L8 16"};function Ke({placement:e}){const t=e==="top"||e==="bottom",n=t?16:8,r=t?8:16,o=t?"0 0 16 8":"0 0 8 16",l=sn[e];return i.jsx("div",{className:`aimapui-popup-tip-arrow aimapui-popup-tip-arrow--${e==="top"?"bottom":e==="bottom"?"top":e}`,children:i.jsxs("svg",{width:n,height:r,viewBox:o,fill:"none",children:[i.jsx("path",{d:l,fill:"rgba(248, 249, 255, 0.95)"}),i.jsx("path",{d:l,stroke:"rgba(195, 198, 215, 0.3)",strokeWidth:"0.5",fill:"none"})]})})}function ln({header:e,onClose:t}){return e.coverUrl?i.jsxs("div",{className:"aimapui-popup-cover relative aspect-video overflow-hidden",children:[i.jsx("img",{src:e.coverUrl,alt:e.title,className:"aimapui-popup-cover-img w-full h-full object-cover"}),i.jsx("button",{className:"aimapui-popup-close-btn aimapui-popup-close-btn--cover absolute top-2 right-2 size-8 bg-black/30 backdrop-blur-sm text-white flex items-center justify-center rounded-full border-none cursor-pointer transition-colors duration-200 z-10 hover:bg-black/50 [&_.material-symbols-outlined]:text-lg","aria-label":"关闭",onClick:n=>{n.stopPropagation(),t()},children:i.jsx("span",{className:"material-symbols-outlined",children:"close"})}),e.statusLabel&&i.jsxs("div",{className:"aimapui-popup-status-badge absolute bottom-2 left-2 flex items-center gap-1.5 px-2 py-0.5 bg-surface/90 backdrop-blur-sm rounded-md shadow-sm text-[10px] font-semibold uppercase tracking-wide text-on-surface",children:[i.jsx("div",{className:"size-2 rounded-full",style:{background:e.statusColor||"#10b981"}}),i.jsx("span",{children:e.statusLabel})]})]}):null}function an({header:e,onClose:t,hasCover:n,showStatusDot:r}){return i.jsxs("div",{className:fe("aimapui-popup-header relative flex items-center p-4",!n&&"pr-10"),children:[r&&e.statusDot&&i.jsx("div",{className:"size-2 rounded-full shrink-0 mr-2 animate-pulse",style:{background:e.statusDot}}),i.jsx("h3",{className:"aimapui-popup-title text-xl leading-7 font-semibold text-on-surface m-0 flex-1 min-w-0 truncate",children:e.title}),!n&&i.jsx(Je,{onClick:t})]})}function cn({attributes:e,size:t}){const n=t==="compact",r=t==="detailed",o=n?1:2;return i.jsx("div",{className:fe("aimapui-popup-attrs",n?"flex flex-col":"grid gap-2"),style:n?void 0:{gridTemplateColumns:`repeat(${o}, 1fr)`},children:e.map((l,s)=>r&&l.icon?i.jsxs("div",{className:"aimapui-popup-attr flex items-center gap-2",children:[i.jsx("div",{className:"aimapui-popup-attr-icon size-12 rounded-lg bg-surface-container-highest flex items-center justify-center text-primary shrink-0 [&_.material-symbols-outlined]:text-[28px]",children:i.jsx("span",{className:"material-symbols-outlined",children:l.icon})}),i.jsxs("div",{children:[i.jsx("p",{className:"aimapui-popup-attr-label text-sm leading-5 text-on-surface-variant m-0",children:l.label}),i.jsx("p",{className:"aimapui-popup-attr-value text-sm leading-5 font-medium text-on-surface m-0",style:l.valueColor?{color:l.valueColor}:void 0,children:l.value})]})]},s):i.jsxs("div",{className:fe("aimapui-popup-attr","flex justify-between items-baseline gap-2",n&&"py-2 border-b border-outline-variant/30 last:border-b-0 last:pb-0 first:pt-0"),children:[i.jsx("p",{className:"aimapui-popup-attr-label text-sm leading-5 text-on-surface-variant m-0",children:l.label}),i.jsx("p",{className:"aimapui-popup-attr-value text-sm leading-5 font-medium text-on-surface m-0 text-right",style:l.valueColor?{color:l.valueColor}:void 0,children:l.value})]},s))})}function un({actions:e}){return i.jsx("div",{className:"aimapui-popup-actions flex gap-3 px-4 pb-4",children:e.map((t,n)=>i.jsx("button",{className:fe("aimapui-popup-action-btn","flex-1 py-2.5 text-sm leading-5 font-semibold rounded-lg border-none cursor-pointer transition-all duration-150 active:scale-[0.98]",t.variant==="secondary"?"aimapui-popup-action-btn--secondary bg-transparent text-on-surface border-2 border-solid border-outline-variant hover:bg-surface-container-low":"aimapui-popup-action-btn--primary bg-primary text-on-primary shadow-sm hover:shadow-[0_4px_12px_rgba(0,74,198,0.3)]"),onClick:t.onClick,children:t.label},n))})}function qe({longitude:e,latitude:t,content:n,closeButton:r=!0,size:o="standard",placement:l="auto",offset:s=8,header:a,attributes:c,actions:d,visible:h,singleton:f=!1,overlayContainer:p,onClose:g,className:y}){const C=me(),b=h!==void 0,[x,k]=u.useState(!0),L=b?h:x,[z,E]=u.useState(!1),[T,M]=u.useState("top"),H=u.useRef(null),N=u.useRef(!0);u.useRef(!1);const V=u.useRef(Symbol("popup")),[F,A]=u.useState(null);u.useEffect(()=>{if(p||!C)return;const Y=()=>{try{const te=C.mapService;if(te&&typeof te.getMarkerContainer=="function"){const _=te.getMarkerContainer();if(_)return A(_),!0}}catch{}return!1};if(Y())return;const X=()=>{Y()};return C.loaded?X():C.on("loaded",X),()=>{C.off("loaded",X)}},[C,p]);const I=p??F,m=u.useCallback(()=>{z||(E(!0),setTimeout(()=>{b||k(!1),g==null||g(),E(!1)},150))},[b,g,z]);u.useEffect(()=>{if(!f||!L)return;const Y=V.current;return nn(Y),()=>rn(Y)},[f,L,m]),u.useEffect(()=>{if(!f)return;const Y=V.current,X=te=>{te!==Y&&L&&m()};return dt.add(X),()=>{dt.delete(X)}},[f,L,m]);const w=u.useRef(()=>{});w.current=(Y,X)=>{var R;const te=H.current;if(!te)return;const _=Math.round(Y),U=Math.round(X);let ce=0,ie=0;try{const B=C==null?void 0:C.mapService,G=(R=B==null?void 0:B.getContainer)==null?void 0:R.call(B);if(G){const ne=G.getBoundingClientRect();ce=ne.width||G.clientWidth||G.scrollWidth,ie=ne.height||G.clientHeight||G.scrollHeight}}catch{}const Q=te.querySelector(".aimapui-popup-content"),le=(Q==null?void 0:Q.offsetWidth)||320,Z=(Q==null?void 0:Q.offsetHeight)||200,{placement:v,transform:D}=on(_,U,le,Z,ce,ie,l,s);M(v),te.style.left="0",te.style.top="0",te.style.transform=`translate3d(${_}px, ${U}px, 0) ${D}`;let S;if(ce>0&&ie>0)S=_>=-2&&_<=ce+2&&U>=-2&&U<=ie+2;else{const B=te.parentElement;B&&B.clientWidth>0&&B.clientHeight>0?S=_>=0&&_<=B.clientWidth&&U>=0&&U<=B.clientHeight:S=N.current}N.current=S,te.style.display=S?"":"none"};const P=u.useCallback(()=>{if(C)try{const Y=C.mapService,X=Y?Y.lngLatToContainer([e,t]):C.lngLatToContainer([e,t]);X&&w.current(X.x,X.y)}catch{}},[C,e,t]);if(u.useEffect(()=>{if(!I||!L)return;const Y=requestAnimationFrame(()=>{P()});return()=>cancelAnimationFrame(Y)},[I,L,P]),u.useEffect(()=>{if(!L)return;const Y=X=>{X.key==="Escape"&&m()};return document.addEventListener("keydown",Y),()=>document.removeEventListener("keydown",Y)},[L,m]),u.useEffect(()=>{var _;if(!L||!I)return;const Y=U=>{const ce=H.current;if(!ce||ce.contains(U.target))return;const ie=U.target;ie.closest(".aimapui-marker")||ie.closest("[data-marker]")||m()};let X=null;try{const U=C==null?void 0:C.mapService;U&&(X=(_=U.getContainer)==null?void 0:_.call(U))}catch{}const te=X||I.parentElement||I;return te.addEventListener("click",Y,!0),()=>te.removeEventListener("click",Y,!0)},[L,I,C,m]),ut(C,e,t,(Y,X)=>{w.current(Y,X)}),!L||!I)return null;const $=a||c||d,j=!!(a!=null&&a.coverUrl),O=T==="left"||T==="right",K=()=>$?i.jsxs(i.Fragment,{children:[a&&j&&i.jsx(ln,{header:a,onClose:m}),a&&i.jsx(an,{header:a,onClose:m,hasCover:j,showStatusDot:o==="compact"}),i.jsxs("div",{className:fe("aimapui-popup-body relative p-4 text-sm leading-5 text-on-surface break-words whitespace-normal",!a&&r&&"pr-10"),children:[!a&&r&&i.jsx(Je,{onClick:m}),n&&!Ge(n)&&typeof n!="string"&&i.jsx("div",{children:n}),n&&Ge(n)&&i.jsx("div",{dangerouslySetInnerHTML:{__html:n}}),n&&!Ge(n)&&typeof n=="string"&&i.jsx("div",{children:n}),!n&&!(c!=null&&c.length)&&!(d!=null&&d.length)&&!a&&i.jsx("div",{style:{color:"var(--color-on-surface-variant)"},children:"无内容"}),c&&c.length>0&&i.jsx(cn,{attributes:c,size:o})]}),d&&d.length>0&&i.jsx(un,{actions:d})]}):Ge(n)?i.jsxs("div",{className:"aimapui-popup-body relative p-4 pt-2 pr-10 text-sm leading-5 text-on-surface break-words whitespace-normal",children:[r&&i.jsx(Je,{onClick:m}),i.jsx("div",{dangerouslySetInnerHTML:{__html:n}})]}):i.jsxs("div",{className:"aimapui-popup-body relative p-4 pt-2 pr-10 text-sm leading-5 text-on-surface break-words whitespace-normal",children:[r&&i.jsx(Je,{onClick:m}),i.jsx("div",{children:n??""})]}),ee=O?{display:"flex",alignItems:"center"}:{display:"flex",flexDirection:"column",alignItems:"center"};return Ie.createPortal(i.jsxs("div",{ref:H,className:fe("aimapui-popup",`aimapui-popup--${o}`),style:{position:"absolute",left:0,top:0,transform:"translate(-9999px, -9999px)",display:"none",zIndex:30,pointerEvents:"auto",...ee},children:[T==="bottom"&&i.jsx(Ke,{placement:T}),T==="right"&&i.jsx(Ke,{placement:T}),i.jsx("div",{className:fe("aimapui-popup-content overflow-hidden rounded-xl",z&&"aimapui-popup-content--exit",y),children:K()}),T==="top"&&i.jsx(Ke,{placement:T}),T==="left"&&i.jsx(Ke,{placement:T})]}),I)}const dn={top:"bottom",bottom:"top",left:"right",right:"left"},hn={top:"translate(-50%, -100%)",bottom:"translate(-50%, 0)",left:"translate(-100%, -50%)",right:"translate(0, -50%)"};function ht({content:e,variant:t="dark",longitude:n,latitude:r,targetElement:o,placement:l="top",offset:s=8,trigger:a="hover",visible:c,title:d,items:h,overlayContainer:f,className:p}){const{resolvedTheme:g}=r1(),y=me(),C=c!==void 0,[b,x]=u.useState(!1),k=C?c:b,L=u.useRef(null),z=u.useRef(null),E=n!==void 0&&r!==void 0;u.useEffect(()=>{if(E||!o||C)return;const m=()=>{z.current=setTimeout(()=>x(!0),100)},w=()=>{z.current&&(clearTimeout(z.current),z.current=null),x(!1)},P=()=>{z.current&&clearTimeout(z.current),x($=>!$)};return a==="hover"?(o.addEventListener("mouseenter",m),o.addEventListener("mouseleave",w)):o.addEventListener("click",P),()=>{z.current&&clearTimeout(z.current),o.removeEventListener("mouseenter",m),o.removeEventListener("mouseleave",w),o.removeEventListener("click",P)}},[o,a,E,C]);const T=u.useCallback(()=>{if(!o||!L.current)return;const m=o.getBoundingClientRect(),w=L.current.getBoundingClientRect();let P=0,$=0;switch(l){case"right":P=m.right+s,$=m.top+m.height/2-w.height/2;break;case"bottom":P=m.left+m.width/2-w.width/2,$=m.bottom+s;break;case"left":P=m.left-w.width-s,$=m.top+m.height/2-w.height/2;break;case"top":default:P=m.left+m.width/2-w.width/2,$=m.top-w.height-s;break}const j=8;P=Math.max(j,Math.min(P,window.innerWidth-w.width-j)),$=Math.max(j,Math.min($,window.innerHeight-w.height-j)),L.current.style.display="",L.current.style.left=`${P}px`,L.current.style.top=`${$}px`},[o,l,s]);u.useEffect(()=>{if(E||!k||!o)return;T();const m=()=>T();return window.addEventListener("resize",m),window.addEventListener("scroll",m,!0),()=>{window.removeEventListener("resize",m),window.removeEventListener("scroll",m,!0)}},[k,o,E,T]);const M=u.useCallback(()=>{var m,w;if(!y)return null;try{const P=y.mapService,$=((m=P==null?void 0:P.getContainer)==null?void 0:m.call(P))??((w=y.getMapContainer)==null?void 0:w.call(y))??y.container;if($ instanceof HTMLElement)return $.getBoundingClientRect()}catch{}return null},[y]),H=u.useRef(()=>{});H.current=(m,w)=>{const P=L.current;if(!P||!E)return;let $=0,j=0;switch(l){case"top":j=-s;break;case"bottom":j=s;break;case"left":$=-s;break;case"right":$=s;break}const O=M();let K=!0;if(O&&O.width>0&&O.height>0&&(K=m>=-2&&m<=O.width+2&&w>=-2&&w<=O.height+2),!K){P.style.display="none";return}const ee=O?O.left:0,Y=O?O.top:0,X=Math.round(m+$+ee),te=Math.round(w+j+Y),_=hn[l];P.style.display="",P.style.transform=`translate3d(${X}px, ${te}px, 0) ${_}`};const N=u.useCallback(()=>{if(!(!y||!E))try{const m=y.mapService,w=m?m.lngLatToContainer([n,r]):y.lngLatToContainer([n,r]);if(!w||isNaN(w.x)||isNaN(w.y))return;H.current(w.x,w.y)}catch{}},[y,n,r,E]);if(u.useEffect(()=>{if(!E||!k)return;const m=requestAnimationFrame(()=>N());return()=>cancelAnimationFrame(m)},[k,E,N]),ut(E?y:null,n??0,r??0,(m,w)=>{H.current(m,w)}),!k)return null;const V=dn[l],F=d||h&&h.length>0,A=()=>e?typeof e=="string"?i.jsx("span",{dangerouslySetInnerHTML:{__html:e}}):e:F?i.jsxs(i.Fragment,{children:[d&&i.jsx("p",{className:"font-sans text-xs leading-4 font-semibold m-0 mb-0.5",children:d}),h&&h.length>0&&i.jsx("div",{className:"flex flex-col gap-0.5",children:h.map((m,w)=>i.jsxs("div",{className:"flex justify-between items-center gap-3",children:[i.jsx("span",{className:"text-xs leading-4 font-normal opacity-70 m-0",children:m.label}),i.jsx("span",{className:"font-mono text-xs leading-4 font-[450] text-right m-0",children:m.value})]},w))})]}):null,I=i.jsxs("div",{ref:L,"data-theme":g,className:fe("aimapui-tooltip",t!=="dark"&&`aimapui-tooltip--${t}`),style:{position:"fixed",left:0,top:0,transform:"translate(-9999px, -9999px)",display:"none",zIndex:9999,pointerEvents:"none"},children:[i.jsx("div",{className:fe("aimapui-tooltip-content",p),children:A()}),i.jsx("div",{className:`aimapui-tooltip-arrow aimapui-tooltip-arrow--${V}`})]});return Ie.createPortal(I,document.body)}function pn(e,t){let n;switch(e.type){case"point":n=u1(e);break;case"line":n=d1(e);break;case"polygon":n=h1(e);break;case"heatmap":n=p1(e);break;case"raster":n=f1(e);break;case"image":n=g1(e);break;default:return console.warn(`[aimapui] Unknown layer type: ${e.type}`),null}return fn(n)}function fn(e,t){var h;const n=ge[e.type];if(!n)throw new Error(`[aimapui] L7 layer class "${e.type}" not found`);const r=new n({...e.schema.zIndex!==void 0?{zIndex:e.schema.zIndex}:{},...e.schema.name?{name:e.schema.name}:{}}),{data:o,options:l}=e.sourceConfig;l?r.source(o,l):r.source(o);const{color:s,size:a,shape:c,style:d}=e.visual;if(s&&(s.field&&s.values?r.color(s.field,s.values):s.values&&r.color(s.values)),a&&(a.field&&a.values?r.size(a.field,a.values):a.values!==void 0&&r.size(a.values)),c&&(c.field&&c.values?r.shape(c.field,c.values):c.values&&r.shape(c.values)),d&&Object.keys(d).length>0&&r.style(d),e.type==="PointLayer"&&!c&&r.shape("circle"),e.type==="LineLayer"&&!c&&r.shape("line"),e.schema.filterField&&e.schema.filterValues){const f=e.schema.filterField,p=e.schema.filterValues;r.filter(f,g=>p.includes(g))}return(h=e.schema.animate)!=null&&h.enable&&r.animate(!0,e.schema.animate),e.schema.active&&r.active(e.schema.active),e.schema.select&&r.select(e.schema.select),e.schema.opacity!==void 0&&r.style({opacity:e.schema.opacity}),e.schema.blend&&r.blend(e.schema.blend),e.schema.visible===!1&&r.hide(),e.schema.minZoom!==void 0&&r.minZoom(e.schema.minZoom),e.schema.maxZoom!==void 0&&r.maxZoom(e.schema.maxZoom),r}function Qe(e,t,n){var a,c,d,h,f,p,g,y;const r=n,o=Number.isFinite((a=r==null?void 0:r.lnglat)==null?void 0:a.lng)?r.lnglat.lng:Number.isFinite((c=r==null?void 0:r.lngLat)==null?void 0:c.lng)?r.lngLat.lng:Number.isFinite((d=r==null?void 0:r.coordinate)==null?void 0:d.lng)?r.coordinate.lng:0,l=Number.isFinite((h=r==null?void 0:r.lnglat)==null?void 0:h.lat)?r.lnglat.lat:Number.isFinite((f=r==null?void 0:r.lngLat)==null?void 0:f.lat)?r.lngLat.lat:Number.isFinite((p=r==null?void 0:r.coordinate)==null?void 0:p.lat)?r.coordinate.lat:0,s=((g=r==null?void 0:r.feature)==null?void 0:g.properties)??(r==null?void 0:r.feature)??((y=r==null?void 0:r.data)==null?void 0:y.properties)??(r==null?void 0:r.data)??void 0;return{layerId:e,layerType:t,originalEvent:n,lng:o,lat:l,feature:s}}function Pe({schema:e,scene:t,eventHandlers:n,onLayerCreated:r}){const o=u.useRef(null),l=lt(),s=u.useRef(n);s.current=n;const a=u.useMemo(()=>{const{source:h,...f}=e;let p;if(ArrayBuffer.isView(h))p=`TypedArray:${h.length}`;else if(h&&typeof h=="object"&&"width"in h){const g=h;p=`Rasters:${g.width}x${g.height}:${g.length}`}else if(typeof h=="string")p=h;else try{p=JSON.stringify(h)}catch{p=String(h)}return p+"|"+gn(f)},[e]),[c,d]=u.useState({visible:!1,lng:0,lat:0,content:"",trigger:"click"});return u.useEffect(()=>{var T,M,H,N;const h=pn(e);if(!h)return;let f=!1;o.current=h;const p=e.id??e.name??`layer-${e.type}`,g=e.events,y=!!(g!=null&&g.enablePopup),C=(g==null?void 0:g.popupTrigger)??"click",b=V=>{if(!y)return;const F=V.feature;if(!F)return;const A=yn(F,g==null?void 0:g.popupFields,g==null?void 0:g.popupTemplate);d({visible:!0,lng:V.lng,lat:V.lat,content:A,trigger:C})},x=()=>{d(V=>({...V,visible:!1}))},k=!!((T=s.current)!=null&&T.onClick||g!=null&&g.click||y&&C==="click"),L=!!((M=s.current)!=null&&M.onMouseMove||g!=null&&g.mousemove||y&&C==="hover"),z=!!((H=s.current)!=null&&H.onMouseEnter||g!=null&&g.mouseenter),E=!!((N=s.current)!=null&&N.onMouseLeave||g!=null&&g.mouseleave||y&&C==="hover");return k&&h.on("click",V=>{var A,I;const F=Qe(p,e.type,V);(I=(A=s.current)==null?void 0:A.onClick)==null||I.call(A,F),g!=null&&g.click&&l.emit(g.click,F),C==="click"&&b(F)}),L&&h.on("mousemove",V=>{var A,I;const F=Qe(p,e.type,V);(I=(A=s.current)==null?void 0:A.onMouseMove)==null||I.call(A,F),C==="hover"&&b(F),g!=null&&g.mousemove&&l.emit(g.mousemove,F)}),z&&h.on("mouseenter",V=>{var A,I;const F=Qe(p,e.type,V);(I=(A=s.current)==null?void 0:A.onMouseEnter)==null||I.call(A,F),g!=null&&g.mouseenter&&l.emit(g.mouseenter,F)}),E&&h.on("mouseleave",V=>{var A,I;const F=Qe(p,e.type,V);(I=(A=s.current)==null?void 0:A.onMouseLeave)==null||I.call(A,F),C==="hover"&&x(),g!=null&&g.mouseleave&&l.emit(g.mouseleave,F)}),t.addLayer(h),r==null||r(h),h.on("inited",()=>{var V,F;if(!f){if(e.autoFit){const A=(F=(V=h.getSource)==null?void 0:V.call(h))==null?void 0:F.extent;if(A&&Array.isArray(A)&&A.length>=4){const[I,m,w,P]=A;isFinite(I)&&isFinite(m)&&isFinite(w)&&isFinite(P)&&I<w&&m<P&&t.fitBounds([[I,m],[w,P]])}}t.render()}}),()=>{if(f=!0,o.current){try{t.removeLayer(o.current)}catch{}o.current=null}d(V=>({...V,visible:!1}))}},[a,t,l]),u.useEffect(()=>{o.current&&(e.visible===!1?o.current.hide():o.current.show(),e.zIndex!==void 0&&(o.current.zIndex=e.zIndex))},[e.visible,e.zIndex]),c.visible?c.trigger==="hover"?i.jsx(ht,{longitude:c.lng,latitude:c.lat,content:c.content,variant:"dark",placement:"top",visible:!0}):i.jsx(qe,{longitude:c.lng,latitude:c.lat,content:c.content,closeButton:!0,size:"compact",onClose:()=>d(h=>({...h,visible:!1}))}):null}function gn(e){return JSON.stringify(pt(e))}function pt(e){if(ArrayBuffer.isView(e))return`[TypedArray:${e.length}]`;if(e instanceof ArrayBuffer)return`[ArrayBuffer:${e.byteLength}]`;if(Array.isArray(e))return e.length>1e3?`[Array:${e.length}]`:e.map(pt);if(e&&typeof e=="object"){const t=e,n=Object.keys(t).sort(),r={};return n.forEach(o=>{r[o]=pt(t[o])}),r}return e}function yn(e,t,n){return n?n.replace(/\{\{(\w+)\}\}/g,(l,s)=>String(e[s]??"")):`<table style="font-size:12px">${(t??Object.keys(e).filter(l=>!["_id","id","geometry","coordinates"].includes(l))).map(l=>`<tr><td style="font-weight:600;padding-right:8px">${l}</td><td>${e[l]??""}</td></tr>`).join("")}</table>`}function y1({layers:e,eventHandlers:t}){const n=me();return n?i.jsx(i.Fragment,{children:e.map((r,o)=>i.jsx(Pe,{schema:r,scene:n,eventHandlers:t},r.id??`layer-${o}`))}):null}const m1=u.createContext(!1);function Me(){return u.useContext(m1)}const ft=new Set,we={mark(e){e&&typeof e=="object"&&"$$typeof"in e&&ft.add(e),e&&typeof e=="function"&&ft.add(e)},check(e){if("position"in e.props)return!0;const t=e.type;if(ft.has(t))return!0;const n=t==null?void 0:t.displayName;return!!(typeof n=="string"&&n.endsWith("Control"))}};function gt({children:e,className:t,style:n}){const{controlGroups:r,otherChildren:o}=mn(e);return i.jsx(m1.Provider,{value:!0,children:i.jsxs("div",{className:`l7-control-container${t?` ${t}`:""}`,style:n,children:[Object.entries(r).map(([l,s])=>{const a=vn(l);return i.jsx("div",{className:`l7-control-anchor ${a}`,children:s},l)}),o]})})}function mn(e){const t={},n=[];return u.Children.forEach(e,(r,o)=>{var l;if(!u.isValidElement(r)){n.push(r);return}if(we.check(r)){const s=((l=r.props)==null?void 0:l.position)??"topright";t[s]||(t[s]=[]),t[s].push(r)}else n.push(u.isValidElement(r)?u.cloneElement(r,{key:r.key??`non-ctrl-${o}`}):r)}),{controlGroups:t,otherChildren:n}}function Cn(e){switch(e){case"topleft":return{vSide:"top",hSide:"left",direction:"column"};case"topright":return{vSide:"top",hSide:"right",direction:"column"};case"bottomleft":return{vSide:"bottom",hSide:"left",direction:"column"};case"bottomright":return{vSide:"bottom",hSide:"right",direction:"column"};case"topcenter":return{vSide:"top",hSide:"left",direction:"row"};case"bottomcenter":return{vSide:"bottom",hSide:"left",direction:"row"};case"lefttop":return{vSide:"top",hSide:"left",direction:"row"};case"leftbottom":return{vSide:"bottom",hSide:"left",direction:"row"};case"righttop":return{vSide:"top",hSide:"right",direction:"row"};case"rightbottom":return{vSide:"bottom",hSide:"right",direction:"row"};default:return{vSide:"top",hSide:"right",direction:"column"}}}function vn(e){if(e==="rightcenter")return"l7-rightcenter l7-column";if(e==="leftcenter")return"l7-leftcenter l7-column";const{vSide:t,hSide:n,direction:r}=Cn(e);return`l7-${t} l7-${n} l7-${r}`}function ke(e){const t=me(),n=u.useMemo(()=>{if(!t)return null;try{return t.mapService??null}catch{return null}},[t]),r=u.useCallback(()=>{var l;if(!t)return null;try{return n&&typeof n.getContainer=="function"?n.getContainer():((l=t.getContainer)==null?void 0:l.call(t))??null}catch{return null}},[t,n]),o=u.useMemo(()=>{if(e==="rightcenter")return"l7-rightcenter l7-column";if(e==="leftcenter")return"l7-leftcenter l7-column";const{vSide:l,hSide:s,direction:a}=bn(e??"topright");return`l7-${l} l7-${s} l7-${a}`},[e]);return{scene:t,mapsService:n,getMapContainer:r,positionClassName:o}}function bn(e){switch(e){case"topleft":return{vSide:"top",hSide:"left",direction:"column"};case"topright":return{vSide:"top",hSide:"right",direction:"column"};case"bottomleft":return{vSide:"bottom",hSide:"left",direction:"column"};case"bottomright":return{vSide:"bottom",hSide:"right",direction:"column"};case"topcenter":return{vSide:"top",hSide:"left",direction:"row"};case"bottomcenter":return{vSide:"bottom",hSide:"left",direction:"row"};case"lefttop":return{vSide:"top",hSide:"left",direction:"row"};case"leftbottom":return{vSide:"bottom",hSide:"left",direction:"row"};case"righttop":return{vSide:"top",hSide:"right",direction:"row"};case"rightbottom":return{vSide:"bottom",hSide:"right",direction:"row"};case"rightcenter":return{vSide:"top",hSide:"right",direction:"column"};case"leftcenter":return{vSide:"top",hSide:"left",direction:"column"};default:return{vSide:"top",hSide:"right",direction:"column"}}}function yt({position:e="bottomright",zoomInText:t,zoomInTitle:n="Zoom in",zoomOutText:r,zoomOutTitle:o="Zoom out",showZoom:l=!1,className:s,style:a}){const{scene:c,mapsService:d,positionClassName:h}=ke(e),f=Me(),[p,g]=u.useState(0),[y,C]=u.useState(!0),[b,x]=u.useState(!0),k=u.useRef(()=>{if(!d)return;const T=Math.floor(d.getZoom());g(T),C(d.getZoom()<d.getMaxZoom()),x(d.getZoom()>d.getMinZoom())});u.useEffect(()=>{if(!d)return;k.current();const T=()=>k.current();return d.on("zoomend",T),d.on("zoomchange",T),()=>{d.off("zoomend",T),d.off("zoomchange",T)}},[d]);const L=()=>{if(!d||!c)return;const T=d.getZoom(),M=d.getMaxZoom();if(T<M){const H=Math.min(T+1,M);c.setZoom(H)}},z=()=>{if(!d||!c)return;const T=d.getZoom(),M=d.getMinZoom();if(T>M){const H=Math.max(T-1,M);c.setZoom(H)}},E=i.jsxs("div",{className:`l7-control l7-control-zoom l7-control--glass${s?` ${s}`:""}`,style:a,children:[i.jsx("button",{className:"l7-button-control",onClick:L,disabled:!y,title:n,"aria-label":n,children:t??i.jsx("span",{className:"material-symbols-outlined",children:"add"})}),l&&i.jsx("button",{className:"l7-button-control l7-control-zoom__number",disabled:!0,children:p}),i.jsx("button",{className:"l7-button-control",onClick:z,disabled:!b,title:o,"aria-label":o,children:r??i.jsx("span",{className:"material-symbols-outlined",children:"remove"})})]});return f?E:i.jsx("div",{className:`l7-control-anchor ${h}`,children:E})}we.mark(yt);function Ln(e,t){const[n,r]=e,[o,l]=t,s=63710088e-1,a=(l-r)*Math.PI/180,c=(o-n)*Math.PI/180,d=Math.sin(a/2)*Math.sin(a/2)+Math.cos(r*Math.PI/180)*Math.cos(l*Math.PI/180)*Math.sin(c/2)*Math.sin(c/2),h=2*Math.atan2(Math.sqrt(d),Math.sqrt(1-d));return s*h}function mt(e){const t=Math.pow(10,Math.floor(Math.abs(e)).toString().length-1);let n=e/t;return n=n>=10?10:n>=5?5:n>=3?3:n>=2?2:1,t*n}function Ct({position:e="bottomleft",maxWidth:t=100,metric:n=!0,imperial:r=!1,updateWhenIdle:o=!1,className:l,style:s}){const{mapsService:a,positionClassName:c}=ke(e),d=Me(),[h,f]=u.useState([]),p=u.useRef(()=>{if(a)try{const C=a.getSize()[1]/2,b=a.containerToLngLat([0,C]),x=a.containerToLngLat([t,C]);if(!b||!x)return;const k=Ln([b.lng,b.lat],[x.lng,x.lat]),L=[];if(n&&k){const z=mt(k),E=z<1e3?`${z} m`:`${z/1e3} km`;L.push({text:E,width:Math.round(t*(z/k))})}if(r&&k){const z=k*3.2808399;if(z>5280){const E=z/5280,T=mt(E);L.push({text:`${T} mi`,width:Math.round(t*(T/E))})}else{const E=mt(z);L.push({text:`${E} ft`,width:Math.round(t*(E/z))})}}f(L)}catch{}});u.useEffect(()=>{if(!a)return;p.current();const y=()=>p.current(),C=o?"moveend":"mapmove",b=o?"zoomend":"zoomchange";return a.on(C,y),a.on(b,y),()=>{a.off(C,y),a.off(b,y)}},[a,t,n,r,o]);const g=i.jsx("div",{className:`l7-control l7-control-scale l7-control--glass${l?` ${l}`:""}`,style:s,children:h.map((y,C)=>i.jsx("div",{className:"l7-control-scale-line",style:{width:y.width},children:y.text},C))});return d?g:i.jsx("div",{className:`l7-control-anchor ${c}`,children:g})}we.mark(Ct);function vt({position:e="topright",container:t,className:n,style:r}){const{getMapContainer:o,positionClassName:l}=ke(e),s=Me(),[a,c]=u.useState(!1),d=u.useCallback(()=>t??o()??document.documentElement,[t,o]),h=u.useCallback(()=>{const p=d();a?document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen&&document.webkitExitFullscreen():p.requestFullscreen?p.requestFullscreen():p.webkitRequestFullscreen&&p.webkitRequestFullscreen()},[a,d]);u.useEffect(()=>{const p=()=>{c(!!document.fullscreenElement)};return document.addEventListener("fullscreenchange",p),()=>document.removeEventListener("fullscreenchange",p)},[]);const f=i.jsx("div",{className:`l7-control l7-control--glass${n?` ${n}`:""}`,style:r,children:i.jsx("button",{className:"l7-button-control",onClick:h,title:a?"退出全屏":"全屏","aria-label":a?"退出全屏":"全屏",children:i.jsx("span",{className:"material-symbols-outlined",children:a?"fullscreen_exit":"fullscreen"})})});return s?f:i.jsx("div",{className:`l7-control-anchor ${l}`,children:f})}we.mark(vt);function bt({position:e="topright",transform:t,className:n,style:r}){const{mapsService:o,positionClassName:l}=ke(e),s=Me(),a=u.useCallback(async()=>{if(!window.navigator.geolocation){console.warn("[aimapui] Geolocation is not supported by this browser");return}if(o)try{const d=await new Promise((C,b)=>{window.navigator.geolocation.getCurrentPosition(({coords:x})=>C(x),x=>b(x))}),{longitude:h,latitude:f}=d;if(isNaN(h)||isNaN(f))return;const p=[h,f],g=t?await t(p):p,y=o.getZoom();o.setZoomAndCenter(y>15?y:15,g)}catch(d){console.warn("[aimapui] Geolocation error:",d)}},[o,t]),c=i.jsx("div",{className:`l7-control l7-control--glass${n?` ${n}`:""}`,style:r,children:i.jsx("button",{className:"l7-button-control",onClick:a,title:"定位","aria-label":"定位",children:i.jsx("span",{className:"material-symbols-outlined",children:"my_location"})})});return s?c:i.jsx("div",{className:`l7-control-anchor ${l}`,children:c})}we.mark(bt);const xn=["l7-popper-left","l7-popper-right","l7-popper-top","l7-popper-bottom"],wn=["l7-popper-start","l7-popper-end"];function Lt(e){switch(e){case"topleft":return"l7-popper-bottom l7-popper-start";case"topright":return"l7-popper-bottom l7-popper-end";case"bottomleft":return"l7-popper-top l7-popper-start";case"bottomright":return"l7-popper-top l7-popper-end";case"lefttop":return"l7-popper-right l7-popper-start";case"leftbottom":return"l7-popper-right l7-popper-end";case"righttop":return"l7-popper-left l7-popper-start";case"rightbottom":return"l7-popper-left l7-popper-end";default:return"l7-popper-bottom"}}function xt(e,t,n){const r=u.useRef(null),[o,l]=u.useState(()=>Lt(e));return u.useEffect(()=>{if(!t)return;const s=Lt(e);l(s),requestAnimationFrame(()=>{const a=r.current;if(!a)return;const c=a.getBoundingClientRect(),d=window.innerWidth,h=window.innerHeight;let f="",p="";if(c.bottom>h-8?f="l7-popper-top":c.top<8&&(f="l7-popper-bottom"),c.right>d-8?p="l7-popper-end":c.left<8&&(p="l7-popper-start"),!f&&!p)return;const g=s.split(" "),y=g.find(b=>xn.includes(b))??"",C=g.find(b=>wn.includes(b))??"";l(`${f||y} ${p||C}`.trim())})},[t,e]),{popperRef:r,popperClass:o}}const wt=[{text:"Standard",value:"normal",preview:"linear-gradient(135deg, #e8e8e8 0%, #c8d8e8 40%, #a8c8d8 100%)"},{text:"Light",value:"light",preview:"linear-gradient(135deg, #f0f4f8 0%, #d6e4f0 40%, #e8eff5 100%)"},{text:"Dark",value:"dark",preview:"linear-gradient(135deg, #0d1b2a 0%, #1b2838 40%, #162032 100%)"},{text:"Dark Blue",value:"darkblue",preview:"linear-gradient(135deg, #0a1628 0%, #0f2040 40%, #091a30 100%)"},{text:"Satellite",value:"satellite",preview:"linear-gradient(135deg, #1a3a1a 0%, #2d5a2d 40%, #1d4a2d 100%)"},{text:"Fresh",value:"fresh",preview:"linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 40%, #d4edda 100%)"}],Mn=[{text:"Positron",value:"https://tiles.openfreemap.org/styles/positron",preview:"linear-gradient(135deg, #f2f3f0 0%, #d8dcd6 40%, #e8ebe5 100%)"},{text:"Bright",value:"https://tiles.openfreemap.org/styles/bright",preview:"linear-gradient(135deg, #e8e8e8 0%, #c8d8e8 40%, #a8c8d8 100%)"},{text:"Dark",value:"https://tiles.openfreemap.org/styles/dark",preview:"linear-gradient(135deg, #1a1a2e 0%, #16213e 40%, #0f3460 100%)"},{text:"Liberty",value:"https://tiles.openfreemap.org/styles/liberty",preview:"linear-gradient(135deg, #f0ece2 0%, #dfd7c8 40%, #c8bfad 100%)"},{text:"Fiord",value:"https://tiles.openfreemap.org/styles/fiord",preview:"linear-gradient(135deg, #2c3e50 0%, #34495e 40%, #415b76 100%)"}],kn=[{text:"Light",value:"light",preview:"linear-gradient(135deg, #f0f4f8 0%, #d6e4f0 40%, #e8eff5 100%)"},{text:"Dark",value:"dark",preview:"linear-gradient(135deg, #0d1b2a 0%, #1b2838 40%, #162032 100%)"},{text:"Normal",value:"normal",preview:"linear-gradient(135deg, #e8e8e8 0%, #c8d8e8 40%, #a8c8d8 100%)"}];function Mt({position:e="topright",options:t,defaultValue:n,onThemeChange:r,className:o,style:l}){const{mapsService:s,positionClassName:a}=ke(e),c=Me(),[d,h]=u.useState(!1),[f,p]=u.useState(n??""),[g,y]=u.useState(t??[]),C=u.useRef(null),{popperRef:b,popperClass:x}=xt(e,d);u.useEffect(()=>{var z;if(t&&t.length>0){y(t);return}if(s){try{const E=(z=s.getMapStyleConfig)==null?void 0:z.call(s);if(E&&typeof E=="object"){const T=Object.entries(E).filter(([,M])=>typeof M=="string").map(([M,H])=>{const N=wt.find(V=>V.value===H);return{text:M,value:H,preview:N==null?void 0:N.preview}});if(T.length>0){y(T);return}}}catch{}y(wt)}},[s,t]),u.useEffect(()=>{var z;if(n){p(n);return}if(s)try{const E=(z=s.getMapStyle)==null?void 0:z.call(s);E&&p(E)}catch{}},[s,n]),u.useEffect(()=>{if(!d)return;const z=E=>{C.current&&!C.current.contains(E.target)&&h(!1)};return document.addEventListener("mousedown",z),()=>document.removeEventListener("mousedown",z)},[d]);const k=u.useCallback(z=>{if(p(z),s)try{s.setMapStyle(z)}catch{}r==null||r(z)},[s,r]),L=i.jsxs("div",{ref:C,className:`l7-control l7-control--glass${o?` ${o}`:""}`,style:l,children:[i.jsx("button",{className:"l7-button-control",onClick:()=>h(!d),title:"地图样式","aria-label":"地图样式",children:i.jsx("span",{className:"material-symbols-outlined",children:"palette"})}),d&&g.length>0&&i.jsx("div",{ref:b,className:`l7-popper ${x}`,children:i.jsxs("div",{className:"l7-popper-content l7-theme-panel",children:[i.jsxs("div",{className:"l7-theme-panel__title",children:[i.jsx("span",{className:"material-symbols-outlined",style:{fontSize:16},children:"palette"}),"Map Themes"]}),i.jsx("div",{className:"l7-theme-panel__grid",children:g.map(z=>{const E=f===z.value,T=z.preview??"linear-gradient(135deg, #e0e0e0 0%, #bdbdbd 100%)";return i.jsxs("button",{className:`l7-theme-card${E?" l7-theme-card--active":""}`,onClick:()=>k(z.value),title:z.text,children:[i.jsx("div",{className:"l7-theme-card__preview",style:{background:T}}),E&&i.jsx("span",{className:"material-symbols-outlined l7-theme-card__check",style:{fontVariationSettings:"'FILL' 1"},children:"check_circle"}),i.jsx("span",{className:"l7-theme-card__label",children:z.text})]},z.value)})})]})})]});return c?L:i.jsx("div",{className:`l7-control-anchor ${a}`,children:L})}we.mark(Mt);function kt({position:e="bottomleft",precision:t=6,transform:n,className:r,style:o}){const s=n??(([p,g])=>[+p.toFixed(t),+g.toFixed(t)]),{mapsService:a,positionClassName:c}=ke(e),d=Me(),h=u.useRef(null);u.useEffect(()=>{if(!a)return;const p=g=>{const y=g.lngLat??g.lnglat;if(!y)return;const C=[y.lng,y.lat],b=s(C);h.current&&(h.current.innerText=b.join(", "))};return a.on("mousemove",p),()=>{a.off("mousemove",p)}},[a,s]);const f=i.jsx("div",{ref:h,className:`l7-control l7-control-mouse-location l7-control--glass${r?` ${r}`:""}`,style:o,children:" "});return d?f:i.jsx("div",{className:`l7-control-anchor ${c}`,children:f})}we.mark(kt);function St({position:e="topright",format:t="png",onExport:n,className:r,style:o}){const{scene:l,mapsService:s,positionClassName:a}=ke(e),c=Me(),d=t==="jpg"?"jpeg":"png",h=u.useCallback(async()=>{var g,y;try{const C=s?await((g=s.exportMap)==null?void 0:g.call(s,d)):void 0,b=l?await((y=l.exportPng)==null?void 0:y.call(l,d)):void 0,x=[C,b].filter(k=>!!k);return x.length===0?void 0:x.length===1?x[0]:Sn(x,d)}catch{return}},[l,s,d]),f=u.useCallback(async()=>{var y;const g=await h();if(n&&g){n(g);return}if(g){const C=document.createElement("a");C.download=`aimap-export.${d==="jpeg"?"jpg":"png"}`,C.href=g,C.click()}else try{if(s){const C=(y=s.getContainer)==null?void 0:y.call(s),b=C==null?void 0:C.querySelector("canvas");if(b&&typeof b.toDataURL=="function"){const x=b.toDataURL(`image/${d}`),k=document.createElement("a");k.download=`aimap-export.${d==="jpeg"?"jpg":"png"}`,k.href=x,k.click()}}}catch(C){console.warn("[aimapui] Export image failed:",C)}},[h,n,d,s]),p=i.jsx("div",{className:`l7-control l7-control--glass${r?` ${r}`:""}`,style:o,children:i.jsx("button",{className:"l7-button-control",onClick:f,title:"导出图片","aria-label":"导出图片",children:i.jsx("span",{className:"material-symbols-outlined",children:"photo_camera"})})});return c?p:i.jsx("div",{className:`l7-control-anchor ${a}`,children:p})}async function Sn(e,t){const n=document.querySelector(".l7-map")||document.documentElement,{width:r=0,height:o=0}=n.getBoundingClientRect(),l=document.createElement("canvas");l.width=r,l.height=o;const s=l.getContext("2d");return(await Promise.all(e.map(c=>new Promise(d=>{const h=new Image;h.onload=()=>d(h),h.src=c})))).forEach(c=>{s==null||s.drawImage(c,0,0,r,o)}),l.toDataURL(`image/${t}`)}we.mark(St);function zt({position:e="topright",layers:t,onToggle:n,onOpacityChange:r,className:o,style:l}){const[s,a]=u.useState(!1),c=u.useRef(null),[d,h]=u.useState(()=>{const x={};return t.forEach(k=>{x[k.id]=k.opacity??1}),x});u.useEffect(()=>{h(x=>{const k={...x};return t.forEach(L=>{L.opacity!==void 0&&(k[L.id]=L.opacity)}),k})},[t]);const{positionClassName:f}=ke(e),p=Me(),{popperRef:g,popperClass:y}=xt(e,s);if(u.useEffect(()=>{if(!s)return;const x=k=>{c.current&&!c.current.contains(k.target)&&a(!1)};return document.addEventListener("mousedown",x),()=>document.removeEventListener("mousedown",x)},[s]),!t.length)return null;const C=(x,k)=>{h(L=>({...L,[x]:k})),r==null||r(x,k)},b=i.jsxs("div",{ref:c,className:`l7-control l7-control--glass${o?` ${o}`:""}`,style:l,children:[i.jsx("button",{className:"l7-button-control",onClick:()=>a(!s),title:"图层控制","aria-label":"图层控制",children:i.jsx("span",{className:"material-symbols-outlined",children:"layers"})}),s&&i.jsx("div",{ref:g,className:`l7-popper ${y}`,children:i.jsxs("div",{className:"l7-popper-content l7-layer-panel",children:[i.jsxs("div",{className:"l7-layer-panel__title",children:[i.jsx("span",{className:"material-symbols-outlined",style:{fontSize:16},children:"layers"}),"Layers"]}),i.jsx("div",{className:"l7-layer-panel__list",children:t.map(x=>{const k=x.visible!==!1,L=d[x.id]??x.opacity??1,z=x.icon??"layers";return i.jsxs("div",{className:`l7-layer-item${k?"":" l7-layer-item--disabled"}`,children:[i.jsxs("div",{className:"l7-layer-item__header",children:[i.jsx("span",{className:"material-symbols-outlined l7-layer-item__icon",children:z}),i.jsx("span",{className:"l7-layer-item__name",children:x.name??x.id}),i.jsxs("label",{className:"l7-layer-toggle",children:[i.jsx("input",{type:"checkbox",checked:k,onChange:()=>n(x.id,!k)}),i.jsx("span",{className:"l7-layer-toggle__track"})]})]}),r&&i.jsxs("div",{className:"l7-layer-item__slider",children:[i.jsx("span",{className:"material-symbols-outlined",style:{fontSize:14},children:"opacity"}),i.jsx("input",{type:"range",min:0,max:100,value:Math.round(L*100),onChange:E=>C(x.id,+E.target.value/100),className:"l7-layer-slider"})]})]},x.id)})})]})})]});return p?b:i.jsx("div",{className:`l7-control-anchor ${f}`,children:b})}we.mark(zt);function zn(e){return{mode:"none",features:e?[...e]:[],selectedFeatureId:null,isDrawing:!1,currentVertices:[],startPoint:null,mousePoint:null,dragVertexIndex:null,isDragging:!1,mergeSelectedIds:[],splitTargetId:null}}const ze={point:{color:"#3f51b5",size:6,strokeColor:"#ffffff",strokeWidth:2},line:{color:"#3f51b5",size:2,opacity:1},polygon:{fill:"#3f51b5",fillOpacity:.2,stroke:"#3f51b5",strokeWidth:2},drawing:{fill:"#3f51b5",fillOpacity:.2,stroke:"#3f51b5",strokeWidth:2,dashStroke:"#3f51b5",dashWidth:1.5,dashArray:[4,4]},selected:{stroke:"#3f51b5",strokeWidth:3,fill:"#ffb95f",fillOpacity:.12,dashArray:[6,3]},vertex:{color:"#3f51b5",size:6,strokeColor:"#ffffff",strokeWidth:2,activeColor:"#ffb95f",activeSize:6}};function Hn(e){return e?{point:{...ze.point,...e.point},line:{...ze.line,...e.line},polygon:{...ze.polygon,...e.polygon},drawing:{...ze.drawing,...e.drawing},selected:{...ze.selected,...e.selected},vertex:{...ze.vertex,...e.vertex}}:{...ze}}let Vn=0;function En(){return`draw-${++Vn}`}function C1(e){return{type:"LineString",coordinates:e.map(([t,n])=>[t,n])}}function v1(e){const t=e.map(([n,r])=>[n,r]);if(t.length>0){const n=t[0],r=t[t.length-1];(n[0]!==r[0]||n[1]!==r[1])&&t.push([n[0],n[1]])}return{type:"Polygon",coordinates:[t]}}function b1(e,t){const[n,r]=e,[o,l]=t;return{type:"Polygon",coordinates:[[[n,r],[o,r],[o,l],[n,l],[n,r]]]}}function L1(e,t,n=64){const[r,o]=e,l=[];for(let s=0;s<n;s++){const a=s/n*2*Math.PI,c=t/(111320*Math.cos(o*Math.PI/180))*Math.cos(a),d=t/110540*Math.sin(a);l.push([r+c,o+d])}return l.push(l[0]),{type:"Polygon",coordinates:[l]}}function An(e){return{type:"Point",coordinates:[e[0],e[1]]}}function x1(e,t){const r=c=>c*Math.PI/180,o=r(t[1]-e[1]),l=r(t[0]-e[0]),s=Math.sin(o/2)*Math.sin(o/2)+Math.cos(r(e[1]))*Math.cos(r(t[1]))*Math.sin(l/2)*Math.sin(l/2);return 6371e3*(2*Math.atan2(Math.sqrt(s),Math.sqrt(1-s)))}function w1(e,t){const n=t.x-e.x,r=t.y-e.y;return Math.sqrt(n*n+r*r)}function Fe(e,t,n){return{type:"Feature",id:En(),geometry:e,properties:{drawType:t}}}function Zn(e,t,n){const r=e.geometry,o=Fn(r,t,n);return{...e,geometry:o,properties:{...e.properties}}}function Fn(e,t,n){switch(e.type){case"Point":return{type:"Point",coordinates:[e.coordinates[0]+t,e.coordinates[1]+n]};case"LineString":return{type:"LineString",coordinates:e.coordinates.map(([r,o])=>[r+t,o+n])};case"Polygon":return{type:"Polygon",coordinates:e.coordinates.map(r=>r.map(([o,l])=>[o+t,l+n]))};default:return e}}function Tn(e,t,n,r){const o=e.geometry;let l;if(o.type==="Point")l={type:"Point",coordinates:[n,r]};else if(o.type==="LineString"){const s=o.coordinates.map(a=>[...a]);t>=0&&t<s.length&&(s[t]=[n,r]),l={type:"LineString",coordinates:s}}else if(o.type==="Polygon"){const s=o.coordinates.map(d=>d.map(h=>[...h])),a=s[0],c=a.length>1&&a[0][0]===a[a.length-1][0]&&a[0][1]===a[a.length-1][1]?a.length-1:a.length;t>=0&&t<c&&(a[t]=[n,r],t===0&&(a[a.length-1]=[n,r])),l={type:"Polygon",coordinates:s}}else l=o;return{...e,geometry:l,properties:{...e.properties}}}function Re(e){const t=e.geometry,n=[];if(t.type==="Point")n.push([t.coordinates[0],t.coordinates[1]]);else if(t.type==="LineString")t.coordinates.forEach(([r,o])=>{n.push([r,o])});else if(t.type==="Polygon"){const r=t.coordinates[0];if(r&&r.length>1){const o=r[0][0]===r[r.length-1][0]&&r[0][1]===r[r.length-1][1]?r.length-1:r.length;for(let l=0;l<o;l++)n.push([r[l][0],r[l][1]])}}return n}function De(e){const t=e.lnglat,n=e.lngLat;if(t&&typeof t.lng=="number"&&typeof t.lat=="number")return[t.lng,t.lat];if(n&&typeof n.lng=="number"&&typeof n.lat=="number")return[n.lng,n.lat];const r=e.coordinate;return r&&typeof r[0]=="number"&&typeof r[1]=="number"?[r[0],r[1]]:null}function Nn(e){return{type:"FeatureCollection",features:e.filter(t=>t.geometry.type==="LineString")}}function In(e){return{type:"FeatureCollection",features:e.filter(t=>t.geometry.type==="Polygon")}}function Pn(e,t){const n=M1(e.coordinates[0]),r=M1(t.coordinates[0]);let o=0;const l=new Set(n.map(s=>`${s[0].toFixed(7)},${s[1].toFixed(7)}`));for(const s of r)l.has(`${s[0].toFixed(7)},${s[1].toFixed(7)}`)&&o++;if(o>=2)return!0;for(let s=0;s<n.length;s++){const a=(s+1)%n.length;for(let c=0;c<r.length;c++){const d=(c+1)%r.length;if(S1(n[s],n[a],r[c],r[d],!0))return!0}}for(const s of n)if(k1(s,r))return!0;for(const s of r)if(k1(s,n))return!0;return!1}function M1(e){const t=[],n=e.length>1&&e[0][0]===e[e.length-1][0]&&e[0][1]===e[e.length-1][1]?e.length-1:e.length;for(let r=0;r<n;r++)t.push([e[r][0],e[r][1]]);return t}function k1(e,t){let n=!1;for(let r=0,o=t.length-1;r<t.length;o=r++){const l=t[r][0],s=t[r][1],a=t[o][0],c=t[o][1];s>e[1]!=c>e[1]&&e[0]<(a-l)*(e[1]-s)/(c-s)+l&&(n=!n)}return n}function Dn(e){if(e.length<2)return null;const t=e.filter(a=>a.geometry.type==="Polygon");if(t.length<2)return null;for(let a=0;a<t.length;a++){const c=t[a].geometry;let d=!1;for(let h=0;h<t.length;h++)if(a!==h&&Pn(c,t[h].geometry)){d=!0;break}if(!d)return null}const n=[];for(const a of t){const c=a.geometry.coordinates[0];if(!c)continue;const d=c.length>1&&c[0][0]===c[c.length-1][0]&&c[0][1]===c[c.length-1][1]?c.length-1:c.length;for(let h=0;h<d;h++)n.push([c[h][0],c[h][1]])}if(n.length<3)return null;const r=[],o=new Set;for(const a of n){const c=`${a[0].toFixed(6)},${a[1].toFixed(6)}`;o.has(c)||(o.add(c),r.push(a))}if(r.length<3)return null;const l=$n(r);return l.length<3?null:(l.push(l[0]),Fe({type:"Polygon",coordinates:[l]},"polygon"))}function $n(e){if(e.length<3)return[...e];let t=0;for(let l=1;l<e.length;l++)(e[l][1]<e[t][1]||e[l][1]===e[t][1]&&e[l][0]<e[t][0])&&(t=l);const n=e[t],r=e.filter(l=>l[0]!==n[0]||l[1]!==n[1]).sort((l,s)=>{const a=Math.atan2(l[1]-n[1],l[0]-n[0]),c=Math.atan2(s[1]-n[1],s[0]-n[0]);if(a!==c)return a-c;const d=(l[0]-n[0])**2+(l[1]-n[1])**2,h=(s[0]-n[0])**2+(s[1]-n[1])**2;return d-h}),o=[n];for(const l of r){for(;o.length>1;){const s=o[o.length-2],a=o[o.length-1];if((a[0]-s[0])*(l[1]-s[1])-(a[1]-s[1])*(l[0]-s[0])<=0)o.pop();else break}o.push(l)}return o}function _n(e,t){if(e.geometry.type!=="Polygon"||t.length<2)return null;const n=e.geometry.coordinates[0];if(!n||n.length<4)return null;const r=[],o=n.length>1&&n[0][0]===n[n.length-1][0]&&n[0][1]===n[n.length-1][1]?n.length-1:n.length;for(let p=0;p<o;p++)r.push([n[p][0],n[p][1]]);const l=[];for(let p=0;p<t.length-1;p++){const g=t[p],y=t[p+1];for(let C=0;C<r.length;C++){const b=(C+1)%r.length,x=r[C],k=r[b],L=S1(g,y,x,k);L&&l.push({edgeIndex:C,point:L,t:p})}}if(l.length<2)return null;l.sort((p,g)=>p.edgeIndex-g.edgeIndex);const s=l[0],a=l[l.length-1],c=[],d=[];c.push(s.point);for(let p=s.edgeIndex+1;p<=a.edgeIndex;p++)c.push(r[p%r.length]);c.push(a.point),c.push(s.point),d.push(a.point);for(let p=a.edgeIndex+1;p<r.length;p++)d.push(r[p]);for(let p=0;p<=s.edgeIndex;p++)d.push(r[p]);if(d.push(s.point),d.push(a.point),c.length<4||d.length<4)return null;const h={type:"Polygon",coordinates:[c]},f={type:"Polygon",coordinates:[d]};return[Fe(h,"polygon"),Fe(f,"polygon")]}function S1(e,t,n,r,o=!1){const l=t[0]-e[0],s=t[1]-e[1],a=r[0]-n[0],c=r[1]-n[1],d=l*c-s*a;if(Math.abs(d)<1e-12)return null;const h=((n[0]-e[0])*c-(n[1]-e[1])*a)/d,f=((n[0]-e[0])*s-(n[1]-e[1])*l)/d;if(o){if(h<=1e-6||h>=.999999||f<=1e-6||f>=.999999)return null}else if(h<0||h>1||f<0||f>1)return null;return[e[0]+h*l,e[1]+h*s]}const et={type:"FeatureCollection",features:[]},Le="aimap-draw-";class On{constructor(t,n,r){this.featurePointLayer=null,this.featureLineLayer=null,this.featurePolygonLayer=null,this.featurePolygonOutlineLayer=null,this.drawingLineLayer=null,this.drawingDashLineLayer=null,this.drawingPolygonLayer=null,this.drawingPointLayer=null,this.selectionPolygonLayer=null,this.selectionLineLayer=null,this.selectionPointLayer=null,this.vertexLayer=null,this.midpointLayer=null,this.snapIndicatorLayer=null,this.mergeHighlightLayer=null,this.mergeHighlightOutlineLayer=null,this.splitHighlightLayer=null,this.splitHighlightOutlineLayer=null,this.tooltipEl=null,this.containerEl=null,this.hiddenFeatureId=null,this.allFeatures=[],this.onFeatureClick=null,this.onFeatureMouseDown=null,this.onVertexClick=null,this.onVertexRightClick=null,this.onEmptyClick=null,this.onMidpointClick=null,this.editClickHandlersBound=!1,this.scene=t,this.mapsService=r,this.styles={point:{...ze.point,...n==null?void 0:n.point},line:{...ze.line,...n==null?void 0:n.line},polygon:{...ze.polygon,...n==null?void 0:n.polygon},drawing:{...ze.drawing,...n==null?void 0:n.drawing},selected:{...ze.selected,...n==null?void 0:n.selected},vertex:{...ze.vertex,...n==null?void 0:n.vertex}};try{this.initTooltip()}catch{}}removeAndDestroy(t){var n;if(t){try{this.scene.removeLayer(t)}catch{}try{(n=t.destroy)==null||n.call(t)}catch{}}}addLayerWithRender(t){t.once("inited",()=>{try{this.scene.render()}catch{}}),this.scene.addLayer(t)}initTooltip(){const t=document.createElement("div");t.style.cssText=["position:fixed","pointer-events:none","z-index:9999","padding:6px 10px","border-radius:4px","background:rgba(26,27,34,0.92)","color:#f2eff9",'font:500 11px/16px "JetBrains Mono",monospace',"letter-spacing:0.02em","white-space:nowrap","display:none","flex-direction:column","gap:2px","box-shadow:0 2px 8px rgba(0,0,0,0.3)"].join(";"),document.body.appendChild(t),this.tooltipEl=t,this.containerEl=null}showTooltip(t,n,r,o){if(!this.tooltipEl)return;this.tooltipEl.innerHTML="";const l=document.createElement("div");if(l.textContent=t,l.style.cssText="color:#f2eff9;font-size:11px;line-height:16px;",this.tooltipEl.appendChild(l),o&&o.length>0){const s=document.createElement("div");s.style.cssText="display:flex;gap:8px;";for(const a of o){const c=document.createElement("span");c.textContent=a,c.style.cssText="font-size:9px;line-height:12px;color:#ffc107;font-weight:600;",s.appendChild(c)}this.tooltipEl.appendChild(s)}this.tooltipEl.style.display="flex",this.tooltipEl.style.left=`${n+16}px`,this.tooltipEl.style.top=`${r-8}px`}showSnapTooltip(t,n,r,o,l){if(!this.tooltipEl)return;this.tooltipEl.innerHTML="";const s=document.createElement("div");s.style.cssText="display:flex;gap:6px;align-items:center;";const a=document.createElement("span");a.textContent=t==="vertex"?"Vertex":"Edge",a.style.cssText="color:#ffc107;font-weight:700;font-size:10px;",s.appendChild(a);const c=document.createElement("span");c.textContent=`${r.toFixed(4)}, ${n.toFixed(4)}`,c.style.cssText="color:rgba(242,239,249,0.6);font-size:10px;",s.appendChild(c),this.tooltipEl.appendChild(s),this.tooltipEl.style.display="flex",this.tooltipEl.style.left=`${o+16}px`,this.tooltipEl.style.top=`${l-8}px`}hideTooltip(){this.tooltipEl&&(this.tooltipEl.style.display="none")}destroyTooltip(){var t;this.tooltipEl&&((t=this.tooltipEl.parentElement)==null||t.removeChild(this.tooltipEl),this.tooltipEl=null)}updateFeatures(t){this.scene&&(this.allFeatures=t,this.renderFeatures())}hideFeatureFromStatic(t){this.hiddenFeatureId=t,this.renderFeatures()}showAllFeatures(){this.hiddenFeatureId=null,this.renderFeatures()}renderFeatures(){const t=this.hiddenFeatureId?this.allFeatures.filter(s=>s.id!==this.hiddenFeatureId):this.allFeatures,n=this.styles;this.removeAndDestroy(this.featurePointLayer);const r=t.filter(s=>s.geometry.type==="Point").map(s=>{const a=s.geometry.coordinates;return{lng:a[0],lat:a[1],id:s.id,drawType:s.properties.drawType}});this.featurePointLayer=new ge.PointLayer({name:`${Le}feature-point`,zIndex:12}).source(r,{parser:{type:"json",x:"lng",y:"lat"}}).shape("circle").color(n.point.color).size(n.point.size).style({stroke:n.point.strokeColor,strokeWidth:n.point.strokeWidth}),this.addLayerWithRender(this.featurePointLayer),this.removeAndDestroy(this.featureLineLayer),this.featureLineLayer=new ge.LineLayer({name:`${Le}feature-line`,zIndex:11}).source(Nn(t)).shape("line").color(n.line.color).size(n.line.size).style({opacity:n.line.opacity}),this.addLayerWithRender(this.featureLineLayer),this.removeAndDestroy(this.featurePolygonLayer),this.featurePolygonLayer=new ge.PolygonLayer({name:`${Le}feature-polygon`,zIndex:10}).source(In(t)).shape("fill").color(n.polygon.fill).style({opacity:n.polygon.fillOpacity}),this.addLayerWithRender(this.featurePolygonLayer),this.removeAndDestroy(this.featurePolygonOutlineLayer);const o=t.filter(s=>s.geometry.type==="Polygon"),l=o.length>0?{type:"FeatureCollection",features:o.map(s=>({type:"Feature",geometry:{type:"LineString",coordinates:s.geometry.coordinates[0]},properties:s.properties}))}:et;this.featurePolygonOutlineLayer=new ge.LineLayer({name:`${Le}feature-polygon-outline`,zIndex:10}).source(l).shape("line").color(n.polygon.stroke).size(n.polygon.strokeWidth).style({opacity:1}),this.addLayerWithRender(this.featurePolygonOutlineLayer),this.editClickHandlersBound&&this.rebindEditClickHandlers()}showDrawingFeedback(t,n,r,o){if(!this.scene||r==="point")return;const l=this.styles;let s=et,a=et,c=et,d=[];if(r==="rectangle"&&o&&n){const g=b1(o,n);c={type:"FeatureCollection",features:[{type:"Feature",geometry:g,properties:{}}]},s={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:g.coordinates[0]},properties:{}}]}}else if(r==="circle"&&o&&n){const y=E=>E*Math.PI/180,C=y(n[1]-o[1]),b=y(n[0]-o[0]),x=Math.sin(C/2)**2+Math.cos(y(o[1]))*Math.cos(y(n[1]))*Math.sin(b/2)**2,L=6371e3*(2*Math.atan2(Math.sqrt(x),Math.sqrt(1-x))),z=L1(o,Math.max(L,1));c={type:"FeatureCollection",features:[{type:"Feature",geometry:z,properties:{}}]},s={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:z.coordinates[0]},properties:{}}]},d=[{lng:o[0],lat:o[1],vertexIndex:0}]}else if((r==="polyline"||r==="polygon")&&t.length>0){if(t.length>=2&&(s={type:"FeatureCollection",features:[{type:"Feature",geometry:C1(t),properties:{}}]}),n&&t.length>=1){const g=t[t.length-1],y=[{type:"Feature",geometry:{type:"LineString",coordinates:[[g[0],g[1]],[n[0],n[1]]]},properties:{}}];r==="polygon"&&t.length>=2&&y.push({type:"Feature",geometry:{type:"LineString",coordinates:[[n[0],n[1]],[t[0][0],t[0][1]]]},properties:{}}),a={type:"FeatureCollection",features:y}}if(r==="polygon"&&t.length>=2&&n){const g=[...t,n];g.length>=3&&(c={type:"FeatureCollection",features:[{type:"Feature",geometry:v1(g),properties:{}}]})}d=t.map(([g,y],C)=>({lng:g,lat:y,vertexIndex:C,isFirst:C===0}))}this.drawingLineLayer?this.drawingLineLayer.setData(s):(this.drawingLineLayer=new ge.LineLayer({name:`${Le}drawing-line`,zIndex:13}).source(s).shape("line").color(l.drawing.stroke).size(l.drawing.strokeWidth).style({opacity:1}),this.addLayerWithRender(this.drawingLineLayer));const h=l.drawing.dashArray??[4,4],f=l.drawing.dashStroke??l.drawing.stroke,p=l.drawing.dashWidth??1.5;this.drawingDashLineLayer?this.drawingDashLineLayer.setData(a):(this.drawingDashLineLayer=new ge.LineLayer({name:`${Le}drawing-dash-line`,zIndex:14}).source(a).shape("line").color(f).size(p).style({opacity:1,lineType:"dash",dashArray:h}),this.addLayerWithRender(this.drawingDashLineLayer)),this.drawingPolygonLayer?this.drawingPolygonLayer.setData(c):(this.drawingPolygonLayer=new ge.PolygonLayer({name:`${Le}drawing-polygon`,zIndex:13}).source(c).shape("fill").color(l.drawing.fill).style({opacity:l.drawing.fillOpacity}),this.addLayerWithRender(this.drawingPolygonLayer)),this.drawingPointLayer?this.drawingPointLayer.setData(d):(this.drawingPointLayer=new ge.PointLayer({name:`${Le}drawing-point`,zIndex:15}).source(d,{parser:{type:"json",x:"lng",y:"lat"}}).shape("circle").color(l.vertex.color).size(l.vertex.size).style({stroke:l.vertex.strokeColor,strokeWidth:l.vertex.strokeWidth}),this.addLayerWithRender(this.drawingPointLayer))}clearDrawingFeedback(){this.removeAndDestroy(this.drawingLineLayer),this.removeAndDestroy(this.drawingDashLineLayer),this.removeAndDestroy(this.drawingPolygonLayer),this.removeAndDestroy(this.drawingPointLayer),this.drawingLineLayer=null,this.drawingDashLineLayer=null,this.drawingPolygonLayer=null,this.drawingPointLayer=null}removeDrawingLayers(){this.clearDrawingFeedback()}updateSelectionHighlight(t){var l,s,a;if(!this.scene)return;const n=this.styles;if(this.removeAndDestroy(this.selectionPolygonLayer),this.removeAndDestroy(this.selectionLineLayer),this.removeAndDestroy(this.selectionPointLayer),!t){this.selectionPolygonLayer=null,this.selectionLineLayer=null,this.selectionPointLayer=null;return}const r={type:"FeatureCollection",features:[t]},o=n.selected.dashArray??[6,3];if(t.geometry.type==="Point")this.selectionPointLayer=new ge.PointLayer({name:`${Le}selection-point`,zIndex:15}).source([{lng:t.geometry.coordinates[0],lat:t.geometry.coordinates[1],id:t.id}],{parser:{type:"json",x:"lng",y:"lat"}}).shape("circle").color(n.selected.stroke).size((n.point.size??6)+4).style({stroke:n.selected.stroke,strokeWidth:n.selected.strokeWidth}),this.addLayerWithRender(this.selectionPointLayer);else if(t.geometry.type==="LineString")this.selectionLineLayer=new ge.LineLayer({name:`${Le}selection-line`,zIndex:15}).source(r).shape("line").color(n.selected.stroke).size(n.selected.strokeWidth).style({opacity:1,lineType:"dash",dashArray:o}),this.addLayerWithRender(this.selectionLineLayer);else if(t.geometry.type==="Polygon"){this.selectionPolygonLayer=new ge.PolygonLayer({name:`${Le}selection-polygon`,zIndex:15}).source(r).shape("fill").color(n.selected.fill).style({opacity:n.selected.fillOpacity}),this.addLayerWithRender(this.selectionPolygonLayer);const c={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:t.geometry.coordinates[0]},properties:{}}]};this.selectionLineLayer=new ge.LineLayer({name:`${Le}selection-line`,zIndex:15}).source(c).shape("line").color(n.selected.stroke).size(n.selected.strokeWidth).style({opacity:1,lineType:"dash",dashArray:o}),this.addLayerWithRender(this.selectionLineLayer)}if(this.editClickHandlersBound&&this.onFeatureMouseDown){const c=d=>{var f;const h=d.feature;if(h&&this.onFeatureMouseDown){const p=((f=h.properties)==null?void 0:f.id)??h.id;if(p){const g=d.lngLat??d.lnglat;let y=[0,0];if(g&&typeof g=="object"){const C=g;y=[C.lng??C.x??0,C.lat??C.y??0]}this.onFeatureMouseDown(String(p),y)}}};(l=this.selectionPolygonLayer)==null||l.on("mousedown",c),(s=this.selectionLineLayer)==null||s.on("mousedown",c),(a=this.selectionPointLayer)==null||a.on("mousedown",c)}}clearSelectionHighlight(){this.removeAndDestroy(this.selectionPolygonLayer),this.removeAndDestroy(this.selectionLineLayer),this.removeAndDestroy(this.selectionPointLayer),this.selectionPolygonLayer=null,this.selectionLineLayer=null,this.selectionPointLayer=null}removeSelectionLayers(){this.clearSelectionHighlight()}highlightMergeSelected(t,n){if(!this.scene)return;const r=this.styles;if(this.removeAndDestroy(this.mergeHighlightLayer),this.removeAndDestroy(this.mergeHighlightOutlineLayer),this.mergeHighlightLayer=null,this.mergeHighlightOutlineLayer=null,t.length===0)return;const o=n.filter(a=>t.includes(a.id));if(o.length===0)return;const l={type:"FeatureCollection",features:o};this.mergeHighlightLayer=new ge.PolygonLayer({name:`${Le}merge-highlight`,zIndex:15}).source(l).shape("fill").color(r.selected.fill).style({opacity:r.selected.fillOpacity}),this.addLayerWithRender(this.mergeHighlightLayer);const s=o.filter(a=>a.geometry.type==="Polygon").map(a=>({type:"Feature",geometry:{type:"LineString",coordinates:a.geometry.coordinates[0]},properties:{}}));if(s.length>0){const a={type:"FeatureCollection",features:s};this.mergeHighlightOutlineLayer=new ge.LineLayer({name:`${Le}merge-highlight-outline`,zIndex:15}).source(a).shape("line").color(r.selected.stroke).size(r.selected.strokeWidth).style({opacity:1,lineType:"dash",dashArray:r.selected.dashArray??[6,3]}),this.addLayerWithRender(this.mergeHighlightOutlineLayer)}}clearMergeHighlight(){this.removeAndDestroy(this.mergeHighlightLayer),this.removeAndDestroy(this.mergeHighlightOutlineLayer),this.mergeHighlightLayer=null,this.mergeHighlightOutlineLayer=null}highlightSplitTarget(t,n){if(!this.scene)return;const r=this.styles;this.removeAndDestroy(this.splitHighlightLayer),this.removeAndDestroy(this.splitHighlightOutlineLayer),this.splitHighlightLayer=null,this.splitHighlightOutlineLayer=null;const o=n.find(a=>a.id===t);if(!o)return;const l={type:"FeatureCollection",features:[o]};this.splitHighlightLayer=new ge.PolygonLayer({name:`${Le}split-highlight`,zIndex:15}).source(l).shape("fill").color(r.selected.fill).style({opacity:r.selected.fillOpacity}),this.addLayerWithRender(this.splitHighlightLayer);const s={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:o.geometry.coordinates[0]},properties:{}}]};this.splitHighlightOutlineLayer=new ge.LineLayer({name:`${Le}split-highlight-outline`,zIndex:15}).source(s).shape("line").color(r.selected.stroke).size(r.selected.strokeWidth).style({opacity:1,lineType:"dash",dashArray:r.selected.dashArray??[6,3]}),this.addLayerWithRender(this.splitHighlightOutlineLayer)}clearSplitHighlight(){this.removeAndDestroy(this.splitHighlightLayer),this.removeAndDestroy(this.splitHighlightOutlineLayer),this.splitHighlightLayer=null,this.splitHighlightOutlineLayer=null}updateVertexHandles(t){if(!this.scene)return;const n=this.styles;if(this.removeAndDestroy(this.vertexLayer),this.removeAndDestroy(this.midpointLayer),!t){this.vertexLayer=null,this.midpointLayer=null;return}const r=Re(t);if(r.length===0){this.vertexLayer=null,this.midpointLayer=null;return}const o=r.map(([l,s],a)=>({lng:l,lat:s,vertexIndex:a,featureId:t.id}));if(this.vertexLayer=new ge.PointLayer({name:`${Le}vertex-handles`,zIndex:16}).source(o,{parser:{type:"json",x:"lng",y:"lat"}}).shape("circle").color(n.vertex.color).size(n.vertex.size).style({stroke:n.vertex.strokeColor,strokeWidth:n.vertex.strokeWidth}),this.addLayerWithRender(this.vertexLayer),t.geometry.type==="LineString"||t.geometry.type==="Polygon"){const l=[],s=t.geometry.type==="Polygon"?r.length:r.length-1;for(let a=0;a<s;a++){const c=(a+1)%r.length;l.push({lng:(r[a][0]+r[c][0])/2,lat:(r[a][1]+r[c][1])/2,edgeIndex:a})}this.midpointLayer=new ge.PointLayer({name:`${Le}midpoint-handles`,zIndex:16}).source(l,{parser:{type:"json",x:"lng",y:"lat"}}).shape("circle").color(n.vertex.strokeColor).size(n.vertex.size-1).style({stroke:n.vertex.strokeColor,strokeWidth:.5,opacity:.5}),this.addLayerWithRender(this.midpointLayer)}else this.midpointLayer=null;this.editClickHandlersBound&&this.rebindVertexAndMidpointEvents()}clearVertexHandles(){this.removeAndDestroy(this.vertexLayer),this.removeAndDestroy(this.midpointLayer),this.vertexLayer=null,this.midpointLayer=null}removeVertexLayer(){this.clearVertexHandles()}setupEditClickHandlers(t,n,r,o,l,s){this.onFeatureClick=t,this.onVertexClick=n,this.onEmptyClick=r,this.onVertexRightClick=o??null,this.onMidpointClick=l??null,this.onFeatureMouseDown=s??null,this.editClickHandlersBound=!0,this.rebindEditClickHandlers()}rebindEditClickHandlers(){var l,s,a,c,d,h,f,p,g,y,C,b,x,k,L,z,E,T,M,H,N,V,F,A,I;const t=m=>{var P;const w=m.feature;if(w){const $=((P=w.properties)==null?void 0:P.id)??w.id;$&&this.onFeatureClick&&this.onFeatureClick(String($))}},n=m=>{var P;const w=m.feature;if(w){const $=((P=w.properties)==null?void 0:P.id)??w.id;if($&&this.onFeatureMouseDown){const j=m.lngLat??m.lnglat;let O=[0,0];if(j&&typeof j=="object"){const K=j;O=[K.lng??K.x??0,K.lat??K.y??0]}this.onFeatureMouseDown(String($),O)}}};(l=this.featurePointLayer)==null||l.on("click",t),(s=this.featureLineLayer)==null||s.on("click",t),(a=this.featurePolygonLayer)==null||a.on("click",t),(c=this.featurePolygonOutlineLayer)==null||c.on("click",t),(d=this.featurePointLayer)==null||d.on("mousedown",n),(h=this.featureLineLayer)==null||h.on("mousedown",n),(f=this.featurePolygonLayer)==null||f.on("mousedown",n),(p=this.featurePolygonOutlineLayer)==null||p.on("mousedown",n);const r=()=>{this.setCursorClass("l7-draw-cursor-grab")},o=()=>{this.clearEditCursors(),this.hideTooltip()};(g=this.featurePointLayer)==null||g.on("mouseenter",r),(y=this.featurePointLayer)==null||y.on("mouseleave",o),(C=this.featureLineLayer)==null||C.on("mouseenter",r),(b=this.featureLineLayer)==null||b.on("mouseleave",o),(x=this.featurePolygonLayer)==null||x.on("mouseenter",r),(k=this.featurePolygonLayer)==null||k.on("mouseleave",o),(L=this.featurePolygonOutlineLayer)==null||L.on("mouseenter",r),(z=this.featurePolygonOutlineLayer)==null||z.on("mouseleave",o),(E=this.selectionPolygonLayer)==null||E.on("mousedown",n),(T=this.selectionLineLayer)==null||T.on("mousedown",n),(M=this.selectionPointLayer)==null||M.on("mousedown",n),(H=this.selectionPolygonLayer)==null||H.on("mouseenter",r),(N=this.selectionPolygonLayer)==null||N.on("mouseleave",o),(V=this.selectionLineLayer)==null||V.on("mouseenter",r),(F=this.selectionLineLayer)==null||F.on("mouseleave",o),(A=this.selectionPointLayer)==null||A.on("mouseenter",r),(I=this.selectionPointLayer)==null||I.on("mouseleave",o),this.rebindVertexAndMidpointEvents()}extractClientXY(t){var s,a,c,d;const n=t.originalEvent??t.originEvent??t.e;if(n&&typeof n.clientX=="number"&&typeof n.clientY=="number")return[n.clientX,n.clientY];const r=t.x,o=t.y;if(r!==void 0&&o!==void 0){const h=(a=(s=this.mapsService)==null?void 0:s.getContainer)==null?void 0:a.call(s);if(h){const f=h.getBoundingClientRect();return[r+f.left,o+f.top]}}const l=t.pixel;if(l){const h=(d=(c=this.mapsService)==null?void 0:c.getContainer)==null?void 0:d.call(c);if(h){const f=h.getBoundingClientRect();return[(l.x??0)+f.left,(l.y??0)+f.top]}}return[0,0]}extractFeatureProp(t,n){const r=t.properties;return r&&r[n]!==void 0?r[n]:t[n]}setCursorClass(t){var r,o;const n=(o=(r=this.mapsService)==null?void 0:r.getContainer)==null?void 0:o.call(r);n&&(n.classList.remove("l7-draw-cursor-pointer","l7-draw-cursor-grab","l7-draw-cursor-move"),t&&n.classList.add(t))}clearEditCursors(){var n,r;const t=(r=(n=this.mapsService)==null?void 0:n.getContainer)==null?void 0:r.call(n);t&&t.classList.remove("l7-draw-cursor-pointer","l7-draw-cursor-grab","l7-draw-cursor-move")}rebindVertexAndMidpointEvents(){var t,n,r,o,l,s,a,c,d;(t=this.vertexLayer)==null||t.on("mouseenter",()=>{this.setCursorClass("l7-draw-cursor-pointer")}),(n=this.vertexLayer)==null||n.on("mousemove",h=>{const[f,p]=this.extractClientXY(h);(f||p)&&this.showTooltip("拖拽移动顶点,右键删除",f,p)}),(r=this.vertexLayer)==null||r.on("mouseleave",()=>{this.clearEditCursors(),this.hideTooltip()}),(o=this.midpointLayer)==null||o.on("mouseenter",()=>{this.setCursorClass("l7-draw-cursor-pointer")}),(l=this.midpointLayer)==null||l.on("mousemove",h=>{const[f,p]=this.extractClientXY(h);(f||p)&&this.showTooltip("单击添加新顶点",f,p)}),(s=this.midpointLayer)==null||s.on("mouseleave",()=>{this.clearEditCursors(),this.hideTooltip()}),(a=this.vertexLayer)==null||a.on("mousedown",h=>{var p,g,y,C;const f=h.feature;if(f&&this.onVertexClick){const b=this.extractFeatureProp(f,"vertexIndex");b!==void 0&&((g=(p=this.mapsService)==null?void 0:p.setMapStatus)==null||g.call(p,{dragEnable:!1,zoomEnable:!1}),(C=(y=h.originalEvent)==null?void 0:y.stopPropagation)==null||C.call(y),this.onVertexClick(b))}}),(c=this.vertexLayer)==null||c.on("contextmenu",h=>{var p,g;const f=h.feature;if(f&&this.onVertexRightClick){const y=this.extractFeatureProp(f,"vertexIndex");y!==void 0&&((g=(p=h.originalEvent)==null?void 0:p.preventDefault)==null||g.call(p),this.onVertexRightClick(y))}}),(d=this.midpointLayer)==null||d.on("click",h=>{const f=h.feature;if(f&&this.onMidpointClick){const p=this.extractFeatureProp(f,"edgeIndex"),g=this.extractFeatureProp(f,"lng"),y=this.extractFeatureProp(f,"lat");p!==void 0&&g!==void 0&&y!==void 0&&this.onMidpointClick(p,[g,y])}})}removeEditClickHandlers(){this.onFeatureClick=null,this.onVertexClick=null,this.onVertexRightClick=null,this.onEmptyClick=null,this.onMidpointClick=null,this.editClickHandlersBound=!1}showSnapIndicator(t,n,r){if(!this.scene)return;const o="#ffc107",l=r==="vertex"?8:6;this.removeAndDestroy(this.snapIndicatorLayer),this.snapIndicatorLayer=new ge.PointLayer({name:`${Le}snap-indicator`,zIndex:20}).source([{lng:t,lat:n}],{parser:{type:"json",x:"lng",y:"lat"}}).shape("square").color(o).size(l).style({stroke:o,strokeWidth:1.5,opacity:.9}),this.addLayerWithRender(this.snapIndicatorLayer)}hideSnapIndicator(){this.removeAndDestroy(this.snapIndicatorLayer),this.snapIndicatorLayer=null}destroy(){this.removeEditClickHandlers(),this.destroyTooltip();const t=[this.featurePointLayer,this.featureLineLayer,this.featurePolygonLayer,this.featurePolygonOutlineLayer,this.drawingLineLayer,this.drawingDashLineLayer,this.drawingPolygonLayer,this.drawingPointLayer,this.selectionPolygonLayer,this.selectionLineLayer,this.selectionPointLayer,this.vertexLayer,this.midpointLayer,this.snapIndicatorLayer];for(const n of t)this.removeAndDestroy(n);this.featurePointLayer=null,this.featureLineLayer=null,this.featurePolygonLayer=null,this.featurePolygonOutlineLayer=null,this.drawingLineLayer=null,this.drawingDashLineLayer=null,this.drawingPolygonLayer=null,this.drawingPointLayer=null,this.selectionPolygonLayer=null,this.selectionLineLayer=null,this.selectionPointLayer=null,this.vertexLayer=null,this.midpointLayer=null,this.snapIndicatorLayer=null}}const Ht={enabled:!0,threshold:8,vertex:!0,edge:!0};function jn(e){return e===!1?{...Ht,enabled:!1}:e===!0||e===void 0?{...Ht}:{...Ht,...e}}function Bn(e,t,n,r,o){if(!n.enabled||t.length===0)return{snapped:!1,lng:e[0],lat:e[1],type:"none"};const l=r(e);if(!l)return{snapped:!1,lng:e[0],lat:e[1],type:"none"};const s=n.threshold;let a=1/0,c={snapped:!1,lng:e[0],lat:e[1],type:"none"};for(const d of t){if(d.id===o)continue;const h=Re(d);if(h.length!==0){if(n.vertex)for(let f=0;f<h.length;f++){const p=r(h[f]);if(!p)continue;const g=l.x-p.x,y=l.y-p.y,C=Math.sqrt(g*g+y*y);C<s&&C<a&&(a=C,c={snapped:!0,lng:h[f][0],lat:h[f][1],type:"vertex",featureId:d.id,vertexIndex:f})}if(n.edge&&c.type!=="vertex"){const f=d.geometry.type==="Polygon"?h.length:Math.max(0,h.length-1);for(let p=0;p<f;p++){const g=(p+1)%h.length,y=r(h[p]),C=r(h[g]);if(!y||!C)continue;const b=Wn(l,y,C);if(b.t>=0&&b.t<=1&&b.dist<s&&b.dist<a){const x=b.t,k=h[p][0]+x*(h[g][0]-h[p][0]),L=h[p][1]+x*(h[g][1]-h[p][1]);a=b.dist,c={snapped:!0,lng:k,lat:L,type:"edge",featureId:d.id,edgeIndex:p}}}}}}return c}function Wn(e,t,n){const r=n.x-t.x,o=n.y-t.y,l=r*r+o*o;if(l===0)return{t:0,dist:Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)};let s=((e.x-t.x)*r+(e.y-t.y)*o)/l;s=Math.max(0,Math.min(1,s));const a=t.x+s*r,c=t.y+s*o,d=Math.sqrt((e.x-a)**2+(e.y-c)**2);return{t:s,dist:d}}const Un=5;function $e(e){const t=e.originalEvent??e.originEvent??e.e;return(t==null?void 0:t.clientX)??e.x??0}function _e(e){const t=e.originalEvent??e.originEvent??e.e;return(t==null?void 0:t.clientY)??e.y??0}function z1(e,t,n){const r=De(e);if(!r)return null;const o=n(r);if(!o){for(const s of t)if(s.geometry.type==="Polygon"&&V1(r,s.geometry.coordinates[0]))return s;return null}const l=8;for(const s of t)if(s.geometry.type==="Polygon"){if(V1(r,s.geometry.coordinates[0]))return s;const a=s.geometry.coordinates[0];for(let c=0;c<a.length-1;c++)if(H1(o,a[c],a[c+1],n)<=l)return s}else if(s.geometry.type==="Point"){const a=s.geometry.coordinates,c=n(a);if(c){const d=c.x-o.x,h=c.y-o.y;if(Math.sqrt(d*d+h*h)<=l)return s}}else if(s.geometry.type==="LineString"){const a=s.geometry.coordinates;for(let c=0;c<a.length-1;c++)if(H1(o,a[c],a[c+1],n)<=l)return s}return null}function H1(e,t,n,r){const o=r(t),l=r(n);if(!o||!l)return 1/0;const s=l.x-o.x,a=l.y-o.y,c=s*s+a*a;if(c===0){const y=e.x-o.x,C=e.y-o.y;return Math.sqrt(y*y+C*C)}const d=Math.max(0,Math.min(1,((e.x-o.x)*s+(e.y-o.y)*a)/c)),h=o.x+d*s,f=o.y+d*a,p=e.x-h,g=e.y-f;return Math.sqrt(p*p+g*g)}function V1(e,t){let n=!1;for(let r=0,o=t.length-1;r<t.length;o=r++){const l=t[r][0],s=t[r][1],a=t[o][0],c=t[o][1];s>e[1]!=c>e[1]&&e[0]<(a-l)*(e[1]-s)/(c-s)+l&&(n=!n)}return n}function E1(e,t,n){const r=n[0]-t[0],o=n[1]-t[1],l=r*r+o*o;if(l===0){const d=Math.sqrt((e[0]-t[0])**2+(e[1]-t[1])**2);return{point:t,t:0,dist:d}}let s=((e[0]-t[0])*r+(e[1]-t[1])*o)/l;s=Math.max(0,Math.min(1,s));const a=[t[0]+s*r,t[1]+s*o],c=Math.sqrt((e[0]-a[0])**2+(e[1]-a[1])**2);return{point:a,t:s,dist:c}}function A1(e,t,n){if(e.geometry.type!=="LineString")return null;const r=[...e.geometry.coordinates.map(o=>[...o])];return t<0||t>=r.length-1?null:(r.splice(t+1,0,n),{...e,geometry:{type:"LineString",coordinates:r},properties:{...e.properties}})}function Z1(e,t,n){if(e.geometry.type!=="Polygon")return null;const r=e.geometry.coordinates.map(a=>a.map(c=>[...c])),o=r[0],l=o.length>1&&o[0][0]===o[o.length-1][0]&&o[0][1]===o[o.length-1][1]?o.length-1:o.length;if(t<0||t>=l)return null;const s=t+1;return o.splice(s,0,n),o[0][0]===o[o.length-2][0]&&(o[0][1],o[o.length-2][1]),o[o.length-1]=[o[0][0],o[0][1]],{...e,geometry:{type:"Polygon",coordinates:r},properties:{...e.properties}}}function qn(e,t){if(e.geometry.type!=="LineString")return null;const n=e.geometry.coordinates.map(r=>[...r]);return n.length<=2||t<0||t>=n.length?null:(n.splice(t,1),{...e,geometry:{type:"LineString",coordinates:n},properties:{...e.properties}})}function Yn(e,t){if(e.geometry.type!=="Polygon")return null;const n=e.geometry.coordinates.map(l=>l.map(s=>[...s])),r=n[0],o=r.length>1&&r[0][0]===r[r.length-1][0]&&r[0][1]===r[r.length-1][1]?r.length-1:r.length;return o<=3||t<0||t>=o?null:(r.splice(t,1),r[r.length-1]=[r[0][0],r[0][1]],{...e,geometry:{type:"Polygon",coordinates:n},properties:{...e.properties}})}function Xn(e){const{scene:t,mapsService:n,styles:r,snap:o,defaultFeatures:l,features:s,onDrawCreate:a,onDrawUpdate:c,onDrawDelete:d,onDrawSelect:h,onModeChange:f,onChange:p}=e,g=u.useRef(zn(l)),y=u.useRef(null),C=u.useMemo(()=>Hn(r),[r]),b=u.useMemo(()=>jn(o),[o]),x=u.useRef({onDrawCreate:a,onDrawUpdate:c,onDrawDelete:d,onDrawSelect:h,onModeChange:f,onChange:p});x.current={onDrawCreate:a,onDrawUpdate:c,onDrawDelete:d,onDrawSelect:h,onModeChange:f,onChange:p};const k=u.useRef("none"),L=u.useRef(l?[...l]:[]),z=u.useRef(null),E=s!==void 0,T=u.useRef(null),M=u.useRef(null),H=u.useRef(null),N=u.useCallback(Z=>{var v;if(!n)return null;try{const D=(v=n.lngLatToContainer)==null?void 0:v.call(n,[Z[0],Z[1]]);if(D)return{x:D.x??D[0],y:D.y??D[1]}}catch{}return null},[n]),V=u.useCallback(Z=>{var v,D,S;L.current=Z,g.current.features=Z,(v=y.current)==null||v.updateFeatures(Z),(S=(D=x.current).onChange)==null||S.call(D,Z)},[]),F=u.useCallback(Z=>{var D,S;z.current=Z,g.current.selectedFeatureId=Z;const v=Z?L.current.find(R=>R.id===Z)??null:null;(S=(D=x.current).onDrawSelect)==null||S.call(D,v)},[]);u.useEffect(()=>{if(!t)return;const Z=new On(t,C,n);return y.current=Z,L.current.length>0&&Z.updateFeatures(L.current),()=>{Z.destroy(),y.current=null}},[t]);const A=u.useCallback(Z=>{var se,J,re,q;const v=g.current,D=De(Z);if(!D)return;const S=y.current;if(!S)return;const R=H.current,B=R!=null&&R.snapped?R.lng:D[0],G=R!=null&&R.snapped?R.lat:D[1],ne=k.current;if(ne==="point"){const ae=Fe(An([B,G]),"point"),he=[...L.current,ae];V(he),(J=(se=x.current).onDrawCreate)==null||J.call(se,[ae]);return}if(ne==="polyline"){v.currentVertices.push([B,G]),v.isDrawing=!0,S.showDrawingFeedback(v.currentVertices,v.mousePoint,ne,v.startPoint);return}if(ne==="polygon"){v.currentVertices.push([B,G]),v.isDrawing=!0,S.showDrawingFeedback(v.currentVertices,v.mousePoint,ne,v.startPoint);return}if(ne==="circle"){if(!v.startPoint)v.startPoint=[B,G],v.isDrawing=!0;else{const ae=x1(v.startPoint,[B,G]);if(ae>.5){const he=L1(v.startPoint,ae),de=Fe(he,"circle"),Ce=[...L.current,de];V(Ce),(q=(re=x.current).onDrawCreate)==null||q.call(re,[de])}v.startPoint=null,v.isDrawing=!1,S.clearDrawingFeedback()}return}if(ne==="merge"){const ae=z1(Z,L.current,N);if(ae&&(ae.geometry.type==="Polygon"||ae.properties.drawType==="circle")){const he=ae.id,de=[...v.mergeSelectedIds],Ce=de.indexOf(he);Ce>=0?de.splice(Ce,1):de.push(he),v.mergeSelectedIds=de,S.highlightMergeSelected(de,L.current),de.length>=2?S.showTooltip(`已选中 ${de.length} 个面,双击合并`,$e(Z),_e(Z),["[ESC] 取消"]):de.length===1&&S.showTooltip("继续点击选中更多面",$e(Z),_e(Z),["[ESC] 取消"])}else v.mergeSelectedIds=[],S.highlightMergeSelected([],L.current),S.showTooltip("点击面要素选中",$e(Z),_e(Z),["[ESC] 取消"]);return}if(ne==="split"){if(!v.splitTargetId){const ae=z1(Z,L.current,N);ae&&(ae.geometry.type==="Polygon"||ae.properties.drawType==="circle")?(v.splitTargetId=ae.id,S.highlightSplitTarget(ae.id,L.current),S.showTooltip("已选目标面,单击绘制切线起点",$e(Z),_e(Z),["[ESC] 取消"])):S.showTooltip("先点击选择要切分的面",$e(Z),_e(Z),["[ESC] 取消"]);return}v.currentVertices.push([B,G]),v.isDrawing=!0,S.showDrawingFeedback(v.currentVertices,v.mousePoint,"polyline",v.startPoint),v.currentVertices.length===1?S.showTooltip("单击继续绘制切线,双击完成切分",$e(Z),_e(Z),["[ESC] 取消"]):S.showTooltip(`切线 ${v.currentVertices.length} 个顶点,双击完成切分`,$e(Z),_e(Z),["[ESC] 取消"]);return}},[V,N]),I=u.useCallback(Z=>{var R,B,G,ne,se,J,re,q,ae,he,de,Ce,xe,Ze,oe,ue;const v=g.current,D=k.current,S=y.current;if(S){if(D==="edit"&&z.current){De(Z);return}if(Z.originalEvent&&((B=(R=Z.originalEvent).preventDefault)==null||B.call(R),(ne=(G=Z.originalEvent).stopPropagation)==null||ne.call(G)),D==="merge"){if(v.mergeSelectedIds.length>=2){const ye=L.current.filter(ve=>v.mergeSelectedIds.includes(ve.id)),pe=Dn(ye);if(pe){const Ee=[...L.current.filter(be=>!v.mergeSelectedIds.includes(be.id)),pe];V(Ee),(J=(se=x.current).onDrawCreate)==null||J.call(se,[pe]),(q=(re=x.current).onDrawDelete)==null||q.call(re,ye[0])}v.mergeSelectedIds=[],S.highlightMergeSelected([],L.current),S.hideTooltip()}return}if(D==="split"&&v.splitTargetId&&v.currentVertices.length>=2){const ye=L.current.find(pe=>pe.id===v.splitTargetId);if(ye){const pe=_n(ye,v.currentVertices);if(pe){const Ee=[...L.current.filter(be=>be.id!==v.splitTargetId),...pe];V(Ee),(he=(ae=x.current).onDrawCreate)==null||he.call(ae,pe),(Ce=(de=x.current).onDrawDelete)==null||Ce.call(de,ye)}}v.currentVertices=[],v.isDrawing=!1,v.mousePoint=null,v.splitTargetId=null,S.clearDrawingFeedback(),S.clearSplitHighlight(),S.hideTooltip();return}if(D==="polyline"&&v.currentVertices.length>=2){const ye=C1(v.currentVertices),pe=Fe(ye,"polyline"),ve=[...L.current,pe];V(ve),(Ze=(xe=x.current).onDrawCreate)==null||Ze.call(xe,[pe]),v.currentVertices=[],v.isDrawing=!1,v.mousePoint=null,S.clearDrawingFeedback();return}if(D==="polygon"&&v.currentVertices.length>=3){const ye=v1(v.currentVertices),pe=Fe(ye,"polygon"),ve=[...L.current,pe];V(ve),(ue=(oe=x.current).onDrawCreate)==null||ue.call(oe,[pe]),v.currentVertices=[],v.isDrawing=!1,v.mousePoint=null,S.clearDrawingFeedback();return}(D==="polyline"||D==="polygon")&&(v.currentVertices=[],v.isDrawing=!1,v.mousePoint=null,S.clearDrawingFeedback())}},[V]),m=u.useCallback(Z=>{const v=g.current,D=De(Z);if(!D)return;const[S,R]=D,B=y.current,G=k.current,ne=Z.originalEvent??Z.originEvent??Z.e,se=(ne==null?void 0:ne.clientX)??Z.x??0,J=(ne==null?void 0:ne.clientY)??Z.y??0;if(v.mousePoint=[S,R],B&&(se||J)){const q=H.current;if((G==="point"||G==="polyline"||G==="polygon"||G==="circle"||G==="rectangle")&&(q!=null&&q.snapped)&&q.type!=="none")B.showSnapTooltip(q.type,q.lng,q.lat,se,J);else if(G==="point")B.showTooltip("单击放置点",se,J,["[ESC] 取消"]);else if(G==="polyline")v.isDrawing?B.showTooltip("单击添加顶点,双击结束",se,J,["[ESC] 取消"]):B.showTooltip("单击开始绘制线",se,J,["[ESC] 取消"]);else if(G==="polygon")v.isDrawing?v.currentVertices.length<3?B.showTooltip("单击添加顶点",se,J,["[ESC] 取消"]):B.showTooltip("单击继续,双击闭合",se,J,["[ESC] 取消"]):B.showTooltip("单击开始绘制面",se,J,["[ESC] 取消"]);else if(G==="rectangle")v.isDragging||B.showTooltip("按住拖拽绘制矩形",se,J,["[SHIFT] 正方形","[ESC] 取消"]);else if(G==="circle")if(!v.startPoint)B.showTooltip("单击设定圆心",se,J,["[ESC] 取消"]);else{const he=x1(v.startPoint,[S,R]),de=he>1e3?`${(he/1e3).toFixed(1)} km`:`${Math.round(he)} m`;B.showTooltip(`半径 ${de},单击完成`,se,J,["[ESC] 取消"])}else G==="merge"?v.mergeSelectedIds.length>=2?B.showTooltip(`已选中 ${v.mergeSelectedIds.length} 个面,双击合并`,se,J,["[ESC] 取消"]):v.mergeSelectedIds.length===1?B.showTooltip("继续点击选中更多面",se,J,["[ESC] 取消"]):B.showTooltip("点击面要素选中",se,J,["[ESC] 取消"]):G==="split"?v.splitTargetId?v.isDrawing?B.showTooltip(`切线 ${v.currentVertices.length} 个顶点,双击完成切分`,se,J,["[ESC] 取消"]):B.showTooltip("单击绘制切线起点",se,J,["[ESC] 取消"]):B.showTooltip("先点击选择要切分的面",se,J,["[ESC] 取消"]):G==="edit"||B.hideTooltip()}if((G==="point"||G==="polyline"||G==="polygon"||G==="circle")&&b.enabled&&B){const q=Bn([S,R],L.current,b,N);H.current=q,q.snapped&&q.type!=="none"?(B.showSnapIndicator(q.lng,q.lat,q.type),v.mousePoint=[q.lng,q.lat]):B.hideSnapIndicator()}else H.current=null,B==null||B.hideSnapIndicator();if((G==="polyline"||G==="polygon")&&v.isDrawing){B==null||B.showDrawingFeedback(v.currentVertices,v.mousePoint,G,v.startPoint);return}if(G==="circle"&&v.startPoint&&v.isDrawing){B==null||B.showDrawingFeedback(v.currentVertices,v.mousePoint,G,v.startPoint);return}if(G==="rectangle"&&v.isDragging&&v.startPoint){B==null||B.showDrawingFeedback(v.currentVertices,v.mousePoint,G,v.startPoint);return}if(G==="edit"&&v.isDragging&&v.selectedFeatureId&&v.dragVertexIndex!==null&&T.current){const q=L.current.find(ae=>ae.id===v.selectedFeatureId);if(q){const ae=Tn(q,v.dragVertexIndex,S,R),he=L.current.map(de=>de.id===ae.id?ae:de);V(he),B==null||B.updateVertexHandles(ae),B==null||B.updateSelectionHighlight(ae),T.current=[S,R]}return}if(G==="edit"&&v.isDragging&&v.selectedFeatureId&&v.dragVertexIndex===null&&T.current){const[q,ae]=T.current,he=S-q,de=R-ae;if(Math.abs(he)>1e-10||Math.abs(de)>1e-10){const Ce=L.current.find(xe=>xe.id===v.selectedFeatureId);if(Ce){const xe=Zn(Ce,he,de),Ze=L.current.map(oe=>oe.id===xe.id?xe:oe);V(Ze),B==null||B.updateVertexHandles(xe),B==null||B.updateSelectionHighlight(xe),T.current=[S,R]}}return}},[V]),w=u.useCallback(Z=>{var S,R;const v=g.current,D=k.current;if(n&&D==="rectangle"){const B=(S=n.getContainer)==null?void 0:S.call(n);if(!B)return;const G=B.getBoundingClientRect(),ne=Z.clientX-G.left,se=Z.clientY-G.top,J=(R=n.containerToLngLat)==null?void 0:R.call(n,[ne,se]);if(!J)return;v.startPoint=[J.lng,J.lat],v.isDragging=!0,M.current={x:Z.clientX,y:Z.clientY},n.setMapStatus({dragEnable:!1,zoomEnable:!1});return}},[n]),P=u.useCallback(Z=>{var R,B,G,ne,se,J;const v=g.current,D=k.current,S=y.current;if(n){if(D==="rectangle"&&v.isDragging&&v.startPoint){const re=(R=n.getContainer)==null?void 0:R.call(n);if(re){const q=re.getBoundingClientRect(),ae=Z.clientX-q.left,he=Z.clientY-q.top,de=(B=n.containerToLngLat)==null?void 0:B.call(n,[ae,he]),Ce=M.current,xe=Ce?w1(Ce,{x:Z.clientX,y:Z.clientY}):1/0;if(de&&xe>Un){const Ze=[de.lng,de.lat],oe=b1(v.startPoint,Ze),ue=Fe(oe,"rectangle"),ye=[...L.current,ue];V(ye),(ne=(G=x.current).onDrawCreate)==null||ne.call(G,[ue])}}v.startPoint=null,v.isDragging=!1,v.mousePoint=null,M.current=null,S==null||S.clearDrawingFeedback(),n.setMapStatus({dragEnable:!0,zoomEnable:!0});return}if(D==="edit"&&v.isDragging&&v.selectedFeatureId){n.setMapStatus({dragEnable:!0,zoomEnable:!0});const re=L.current.find(q=>q.id===v.selectedFeatureId);re&&((J=(se=x.current).onDrawUpdate)==null||J.call(se,re)),v.isDragging=!1,v.dragVertexIndex=null,T.current=null;return}}},[n,V]),$=u.useCallback(Z=>{var D,S,R;if(k.current!=="edit")return;const v=L.current.find(B=>B.id===Z)??null;v&&(F(Z),(D=y.current)==null||D.hideFeatureFromStatic(Z),(S=y.current)==null||S.updateSelectionHighlight(v),(R=y.current)==null||R.updateVertexHandles(v))},[F]),j=u.useCallback(Z=>{if(k.current!=="edit"||!n||!z.current)return;const v=g.current,D=L.current.find(R=>R.id===z.current);if(!D)return;const S=Re(D);Z>=0&&Z<S.length&&(T.current=S[Z]),v.isDragging=!0,v.dragVertexIndex=Z,n.setMapStatus({dragEnable:!1,zoomEnable:!1})},[n]),O=u.useCallback((Z,v)=>{if(k.current!=="edit")return;const D=g.current;D.isDragging||!L.current.find(R=>R.id===Z)||D.selectedFeatureId===Z&&(D.isDragging=!0,D.dragVertexIndex=null,T.current=v,n.setMapStatus({dragEnable:!1,zoomEnable:!1}))},[n]),K=u.useCallback(Z=>{var S,R,B,G;if(k.current!=="edit"||!z.current)return;const v=L.current.find(ne=>ne.id===z.current);if(!v)return;let D=null;if(v.geometry.type==="LineString"?D=qn(v,Z):v.geometry.type==="Polygon"&&(D=Yn(v,Z)),D){const ne=L.current.map(se=>se.id===D.id?D:se);V(ne),(R=(S=x.current).onDrawUpdate)==null||R.call(S,D),(B=y.current)==null||B.updateVertexHandles(D),(G=y.current)==null||G.updateSelectionHighlight(D)}},[V]);u.useCallback(Z=>{var R,B,G,ne;if(k.current!=="edit"||!z.current)return;const v=L.current.find(se=>se.id===z.current);if(!v)return;const D=Re(v);let S=null;if(v.geometry.type==="LineString"&&D.length>=2){let se=-1,J=1/0;for(let re=0;re<D.length-1;re++){const{dist:q}=E1(Z,D[re],D[re+1]);q<J&&(J=q,se=re)}se>=0&&J<.001&&(S=A1(v,se,Z))}else if(v.geometry.type==="Polygon"&&D.length>=3){let se=-1,J=1/0;for(let re=0;re<D.length;re++){const q=(re+1)%D.length,{dist:ae}=E1(Z,D[re],D[q]);ae<J&&(J=ae,se=re)}se>=0&&J<.001&&(S=Z1(v,se,Z))}if(S){const se=L.current.map(J=>J.id===S.id?S:J);V(se),(B=(R=x.current).onDrawUpdate)==null||B.call(R,S),(G=y.current)==null||G.updateVertexHandles(S),(ne=y.current)==null||ne.updateSelectionHighlight(S)}},[V]);const ee=u.useCallback((Z,v)=>{var R,B,G,ne;if(k.current!=="edit"||!z.current)return;const D=L.current.find(se=>se.id===z.current);if(!D)return;let S=null;if(D.geometry.type==="LineString"?S=A1(D,Z,v):D.geometry.type==="Polygon"&&(S=Z1(D,Z,v)),S){const se=L.current.map(J=>J.id===S.id?S:J);V(se),(B=(R=x.current).onDrawUpdate)==null||B.call(R,S),(G=y.current)==null||G.updateVertexHandles(S),(ne=y.current)==null||ne.updateSelectionHighlight(S)}},[V]),Y=u.useCallback(()=>{var Z,v,D;k.current==="edit"&&z.current&&(F(null),(Z=y.current)==null||Z.showAllFeatures(),(v=y.current)==null||v.clearSelectionHighlight(),(D=y.current)==null||D.clearVertexHandles())},[F]),X=u.useCallback(Z=>{var R,B,G,ne,se,J,re;const v=k.current;if(v===Z)return;const D=g.current,S=y.current;if(D.isDrawing&&(D.currentVertices=[],D.startPoint=null,D.mousePoint=null,D.isDrawing=!1,S==null||S.clearDrawingFeedback(),S==null||S.removeDrawingLayers()),v==="merge"&&(D.mergeSelectedIds=[],S==null||S.clearMergeHighlight(),S==null||S.hideTooltip()),v==="split"&&(D.splitTargetId=null,D.currentVertices=[],D.isDrawing=!1,S==null||S.clearDrawingFeedback(),S==null||S.clearSplitHighlight(),S==null||S.hideTooltip()),v==="edit"&&(F(null),S==null||S.showAllFeatures(),S==null||S.clearSelectionHighlight(),S==null||S.clearVertexHandles(),S==null||S.removeSelectionLayers(),S==null||S.removeVertexLayer(),S==null||S.removeEditClickHandlers(),S==null||S.clearEditCursors(),S==null||S.hideTooltip(),n&&n.setMapStatus({doubleClickZoom:!0})),v!=="edit"&&v!=="none"&&v!=="merge"&&v!=="split"){S==null||S.removeDrawingLayers(),S==null||S.hideTooltip(),n&&n.setMapStatus({doubleClickZoom:!0});const q=(R=n==null?void 0:n.getContainer)==null?void 0:R.call(n);q&&q.classList.remove("l7-draw-cursor-crosshair")}if(k.current=Z,D.mode=Z,Z==="merge"){D.mergeSelectedIds=[];const q=(B=n==null?void 0:n.getContainer)==null?void 0:B.call(n);q&&q.classList.add("l7-draw-cursor-crosshair")}else if(Z==="split"){D.splitTargetId=null,D.currentVertices=[],D.isDrawing=!1,n&&n.setMapStatus({doubleClickZoom:!1});const q=(G=n==null?void 0:n.getContainer)==null?void 0:G.call(n);q&&q.classList.add("l7-draw-cursor-crosshair")}else if(Z==="edit")S==null||S.setupEditClickHandlers($,j,Y,K,ee,O),n&&n.setMapStatus({doubleClickZoom:!1});else if(Z!=="none"){n&&(Z==="polyline"||Z==="polygon")&&n.setMapStatus({doubleClickZoom:!1});const q=(ne=n==null?void 0:n.getContainer)==null?void 0:ne.call(n);q&&q.classList.add("l7-draw-cursor-crosshair")}else{const q=(se=n==null?void 0:n.getContainer)==null?void 0:se.call(n);q&&q.classList.remove("l7-draw-cursor-crosshair")}(re=(J=x.current).onModeChange)==null||re.call(J,Z)},[n,$,j,Y,F]),te=u.useCallback(Z=>{var R,B;const v=g.current,D=k.current,S=y.current;if(Z.key==="Escape"){v.isDrawing&&(v.currentVertices=[],v.startPoint=null,v.mousePoint=null,v.isDrawing=!1,S==null||S.clearDrawingFeedback()),z.current&&(F(null),S==null||S.showAllFeatures(),S==null||S.clearSelectionHighlight(),S==null||S.clearVertexHandles()),S==null||S.hideTooltip();return}if((Z.key==="Delete"||Z.key==="Backspace")&&D==="edit"&&z.current){Z.preventDefault();const G=z.current,ne=L.current.find(se=>se.id===G);if(ne){const se=L.current.filter(J=>J.id!==G);V(se),(B=(R=x.current).onDrawDelete)==null||B.call(R,ne),F(null),S==null||S.showAllFeatures(),S==null||S.clearSelectionHighlight(),S==null||S.clearVertexHandles()}return}},[V,F]);u.useEffect(()=>{var B;if(!t||!n)return;const Z=G=>A(G),v=G=>I(G),D=G=>m(G),S=(B=n.getContainer)==null?void 0:B.call(n);n.on("click",Z),n.on("dblclick",v),n.on("mousemove",D),S&&S.addEventListener("mousedown",w),document.addEventListener("mouseup",P),document.addEventListener("keydown",te);const R=G=>{k.current==="edit"&&G.preventDefault()};return S&&S.addEventListener("contextmenu",R),()=>{n.off("click",Z),n.off("dblclick",v),n.off("mousemove",D),S&&(S.removeEventListener("mousedown",w),S.removeEventListener("contextmenu",R)),document.removeEventListener("mouseup",P),document.removeEventListener("keydown",te);try{n.setMapStatus({dragEnable:!0,zoomEnable:!0,doubleClickZoom:!0})}catch{}S&&S.classList.remove("l7-draw-cursor-crosshair")}},[t,n,A,I,m,w,P,te]),u.useEffect(()=>{var Z;E&&s&&(L.current=[...s],g.current.features=[...s],(Z=y.current)==null||Z.updateFeatures(s))},[E,s]);const _=u.useCallback(Z=>{var D,S;if(E)return;const v=[...L.current,...Z];V(v),(S=(D=x.current).onDrawCreate)==null||S.call(D,Z)},[E,V]),U=u.useCallback(Z=>{var S,R,B,G,ne;if(E)return;const v=L.current.find(se=>se.id===Z);if(!v)return;const D=L.current.filter(se=>se.id!==Z);V(D),(R=(S=x.current).onDrawDelete)==null||R.call(S,v),z.current===Z&&(F(null),(B=y.current)==null||B.showAllFeatures(),(G=y.current)==null||G.clearSelectionHighlight(),(ne=y.current)==null||ne.clearVertexHandles())},[E,V,F]),ce=u.useCallback(()=>{z.current&&U(z.current)},[U]),ie=u.useCallback(()=>{var Z,v,D;E||(V([]),F(null),(Z=y.current)==null||Z.showAllFeatures(),(v=y.current)==null||v.clearSelectionHighlight(),(D=y.current)==null||D.clearVertexHandles())},[E,V,F]),Q=u.useCallback(()=>[...L.current],[]),le=u.useCallback(Z=>{var v,D,S,R,B,G;if(k.current==="edit")if(Z){const ne=L.current.find(se=>se.id===Z)??null;F(Z),ne&&((v=y.current)==null||v.hideFeatureFromStatic(Z),(D=y.current)==null||D.updateSelectionHighlight(ne),(S=y.current)==null||S.updateVertexHandles(ne))}else F(null),(R=y.current)==null||R.showAllFeatures(),(B=y.current)==null||B.clearSelectionHighlight(),(G=y.current)==null||G.clearVertexHandles()},[F]);return{mode:k.current,features:L.current,selectedFeatureId:z.current,setMode:X,addFeatures:_,deleteFeature:U,deleteSelectedFeature:ce,clearAll:ie,getFeatures:Q,selectFeature:le,layerManager:y.current}}const F1=[{mode:"none",icon:"pan_tool",title:"手型 — 关闭绘制态,恢复地图交互",label:"手型"},{mode:"point",icon:"location_on",title:"点 — 单击放置",label:"点"},{mode:"polyline",icon:"timeline",title:"线 — 单击添加顶点,双击结束",label:"线"},{mode:"polygon",icon:"pentagon",title:"面 — 单击添加顶点,双击闭合",label:"面"},{mode:"circle",icon:"radio_button_unchecked",title:"圆 — 单击圆心,再单击确定半径",label:"圆形"},{mode:"rectangle",icon:"crop_square",title:"矩形 — 按住拖拽绘制",label:"矩形"},{mode:"edit",icon:"edit_square",title:"编辑 — 选中要素后拖拽移动或编辑顶点",label:"编辑"}],T1=[{mode:"merge",icon:"call_merge",title:"合并 — 选中2+要素合并为一个",label:"合并"},{mode:"split",icon:"content_cut",title:"切分 — 绘制切线将要素分割",label:"切分"}];function N1(){const e=u.useRef(null),t=u.useCallback((r,o)=>{if(!e.current){const p=document.createElement("div");p.style.cssText=["position:fixed","pointer-events:none","z-index:9999","padding:5px 10px","border-radius:4px","background:rgba(26,27,34,0.92)","color:#f2eff9",'font:500 11px/16px "JetBrains Mono",monospace',"white-space:nowrap","box-shadow:0 2px 8px rgba(0,0,0,0.3)"].join(";"),document.body.appendChild(p),e.current=p}const l=e.current;l.textContent=o,l.style.display="block";const s=l.getBoundingClientRect(),a=r.currentTarget.getBoundingClientRect();let c=a.right+8,d=a.top+a.height/2-s.height/2;const h=window.innerWidth,f=window.innerHeight;c+s.width>h-4&&(c=a.left-s.width-8),c<4&&(c=a.left+a.width/2-s.width/2,d=a.top-s.height-8),d<4&&(d=a.bottom+8),d+s.height>f-4&&(d=a.top-s.height-8),l.style.left=`${Math.max(4,c)}px`,l.style.top=`${Math.max(4,d)}px`},[]),n=u.useCallback(()=>{e.current&&(e.current.style.display="none")},[]);return u.useEffect(()=>()=>{var r;e.current&&((r=e.current.parentElement)==null||r.removeChild(e.current),e.current=null)},[]),{showTooltip:t,hideTooltip:n}}function I1(e,t,n,r,o,l){return e.map(s=>i.jsx("button",{className:`l7-button-control ${l}${t===s.mode?" l7-button-control--active":""}`,onClick:()=>n(s.mode),onMouseEnter:a=>r(a,s.title),onMouseLeave:o,"aria-label":s.title,"aria-pressed":t===s.mode,children:i.jsx("span",{className:"material-symbols-outlined",children:s.icon})},s.mode))}const Gn=({activeMode:e,onModeChange:t,modes:n,showDelete:r=!0,hasSelection:o=!1,hasFeatures:l=!1,onDeleteSelected:s,onClearAll:a,className:c,style:d})=>{const{showTooltip:h,hideTooltip:f}=N1(),p=u.useMemo(()=>n?F1.filter(y=>y.mode==="none"||n.includes(y.mode)):F1,[n]),g=u.useCallback(y=>{t(y==="none"||e===y?"none":y)},[e,t]);return i.jsxs("div",{className:`l7-control l7-control-draw l7-control--glass${c?` ${c}`:""}`,style:d,role:"toolbar","aria-label":"基础绘制工具",children:[I1(p,e,g,h,f,"l7-draw-tool-btn"),r&&e==="edit"&&o&&s&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"l7-draw-separator"}),i.jsx("button",{className:"l7-button-control l7-draw-action-btn",onClick:s,onMouseEnter:y=>h(y,"删除选中要素"),onMouseLeave:f,"aria-label":"删除选中要素",children:i.jsx("span",{className:"material-symbols-outlined",children:"delete"})})]}),r&&l&&a&&i.jsx("button",{className:"l7-button-control l7-draw-action-btn",onClick:a,onMouseEnter:y=>h(y,"清除所有要素"),onMouseLeave:f,"aria-label":"清除所有要素",children:i.jsx("span",{className:"material-symbols-outlined",children:"delete_sweep"})})]})},Jn=({activeMode:e,onModeChange:t,modes:n,className:r,style:o})=>{const{showTooltip:l,hideTooltip:s}=N1(),a=u.useMemo(()=>n?T1.filter(d=>d.mode==="none"||n.includes(d.mode)):T1,[n]),c=u.useCallback(d=>{t(d==="none"||e===d?"none":d)},[e,t]);return i.jsx("div",{className:`l7-control l7-control-draw l7-control--glass${r?` ${r}`:""}`,style:o,role:"toolbar","aria-label":"高级操作工具",children:I1(a,e,c,l,s,"l7-draw-advanced-btn")})},Vt=u.forwardRef(function({position:t="topright",defaultFeatures:n,features:r,modes:o,showDelete:l=!0,styles:s,snap:a,className:c,style:d,onDrawCreate:h,onDrawUpdate:f,onDrawDelete:p,onDrawSelect:g,onModeChange:y,onChange:C},b){const{scene:x,mapsService:k,positionClassName:L}=ke(t),z=Me(),E=Xn({scene:x,mapsService:k,styles:s,snap:a,defaultFeatures:n,features:r,onDrawCreate:h,onDrawUpdate:f,onDrawDelete:p,onDrawSelect:g,onModeChange:y,onChange:C}),[T,M]=u.useState("none");u.useImperativeHandle(b,()=>({setMode:E.setMode,addFeatures:E.addFeatures,deleteFeature:E.deleteFeature,clearAll:E.clearAll,getFeatures:E.getFeatures,selectFeature:E.selectFeature}),[E]);const H=u.useCallback(m=>{M(m),E.setMode(m)},[E]),N=u.useCallback(()=>{E.deleteSelectedFeature()},[E]),V=u.useCallback(()=>{E.clearAll()},[E]),F=E.selectedFeatureId!==null,A=E.features.length>0,I=i.jsxs(i.Fragment,{children:[i.jsx(Gn,{activeMode:T,onModeChange:H,modes:o,showDelete:l,hasSelection:F,hasFeatures:A,onDeleteSelected:N,onClearAll:V}),i.jsx(Jn,{activeMode:T,onModeChange:H,modes:o})]});return z?i.jsx("div",{className:c,style:d,children:I}):i.jsx("div",{className:`l7-control-anchor ${L}`,children:I})});we.mark(Vt);async function P1(e){let t,n;e instanceof File?(t=URL.createObjectURL(e),n=()=>URL.revokeObjectURL(t)):t=e;const{width:r,height:o}=await Kn(t);return{url:t,width:r,height:o,revokeUrl:n}}function Kn(e){return new Promise((t,n)=>{const r=new Image;r.onload=()=>t({width:r.naturalWidth,height:r.naturalHeight}),r.onerror=()=>n(new Error("Failed to load image")),r.crossOrigin="anonymous",r.src=e})}function D1(e){return new Promise((t,n)=>{const r=new Image;r.onload=()=>t(r),r.onerror=()=>n(new Error("Failed to load image")),r.crossOrigin="anonymous",r.src=e})}async function Qn(e,t,n="image/png",r=.92){const o=await D1(e),l=document.createElement("canvas");l.width=Math.round(t.width),l.height=Math.round(t.height);const s=l.getContext("2d");if(!s)throw new Error("Canvas 2D context unavailable");s.drawImage(o,Math.round(t.x),Math.round(t.y),Math.round(t.width),Math.round(t.height),0,0,l.width,l.height);const a=await new Promise((h,f)=>{l.toBlob(p=>p?h(p):f(new Error("Canvas toBlob failed")),n,r)}),c=URL.createObjectURL(a);return{blob:a,url:c,revokeUrl:()=>URL.revokeObjectURL(c),width:l.width,height:l.height}}function Rn(e,t,n){const r=Math.max(0,Math.min(e.x,t-e.width)),o=Math.max(0,Math.min(e.y,n-e.height)),l=Math.max(1,Math.min(e.width,t-r)),s=Math.max(1,Math.min(e.height,n-o));return{x:r,y:o,width:l,height:s}}function er(e,t,n){const r=360/Math.pow(2,t)*.3,o=r*n/2,l=r/2,[s,a]=e;return[[s-o,a+l],[s+o,a+l],[s+o,a-l],[s-o,a-l]]}function tr(e){const t=e.map(r=>r[0]),n=e.map(r=>r[1]);return[Math.min(...t),Math.min(...n),Math.max(...t),Math.max(...n)]}function nr(e,t){const n=[],r=[];for(let l=0;l<4;l++){const[s,a]=e[l],[c,d]=t[l];n.push([-s,-a,-1,0,0,0,c*s,c*a]),r.push(-c),n.push([0,0,0,-s,-a,-1,d*s,d*a]),r.push(-d)}const o=ir(n,r);return[o[0],o[1],o[2],o[3],o[4],o[5],o[6],o[7],1]}function rr(e,t,n,r){const o="naturalWidth"in e?e.naturalWidth:e.width,l="naturalHeight"in e?e.naturalHeight:e.height,s=t.map(H=>H[0]),a=t.map(H=>H[1]),c=Math.min(...s),d=Math.max(...s),h=Math.min(...a),f=Math.max(...a),p=H=>[(H[0]-c)/(d-c)*n,(f-H[1])/(f-h)*r],g=t.map(p),C=nr(g,[[0,0],[o,0],[o,l],[0,l]]),b=document.createElement("canvas");b.width=n,b.height=r;const x=b.getContext("2d"),k=document.createElement("canvas");k.width=o,k.height=l;const L=k.getContext("2d");L.drawImage(e,0,0);const z=L.getImageData(0,0,o,l),E=x.createImageData(n,r),T=z.data,M=E.data;for(let H=0;H<r;H++)for(let N=0;N<n;N++){const V=C[6]*N+C[7]*H+C[8];if(Math.abs(V)<1e-10)continue;const F=(C[0]*N+C[1]*H+C[2])/V,A=(C[3]*N+C[4]*H+C[5])/V;if(F>=0&&F<o-1&&A>=0&&A<l-1){const I=Math.floor(F),m=Math.floor(A),w=F-I,P=A-m,$=(m*o+I)*4,j=(H*n+N)*4;for(let O=0;O<4;O++)M[j+O]=Math.round(T[$+O]*(1-w)*(1-P)+T[$+4+O]*w*(1-P)+T[$+o*4+O]*(1-w)*P+T[$+o*4+4+O]*w*P)}}return x.putImageData(E,0,0),b}function or(e,t,n,r,o,l,s){const a=document.createElement("canvas");return a.width=r,a.height=o,a.getContext("2d").drawImage(e,t,n,r,o,0,0,r,o),new Promise((d,h)=>{a.toBlob(f=>f?d(f):h(new Error("tile export failed")),l,s)})}async function sr(e,t,n){const{outputWidth:r,outputHeight:o,cols:l,rows:s,format:a="image/png",quality:c=.92}=n,d=rr(e,t,r,o),h=t.map(M=>M[0]),f=t.map(M=>M[1]),p=Math.min(...h),g=Math.max(...h),y=Math.min(...f),C=Math.max(...f),b=[p,y,g,C],x=await new Promise((M,H)=>{d.toBlob(N=>N?M(N):H(new Error("export failed")),a,c)}),k=Math.floor(r/l),L=Math.floor(o/s),z=(g-p)/l,E=(C-y)/s,T=[];for(let M=0;M<s;M++)for(let H=0;H<l;H++){const N=H*k,V=M*L,F=H===l-1?r-N:k,A=M===s-1?o-V:L,I=p+H*z,m=H===l-1?g:I+z,w=C-M*E,P=M===s-1?y:w-E,$=[I,P,m,w],j=[[I,w],[m,w],[m,P],[I,P]],O=await or(d,N,V,F,A,a,c);T.push({blob:O,row:M,col:H,extent:$,corners:j,width:F,height:A})}return{canvas:d,fullBlob:x,tiles:T,extent:b}}function ir(e,t){const r=[];for(let o=0;o<8;o++)r.push([...e[o],t[o]]);for(let o=0;o<8;o++){let l=o,s=Math.abs(r[o][o]);for(let c=o+1;c<8;c++)Math.abs(r[c][o])>s&&(s=Math.abs(r[c][o]),l=c);[r[o],r[l]]=[r[l],r[o]];const a=r[o][o];if(Math.abs(a)<1e-12)throw new Error("Singular matrix in homography computation");for(let c=o;c<=8;c++)r[o][c]/=a;for(let c=0;c<8;c++){if(c===o)continue;const d=r[c][o];for(let h=o;h<=8;h++)r[c][h]-=d*r[o][h]}}return r.map(o=>o[8])}function lr({scene:e,mapsService:t,corners:n,defaultCorners:r,imageSource:o,opacity:l=.7,onCornersChange:s,onImageLoad:a}){const[c,d]=u.useState({phase:"idle",imageUrl:null,imageDimensions:null,corners:r??null,draggingCorner:null,opacity:l}),[h,f]=u.useState(null),p=u.useRef(c.corners),g=u.useRef(null),y=u.useRef(null),C=u.useRef(s);C.current=s;const b=u.useRef(null),x=n!==void 0,k=x?n:c.corners;u.useEffect(()=>{p.current=k??null},[k]),u.useEffect(()=>{x&&n&&d(m=>({...m,corners:n}))},[x,n]),u.useEffect(()=>{o&&M(o)},[o]);const[L,z]=u.useState(k??null);u.useEffect(()=>{c.draggingCorner||z(k??null)},[k,c.draggingCorner]),u.useEffect(()=>{if(!e||!c.imageUrl||!L){if(b.current){try{e==null||e.removeLayer(b.current)}catch{}b.current=null}return}const m=[L[0],L[1],L[2],L[3]];if(b.current){try{e.removeLayer(b.current)}catch{}b.current=null}const w=new ge.ImageLayer({zIndex:10,name:"__calibration_image__"});return w.source(c.imageUrl,{parser:{type:"image",coordinates:m}}),w.style({opacity:c.opacity}),e.addLayer(w),b.current=w,()=>{if(b.current){try{e.removeLayer(b.current)}catch{}b.current=null}}},[e,c.imageUrl,L,c.opacity]);const E=u.useCallback(()=>{if(!t||!p.current){f(null);return}try{const m=p.current.map(w=>{const P=t.lngLatToContainer([w[0],w[1]]);return[P.x,P.y]});f(m)}catch{}},[t]);u.useEffect(()=>{if(!t||!k)return;E();const m=()=>E();return t.on("camerachange",m),t.on("viewchange",m),()=>{t.off("camerachange",m),t.off("viewchange",m)}},[t,k,E]);const T=u.useCallback(m=>{var j;if(!t)return;g.current=m,d(O=>({...O,draggingCorner:m})),t.setMapStatus({dragEnable:!1,zoomEnable:!1});const w=(j=t.getContainer)==null?void 0:j.call(t),P=O=>{var _;if(g.current===null||!p.current||!w)return;const K=w.getBoundingClientRect(),ee=O.clientX-K.left,Y=O.clientY-K.top,X=t.containerToLngLat([ee,Y]);if(!X)return;const te=[...p.current];te[g.current]=[X.lng,X.lat],p.current=te,x||d(U=>({...U,corners:te})),(_=C.current)==null||_.call(C,te),E()},$=()=>{g.current=null,d(O=>({...O,draggingCorner:null})),t.setMapStatus({dragEnable:!0,zoomEnable:!0}),document.removeEventListener("mousemove",P),document.removeEventListener("mouseup",$)};document.addEventListener("mousemove",P),document.addEventListener("mouseup",$)},[t,x,E]),M=u.useCallback(async(m,w)=>{var P,$;(P=y.current)==null||P.call(y),y.current=null;try{const j=await P1(m);y.current=j.revokeUrl??null;let O=w??p.current;if(!O&&t){const K=t.getCenter(),ee=t.getZoom(),Y=j.width/j.height;O=er([K.lng,K.lat],ee,Y)}d(K=>({...K,phase:"calibrating",imageUrl:j.url,imageDimensions:{width:j.width,height:j.height},corners:x?K.corners:O})),!x&&O&&(p.current=O,($=C.current)==null||$.call(C,O)),a==null||a({width:j.width,height:j.height}),requestAnimationFrame(E)}catch(j){console.error("Failed to load image:",j)}},[t,x,a,E]),H=u.useCallback(m=>{d(w=>({...w,phase:m}))},[]),N=u.useCallback(m=>{d(w=>({...w,opacity:m}))},[]),V=u.useCallback(()=>{var m;if((m=y.current)==null||m.call(y),y.current=null,p.current=null,b.current&&e){try{e.removeLayer(b.current)}catch{}b.current=null}d({phase:"idle",imageUrl:null,imageDimensions:null,corners:null,draggingCorner:null,opacity:l}),f(null)},[l,e]),F=u.useCallback(()=>p.current,[]),A=u.useCallback(m=>{var w;p.current=m,x||d(P=>({...P,corners:m})),(w=C.current)==null||w.call(C,m),E()},[x,E]),I=u.useCallback(async m=>{if(!c.imageUrl||!p.current||!c.imageDimensions)throw new Error("No image or corners to export");const w=await D1(c.imageUrl),P=p.current,$=(m==null?void 0:m.outputWidth)||c.imageDimensions.width,j=(m==null?void 0:m.outputHeight)||c.imageDimensions.height,O=(m==null?void 0:m.cols)||1,K=(m==null?void 0:m.rows)||1,{fullBlob:ee,tiles:Y,extent:X}=await sr(w,P,{outputWidth:$,outputHeight:j,cols:O,rows:K,format:m==null?void 0:m.format,quality:m==null?void 0:m.quality}),te=URL.createObjectURL(ee);return{tiles:Y.map(U=>({blob:U.blob,previewUrl:URL.createObjectURL(U.blob),row:U.row,col:U.col,extent:U.extent,corners:U.corners,width:U.width,height:U.height})),extent:X,previewUrl:te,blob:ee,outputWidth:$,outputHeight:j}},[c.imageUrl,c.imageDimensions]);return u.useEffect(()=>()=>{var m;if((m=y.current)==null||m.call(y),b.current&&e)try{e.removeLayer(b.current)}catch{}},[e]),{state:c,screenPositions:h,setImage:M,setPhase:H,setOpacity:N,startDrag:T,clear:V,getCorners:F,setCorners:A,exportImage:I}}const ar=["TL","TR","BR","BL"],tt=14;function cr({screenPositions:e,draggingCorner:t,phase:n,onStartDrag:r}){const o=u.useCallback(a=>c=>{c.preventDefault(),c.stopPropagation(),r(a)},[r]),l=n==="calibrating",s=`M ${e[0][0]},${e[0][1]} L ${e[1][0]},${e[1][1]} L ${e[2][0]},${e[2][1]} L ${e[3][0]},${e[3][1]} Z`;return i.jsxs(i.Fragment,{children:[i.jsx("svg",{style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",overflow:"visible"},children:i.jsx("path",{d:s,fill:"none",stroke:"#f59e0b",strokeWidth:"2",strokeDasharray:"6 3"})}),l&&e.map((a,c)=>i.jsx("div",{onMouseDown:o(c),style:{position:"absolute",left:a[0]-tt/2,top:a[1]-tt/2,width:tt,height:tt,borderRadius:"50%",backgroundColor:"#fff",border:"2px solid #f59e0b",boxShadow:"0 2px 4px rgba(0,0,0,0.3)",cursor:t===c?"grabbing":"grab",transform:t===c?"scale(1.3)":"scale(1)",transition:t===null?"transform 0.15s ease":"none",zIndex:t===c?10:1,pointerEvents:"auto"},title:`${ar[c]} 角点`},c))]})}const $1=["左上 (TL)","右上 (TR)","右下 (BR)","左下 (BL)"],Ae=10;function ur({imageUrl:e,imageDimensions:t,mapCenter:n,mapZoom:r,showInitialCoords:o=!0,onConfirm:l,onCancel:s}){const[a,c]=u.useState({x:0,y:0,width:t.width,height:t.height}),[d,h]=u.useState(null),[f,p]=u.useState(!0),[g,y]=u.useState([[0,0],[0,0],[0,0],[0,0]]),C=u.useRef(null),[b,x]=u.useState(1);u.useEffect(()=>{const F=()=>{if(!C.current)return;const A=C.current.clientWidth,I=C.current.clientHeight,m=A/t.width,w=I/t.height;x(Math.min(m,w,1))};return F(),window.addEventListener("resize",F),()=>window.removeEventListener("resize",F)},[t]);const k=u.useRef(null);u.useCallback((F,A)=>{if(!k.current)return{imgX:0,imgY:0};const I=k.current.getBoundingClientRect(),m=(F-I.left)/b,w=(A-I.top)/b;return{imgX:m,imgY:w}},[b]);const L=u.useCallback((F,A)=>{F.preventDefault(),F.stopPropagation(),h({handle:A,startMouseX:F.clientX,startMouseY:F.clientY,startCrop:{...a}})},[a]);u.useEffect(()=>{if(!d)return;const F=I=>{const m=(I.clientX-d.startMouseX)/b,w=(I.clientY-d.startMouseY)/b,P=d.startCrop;let $;switch(d.handle){case"move":$={...P,x:P.x+m,y:P.y+w};break;case"tl":$={x:P.x+m,y:P.y+w,width:P.width-m,height:P.height-w};break;case"tr":$={x:P.x,y:P.y+w,width:P.width+m,height:P.height-w};break;case"br":$={x:P.x,y:P.y,width:P.width+m,height:P.height+w};break;case"bl":$={x:P.x+m,y:P.y,width:P.width-m,height:P.height+w};break;default:$=P}$.width<20&&((d.handle==="tl"||d.handle==="bl")&&($.x=P.x+P.width-20),$.width=20),$.height<20&&((d.handle==="tl"||d.handle==="tr")&&($.y=P.y+P.height-20),$.height=20),c(Rn($,t.width,t.height))},A=()=>{h(null)};return document.addEventListener("mousemove",F),document.addEventListener("mouseup",A),()=>{document.removeEventListener("mousemove",F),document.removeEventListener("mouseup",A)}},[d,b,t]);const z=u.useCallback((F,A,I)=>{const m=parseFloat(I);if(isNaN(m))return;const w=[...g];w[F]=[A==="lng"?m:w[F][0],A==="lat"?m:w[F][1]],y(w)},[g]);u.useEffect(()=>{if(f&&n&&r!==null){const F=a.width/a.height,A=360/Math.pow(2,r)*.3,I=A*F/2,m=A/2,[w,P]=n;y([[w-I,P+m],[w+I,P+m],[w+I,P-m],[w-I,P-m]])}},[f,n,r,a.width,a.height]);const E=u.useCallback(()=>{l(a,f?null:g)},[a,f,g,l]),T=a.x*b,M=a.y*b,H=a.width*b,N=a.height*b,V=F=>({position:"absolute",left:0,top:0,width:t.width*b,height:t.height*b,background:"rgba(0, 0, 0, 0.45)",clipPath:F,pointerEvents:"none"});return i.jsx("div",{style:{position:"fixed",inset:0,zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.6)"},onClick:s,children:i.jsxs("div",{style:{background:"#fff",borderRadius:10,padding:0,width:680,maxHeight:"90vh",overflow:"hidden",boxShadow:"0 8px 32px rgba(0,0,0,0.3)",display:"flex",flexDirection:"column"},onClick:F=>F.stopPropagation(),children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 20px",borderBottom:"1px solid #e5e7eb",fontSize:15,fontWeight:600},children:[i.jsx("span",{children:"图片裁剪 & 初始坐标"}),i.jsx("button",{onClick:s,style:{border:"none",background:"transparent",fontSize:20,cursor:"pointer",color:"#666",lineHeight:1},children:"✕"})]}),i.jsxs("div",{style:{display:"flex",flex:1,overflow:"hidden"},children:[i.jsx("div",{ref:C,style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:16,background:"#f9fafb",overflow:"hidden",minHeight:300},children:i.jsxs("div",{style:{position:"relative",lineHeight:0},children:[i.jsx("img",{ref:k,src:e,style:{width:t.width*b,height:t.height*b,display:"block",userSelect:"none",pointerEvents:"none"},draggable:!1}),i.jsx("div",{style:V(`polygon(0% 0%, 100% 0%, 100% ${M}px, ${T}px ${M}px, ${T}px ${M+N}px, 0% ${M+N}px)`)}),i.jsx("div",{style:V(`polygon(100% 0%, 100% 100%, ${T+H}px 100%, ${T+H}px ${M}px, 100% ${M}px)`)}),i.jsx("div",{style:V(`polygon(${T+H}px ${M}px, 100% ${M}px, 100% 100%, ${T+H}px 100%, ${T+H}px ${M+N}px)`)}),i.jsx("div",{style:V(`polygon(0% ${M+N}px, ${T}px ${M+N}px, ${T+H}px ${M+N}px, ${T+H}px 100%, 0% 100%)`)}),i.jsxs("div",{onMouseDown:F=>L(F,"move"),style:{position:"absolute",left:T,top:M,width:H,height:N,border:"2px solid #f59e0b",cursor:(d==null?void 0:d.handle)==="move"?"grabbing":"grab",pointerEvents:"auto",boxSizing:"border-box"},children:[i.jsxs("div",{style:{position:"absolute",inset:0,pointerEvents:"none"},children:[i.jsx("div",{style:{position:"absolute",top:"33.3%",left:0,right:0,height:1,background:"rgba(245,158,7,0.3)"}}),i.jsx("div",{style:{position:"absolute",top:"66.6%",left:0,right:0,height:1,background:"rgba(245,158,7,0.3)"}}),i.jsx("div",{style:{position:"absolute",left:"33.3%",top:0,bottom:0,width:1,background:"rgba(245,158,7,0.3)"}}),i.jsx("div",{style:{position:"absolute",left:"66.6%",top:0,bottom:0,width:1,background:"rgba(245,158,7,0.3)"}})]}),["tl","tr","br","bl"].map(F=>{const A={tl:{left:-Ae/2,top:-Ae/2,cursor:"nwse-resize"},tr:{right:-Ae/2,top:-Ae/2,cursor:"nesw-resize"},br:{right:-Ae/2,bottom:-Ae/2,cursor:"nwse-resize"},bl:{left:-Ae/2,bottom:-Ae/2,cursor:"nesw-resize"}};return i.jsx("div",{onMouseDown:I=>L(I,F),style:{position:"absolute",width:Ae,height:Ae,background:"#fff",border:"2px solid #f59e0b",borderRadius:2,pointerEvents:"auto",...A[F]}},F)}),i.jsxs("div",{style:{position:"absolute",bottom:-22,left:"50%",transform:"translateX(-50%)",fontSize:10,color:"#f59e0b",whiteSpace:"nowrap",pointerEvents:"none",fontFamily:"monospace",background:"rgba(0,0,0,0.5)",padding:"1px 4px",borderRadius:2},children:[Math.round(a.width)," × ",Math.round(a.height)]})]})]})}),o&&i.jsxs("div",{style:{width:260,padding:"16px 20px",borderLeft:"1px solid #e5e7eb",display:"flex",flexDirection:"column",gap:12,overflowY:"auto",fontSize:12},children:[i.jsx("div",{style:{fontWeight:600,marginBottom:4,color:"#333"},children:"裁剪区域"}),i.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"6px 12px",color:"#666",fontFamily:"monospace",fontSize:11},children:[i.jsxs("span",{children:["X: ",Math.round(a.x),"px"]}),i.jsxs("span",{children:["Y: ",Math.round(a.y),"px"]}),i.jsxs("span",{children:["W: ",Math.round(a.width),"px"]}),i.jsxs("span",{children:["H: ",Math.round(a.height),"px"]})]}),i.jsx("button",{onClick:()=>c({x:0,y:0,width:t.width,height:t.height}),style:{padding:"4px 12px",fontSize:11,border:"1px solid #d1d5db",borderRadius:4,background:"#fff",cursor:"pointer",alignSelf:"flex-start"},children:"重置裁剪区域"}),i.jsx("div",{style:{fontWeight:600,color:"#333",marginTop:8},children:"初始坐标"}),i.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[i.jsxs("label",{style:{display:"flex",alignItems:"center",gap:4,cursor:"pointer"},children:[i.jsx("input",{type:"radio",name:"coordMode",checked:f,onChange:()=>p(!0)}),i.jsx("span",{children:"自动计算"})]}),i.jsxs("label",{style:{display:"flex",alignItems:"center",gap:4,cursor:"pointer"},children:[i.jsx("input",{type:"radio",name:"coordMode",checked:!f,onChange:()=>p(!1)}),i.jsx("span",{children:"手动输入"})]})]}),f&&i.jsx("div",{style:{color:"#888",fontSize:11,lineHeight:1.5},children:"基于当前地图视口中心自动计算4个角点坐标。确认后将图片放置到地图视口中。"}),!f&&i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:8},children:g.map((F,A)=>i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[i.jsx("span",{style:{width:64,color:"#666",fontSize:11},children:$1[A]}),i.jsx("input",{type:"number",step:"any",value:F[0],onChange:I=>z(A,"lng",I.target.value),placeholder:"经度",style:{width:72,padding:"3px 6px",border:"1px solid #d1d5db",borderRadius:3,fontSize:11,fontFamily:"monospace"}}),i.jsx("input",{type:"number",step:"any",value:F[1],onChange:I=>z(A,"lat",I.target.value),placeholder:"纬度",style:{width:72,padding:"3px 6px",border:"1px solid #d1d5db",borderRadius:3,fontSize:11,fontFamily:"monospace"}})]},A))}),i.jsxs("div",{style:{fontSize:10,color:"#999",fontFamily:"monospace",lineHeight:1.6,marginTop:4},children:[f?"自动模式":"手动模式",":",g.map((F,A)=>i.jsxs("div",{children:[$1[A],": [",F[0].toFixed(4),", ",F[1].toFixed(4),"]"]},A))]})]})]}),i.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"12px 20px",borderTop:"1px solid #e5e7eb"},children:[i.jsx("button",{onClick:s,style:{padding:"6px 20px",fontSize:13,border:"1px solid #d1d5db",borderRadius:5,background:"#fff",cursor:"pointer"},children:"取消"}),i.jsx("button",{onClick:E,style:{padding:"6px 20px",fontSize:13,border:"none",borderRadius:5,background:"#2563eb",color:"#fff",cursor:"pointer",fontWeight:500},children:"确认裁剪 & 开始配准"})]})]})})}class dr{constructor(){this.entries=[]}addFile(t,n){typeof n=="string"?this.entries.push({name:t,data:new TextEncoder().encode(n)}):n instanceof Blob?this.entries.push({name:t,data:new Uint8Array(0)}):this.entries.push({name:t,data:n})}async addBlob(t,n){const r=await n.arrayBuffer();this.entries.push({name:t,data:new Uint8Array(r)})}generate(){const t=[],n=[];let r=0;for(const a of this.entries){const c=new TextEncoder().encode(a.name),d=hr(a.data),h=a.data.length,f=new Uint8Array(30+c.length),p=new DataView(f.buffer);p.setUint32(0,67324752,!0),p.setUint16(4,20,!0),p.setUint16(6,0,!0),p.setUint16(8,0,!0),p.setUint16(10,0,!0),p.setUint16(12,0,!0),p.setUint32(14,d,!0),p.setUint32(18,h,!0),p.setUint32(22,h,!0),p.setUint16(26,c.length,!0),p.setUint16(28,0,!0),f.set(c,30),t.push(f),t.push(a.data);const g=new Uint8Array(46+c.length),y=new DataView(g.buffer);y.setUint32(0,33639248,!0),y.setUint16(4,20,!0),y.setUint16(6,20,!0),y.setUint16(8,0,!0),y.setUint16(10,0,!0),y.setUint16(12,0,!0),y.setUint16(14,0,!0),y.setUint32(16,d,!0),y.setUint32(20,h,!0),y.setUint32(24,h,!0),y.setUint16(28,c.length,!0),y.setUint16(30,0,!0),y.setUint16(32,0,!0),y.setUint16(34,0,!0),y.setUint16(36,0,!0),y.setUint32(38,0,!0),y.setUint32(42,r,!0),g.set(c,46),n.push(g),r+=f.length+a.data.length}const o=n.reduce((a,c)=>a+c.length,0),l=new Uint8Array(22),s=new DataView(l.buffer);return s.setUint32(0,101010256,!0),s.setUint16(4,0,!0),s.setUint16(6,0,!0),s.setUint16(8,this.entries.length,!0),s.setUint16(10,this.entries.length,!0),s.setUint32(12,o,!0),s.setUint32(16,r,!0),s.setUint16(20,0,!0),new Blob([...t,...n,l],{type:"application/zip"})}}const _1=new Uint32Array(256);for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t=t&1?3988292384^t>>>1:t>>>1;_1[e]=t}function hr(e){let t=4294967295;for(let n=0;n<e.length;n++)t=_1[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}function Be({icon:e,tip:t,onClick:n,disabled:r}){const[o,l]=u.useState(!1);return i.jsxs("div",{style:{position:"relative",display:"flex"},onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:[i.jsx("button",{className:"l7-button-control",onClick:n,disabled:r,"aria-label":t,children:i.jsx("span",{className:"material-symbols-outlined",children:e})}),o&&i.jsx("div",{style:{position:"absolute",left:"100%",top:"50%",transform:"translateY(-50%)",marginLeft:6,padding:"4px 8px",borderRadius:4,background:"rgba(0,0,0,0.75)",color:"#fff",fontSize:11,whiteSpace:"nowrap",pointerEvents:"none",lineHeight:1.4},children:t})]})}const Et=u.forwardRef(function({position:t="topright",layout:n="vertical",corners:r,defaultCorners:o,imageSource:l,opacity:s=.7,accept:a="image/*",enableCrop:c=!0,enableInitialCoords:d=!0,className:h,style:f,onCornersChange:p,onCalibrate:g,onExport:y,onImageLoad:C,onPreprocess:b,onClear:x},k){const{scene:L,mapsService:z,positionClassName:E,getMapContainer:T}=ke(t),M=Me(),H=u.useRef(null),N=lr({scene:L,mapsService:z,corners:r,defaultCorners:o,imageSource:l,opacity:s,onCornersChange:p,onImageLoad:C}),{state:V,screenPositions:F,setImage:A,setPhase:I,setOpacity:m,startDrag:w,clear:P,getCorners:$,setCorners:j,exportImage:O}=N;u.useImperativeHandle(k,()=>({getCorners:$,setCorners:j,setImage:A,exportImage:O,clear:se}));const K=u.useCallback(async oe=>{var ye;const ue=(ye=oe.target.files)==null?void 0:ye[0];if(ue)if(oe.target.value="",c||d)try{const pe=await P1(ue);Y({url:pe.url,dimensions:{width:pe.width,height:pe.height},revokeUrl:pe.revokeUrl??null})}catch(pe){console.error("Failed to load image for crop:",pe)}else A(ue)},[c,d,A]),[ee,Y]=u.useState(null),X=u.useCallback(async(oe,ue)=>{var ye;if(ee){try{if(oe.x!==0||oe.y!==0||oe.width!==ee.dimensions.width||oe.height!==ee.dimensions.height){const ve=await Qn(ee.url,oe);(ye=ee.revokeUrl)==null||ye.call(ee),A(ve.url,ue),_.current=ve.revokeUrl,b==null||b({croppedDimensions:{width:ve.width,height:ve.height},initialCorners:ue}),C==null||C({width:ve.width,height:ve.height})}else A(ee.url,ue),b==null||b({croppedDimensions:ee.dimensions,initialCorners:ue}),C==null||C(ee.dimensions)}catch(pe){console.error("Crop/setImage failed:",pe)}Y(null)}},[ee,A,b,C]),te=u.useCallback(()=>{var oe;ee&&((oe=ee.revokeUrl)==null||oe.call(ee),Y(null))},[ee]),_=u.useRef(null),U=u.useCallback(()=>{const oe=$();oe&&(I("confirmed"),g==null||g({corners:oe,extent:tr(oe)}))},[$,I,g]),[ce,ie]=u.useState(!1),[Q,le]=u.useState({outputWidth:0,outputHeight:0,cols:1,rows:1}),[Z,v]=u.useState(null),[D,S]=u.useState(!1),R=u.useCallback(()=>{const oe=V.imageDimensions;le({outputWidth:(oe==null?void 0:oe.width)||1024,outputHeight:(oe==null?void 0:oe.height)||1024,cols:1,rows:1}),v(null),ie(!0)},[V.imageDimensions]),B=u.useCallback(async()=>{S(!0);try{const oe=await O(Q);v(oe)}catch(oe){console.error("Export failed:",oe)}S(!1)},[O,Q]),G=u.useCallback(async()=>{if(!Z)return;const oe=new dr;for(const be of Z.tiles)await oe.addBlob(`tile_${be.row}_${be.col}.png`,be.blob);const ue=Z.tiles.map(be=>({file:`tile_${be.row}_${be.col}.png`,row:be.row,col:be.col,width:be.width,height:be.height,extent:be.extent,corners:be.corners})),ye=JSON.stringify({extent:Z.extent,outputWidth:Z.outputWidth,outputHeight:Z.outputHeight,tiles:ue},null,2);oe.addFile("tiles.json",ye);const pe=oe.generate(),ve=URL.createObjectURL(pe),Ee=document.createElement("a");Ee.href=ve,Ee.download="calibrated-tiles.zip",Ee.click(),URL.revokeObjectURL(ve),y==null||y(Z)},[Z,y]),ne=u.useCallback(()=>{Z&&(URL.revokeObjectURL(Z.previewUrl),Z.tiles.forEach(oe=>URL.revokeObjectURL(oe.previewUrl))),v(null),ie(!1)},[Z]),se=u.useCallback(()=>{var oe;P(),(oe=_.current)==null||oe.call(_),_.current=null,x==null||x()},[P,x]),J=u.useCallback(()=>{I("calibrating")},[I]),re=u.useCallback(oe=>{m(Number(oe.target.value))},[m]),q=u.useCallback(()=>{if(!z||V.phase==="idle")return;const oe=z.getBounds();if(!oe)return;const[[ue,ye],[pe,ve]]=oe,Ee=(pe-ue)*.1,be=(ve-ye)*.1,n5=[[ue+Ee,ve-be],[pe-Ee,ve-be],[pe-Ee,ye+be],[ue+Ee,ye+be]];j(n5)},[z,V.phase,j]),[ae,he]=u.useState(!1),de=T(),Ce=V.phase!=="idle"&&F&&de?Ie.createPortal(i.jsx("div",{style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",zIndex:100},children:i.jsx(cr,{screenPositions:F,draggingCorner:V.draggingCorner,phase:V.phase,onStartDrag:w})}),de):null,xe=n==="horizontal",Ze=i.jsxs("div",{className:`l7-control l7-control--glass l7-control-image-calibration ${xe?"l7-control-image-calibration--horizontal":""} ${h??""}`,style:{position:"relative",...f},children:[i.jsx(Be,{icon:"upload",tip:V.phase==="idle"?"上传图片":"更换图片",onClick:()=>{var oe;return(oe=H.current)==null?void 0:oe.click()}}),i.jsx(Be,{icon:"fit_screen",tip:"放置到当前位置",onClick:q,disabled:V.phase==="idle"}),i.jsx(Be,{icon:V.phase==="confirmed"?"edit":"check_circle",tip:V.phase==="confirmed"?"重新校准":"确认校准",onClick:V.phase==="confirmed"?J:U,disabled:V.phase==="idle"}),i.jsx(Be,{icon:"opacity",tip:"透明度",onClick:()=>he(!ae),disabled:V.phase==="idle"}),i.jsx(Be,{icon:"download",tip:"导出",onClick:R,disabled:V.phase==="idle"}),i.jsx(Be,{icon:"delete",tip:"清除",onClick:se,disabled:V.phase==="idle"}),ae&&V.phase!=="idle"&&i.jsxs("div",{className:"l7-control--glass",style:{position:"absolute",left:xe?0:"100%",top:xe?"100%":0,marginLeft:xe?0:6,marginTop:xe?6:0,padding:"8px 10px",borderRadius:6,display:"flex",alignItems:"center",gap:6,fontSize:11,whiteSpace:"nowrap",minWidth:140},children:[i.jsx("input",{type:"range",min:"0",max:"1",step:"0.05",value:V.opacity,onChange:re,style:{flex:1,height:4}}),i.jsxs("span",{style:{minWidth:28,textAlign:"right"},children:[Math.round(V.opacity*100),"%"]})]}),i.jsx("input",{ref:H,type:"file",accept:a,onChange:K,style:{display:"none"}}),Ce,ee&&(c||d)&&Ie.createPortal(i.jsx(ur,{imageUrl:ee.url,imageDimensions:ee.dimensions,mapCenter:z?[z.getCenter().lng,z.getCenter().lat]:null,mapZoom:z?z.getZoom():null,showInitialCoords:d,onConfirm:X,onCancel:te}),document.body),ce&&Ie.createPortal(i.jsx("div",{style:{position:"fixed",inset:0,zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.5)"},onClick:ne,children:i.jsxs("div",{style:{background:"#fff",borderRadius:8,padding:20,width:520,maxHeight:"85vh",overflow:"auto",boxShadow:"0 8px 32px rgba(0,0,0,0.25)"},onClick:oe=>oe.stopPropagation(),children:[i.jsx("div",{style:{fontSize:15,fontWeight:600,marginBottom:16},children:"导出配准图片"}),i.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px 16px",marginBottom:12,fontSize:12},children:[i.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6},children:["宽度(px)",i.jsx("input",{type:"number",value:Q.outputWidth,min:64,max:8192,onChange:oe=>le(ue=>({...ue,outputWidth:+oe.target.value||1024})),style:{width:72,padding:"2px 6px",border:"1px solid #d1d5db",borderRadius:4}})]}),i.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6},children:["高度(px)",i.jsx("input",{type:"number",value:Q.outputHeight,min:64,max:8192,onChange:oe=>le(ue=>({...ue,outputHeight:+oe.target.value||1024})),style:{width:72,padding:"2px 6px",border:"1px solid #d1d5db",borderRadius:4}})]}),i.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6},children:["切片列数",i.jsx("input",{type:"number",value:Q.cols,min:1,max:20,onChange:oe=>le(ue=>({...ue,cols:Math.max(1,+oe.target.value||1)})),style:{width:48,padding:"2px 6px",border:"1px solid #d1d5db",borderRadius:4}})]}),i.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6},children:["切片行数",i.jsx("input",{type:"number",value:Q.rows,min:1,max:20,onChange:oe=>le(ue=>({...ue,rows:Math.max(1,+oe.target.value||1)})),style:{width:48,padding:"2px 6px",border:"1px solid #d1d5db",borderRadius:4}})]})]}),i.jsx("button",{onClick:B,disabled:D,style:{padding:"6px 16px",fontSize:12,border:"none",borderRadius:4,background:"#2563eb",color:"#fff",cursor:"pointer",marginBottom:12},children:D?"生成中...":"生成预览"}),Z&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{style:{position:"relative",marginBottom:12,border:"1px solid #e5e7eb",borderRadius:4,overflow:"hidden"},children:[i.jsx("img",{src:Z.previewUrl,style:{width:"100%",display:"block"}}),(Q.cols>1||Q.rows>1)&&i.jsxs("svg",{style:{position:"absolute",inset:0,width:"100%",height:"100%",pointerEvents:"none"},children:[Array.from({length:Q.cols-1},(oe,ue)=>i.jsx("line",{x1:`${(ue+1)/Q.cols*100}%`,y1:"0",x2:`${(ue+1)/Q.cols*100}%`,y2:"100%",stroke:"#f59e0b",strokeWidth:"1",strokeDasharray:"4 2"},`c${ue}`)),Array.from({length:Q.rows-1},(oe,ue)=>i.jsx("line",{x1:"0",y1:`${(ue+1)/Q.rows*100}%`,x2:"100%",y2:`${(ue+1)/Q.rows*100}%`,stroke:"#f59e0b",strokeWidth:"1",strokeDasharray:"4 2"},`r${ue}`))]})]}),i.jsxs("div",{style:{fontSize:11,color:"#666",fontFamily:"monospace",marginBottom:12,maxHeight:160,overflow:"auto"},children:[i.jsxs("div",{style:{marginBottom:4,fontWeight:600,color:"#333"},children:["总计 ",Z.tiles.length," 个切片 | ",Z.outputWidth,"×",Z.outputHeight,"px"]}),i.jsxs("div",{style:{marginBottom:4},children:["Extent: [",Z.extent.map(oe=>oe.toFixed(5)).join(", "),"]"]}),Z.tiles.map(oe=>i.jsxs("div",{style:{padding:"2px 0",borderBottom:"1px solid #f3f4f6"},children:["tile_",oe.row,"_",oe.col,".png (",oe.width,"×",oe.height,") — [",oe.extent.map(ue=>ue.toFixed(5)).join(", "),"]"]},`${oe.row}_${oe.col}`))]}),i.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:[i.jsx("button",{onClick:ne,style:{padding:"6px 16px",fontSize:12,border:"1px solid #d1d5db",borderRadius:4,background:"#fff",cursor:"pointer"},children:"取消"}),i.jsxs("button",{onClick:G,style:{padding:"6px 16px",fontSize:12,border:"none",borderRadius:4,background:"#2563eb",color:"#fff",cursor:"pointer"},children:["打包下载 ZIP(",Z.tiles.length," 张 + 坐标JSON)"]})]})]}),!Z&&i.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:i.jsx("button",{onClick:ne,style:{padding:"6px 16px",fontSize:12,border:"1px solid #d1d5db",borderRadius:4,background:"#fff",cursor:"pointer"},children:"取消"})})]})}),document.body)]});return!L||!z?null:M?Ze:i.jsx("div",{className:`l7-control-anchor ${E}`,children:Ze})});we.mark(Et);function O1({controls:e,layers:t,onLayerToggle:n,containerRef:r}){const o=me();return i.jsx(gt,{children:e.map((l,s)=>i.jsx(pr,{control:l,layers:t,onLayerToggle:n,scene:o,containerRef:r},`${l.type}-${s}`))})}function pr({control:e,layers:t,onLayerToggle:n,scene:r,containerRef:o}){var s,a,c,d,h,f,p,g,y;const l=e.position??void 0;switch(e.type){case"zoom":return i.jsx(yt,{position:l??"bottomright"});case"scale":return i.jsx(Ct,{position:l??"bottomleft",maxWidth:(s=e.options)==null?void 0:s.maxWidth,metric:((a=e.options)==null?void 0:a.unit)!=="imperial",imperial:((c=e.options)==null?void 0:c.unit)==="imperial"});case"fullscreen":return i.jsx(vt,{position:l??"topright",container:o==null?void 0:o.current});case"geoLocate":return i.jsx(bt,{position:l??"topright"});case"mapTheme":return i.jsx(Mt,{position:l??"topright"});case"mouseLocation":return i.jsx(kt,{position:l??"bottomleft",precision:(d=e.options)==null?void 0:d.precision});case"exportImage":return i.jsx(St,{position:l??"topright",format:(h=e.options)==null?void 0:h.format});case"layerSwitch":return i.jsx(zt,{position:l??"topright",layers:t.map((C,b)=>({id:C.id??`layer-${b}`,name:C.name,visible:C.visible})),onToggle:n??(()=>{})});case"draw":return i.jsx(Vt,{position:l??"topright",modes:(f=e.options)==null?void 0:f.modes,showDelete:(p=e.options)==null?void 0:p.showDelete});case"imageCalibration":return i.jsx(Et,{position:l??"topright",opacity:(g=e.options)==null?void 0:g.opacity,imageSource:(y=e.options)==null?void 0:y.imageSource});default:return null}}const Te={aerialway:"M13,5H8V2.6c0.1854-0.1047,0.3325-0.2659,0.42-0.46L13.5,1.5C13.7761,1.5,14,1.2761,14,1s-0.2239-0.5-0.5-0.5L8.28,1.15 C8.0954,0.9037,7.8077,0.7562,7.5,0.75C7.0963,0.752,6.7334,0.9966,6.58,1.37L1.5,2C1.2239,2,1,2.2239,1,2.5S1.2239,3,1.5,3 l5.22-0.65C6.7967,2.4503,6.8917,2.5351,7,2.6V5H2C1.4477,5,1,5.4477,1,6v7c0,0.5523,0.4477,1,1,1h11c0.5523,0,1-0.4477,1-1V6 C14,5.4477,13.5523,5,13,5z M7,11H3V7h4V11z M12,11H8V7h4V11z",airfield:"M6.8182,0.6818H4.7727 C4.0909,0.6818,4.0909,0,4.7727,0h5.4545c0.6818,0,0.6818,0.6818,0,0.6818H8.1818c0,0,0.8182,0.5909,0.8182,1.9545V4h6v2L9,8l-0.5,5 l2.5,1.3182V15H4v-0.6818L6.5,13L6,8L0,6V4h6V2.6364C6,1.2727,6.8182,0.6818,6.8182,0.6818z",airport:"M15,6.8182L15,8.5l-6.5-1 l-0.3182,4.7727L11,14v1l-3.5-0.6818L4,15v-1l2.8182-1.7273L6.5,7.5L0,8.5V6.8182L6.5,4.5v-3c0,0,0-1.5,1-1.5s1,1.5,1,1.5v2.8182 L15,6.8182z","alcohol-shop":"M14,4h-4v3.44l0,0c0,0,0,0,0,0.06c0.003,0.9096,0.6193,1.7026,1.5,1.93V13H11c-0.2761,0-0.5,0.2239-0.5,0.5 S10.7239,14,11,14h2c0.2761,0,0.5-0.2239,0.5-0.5S13.2761,13,13,13h-0.5V9.43c0.8807-0.2274,1.497-1.0204,1.5-1.93c0,0,0,0,0-0.06 l0,0V4z M13,7.5c0,0.5523-0.4477,1-1,1s-1-0.4477-1-1V5h2V7.5z M5.5,2.5V2C5.7761,2,6,1.7761,6,1.5S5.7761,1,5.5,1V0.5 C5.5,0.2239,5.2761,0,5,0H4C3.7239,0,3.5,0.2239,3.5,0.5V1C3.2239,1,3,1.2239,3,1.5S3.2239,2,3.5,2v0.5C3.5,3.93,1,5.57,1,7v6 c0,0.5523,0.4477,1,1,1h5c0.5318-0.0465,0.9535-0.4682,1-1V7C8,5.65,5.5,3.85,5.5,2.5z M4.5,12C3.1193,12,2,10.8807,2,9.5 S3.1193,7,4.5,7S7,8.1193,7,9.5S5.8807,12,4.5,12z","american-football":"M7.53,3C3.09,3,1,7.5,1,7.5S3.09,12,7.53,12S14,7.5,14,7.5S12,3,7.53,3z M11,7v1.5C11,8.7761,10.7761,9,10.5,9 S10,8.7761,10,8.5V8H8v0.5C8,8.7761,7.7761,9,7.5,9S7,8.7761,7,8.5V8H5v0.5C5,8.7761,4.7761,9,4.5,9S4,8.7761,4,8.5v-2 C4,6.2239,4.2239,6,4.5,6S5,6.2239,5,6.5V7h2V6.5C7,6.2239,7.2239,6,7.5,6S8,6.2239,8,6.5V7h2V6.5C10,6.2239,10.2239,6,10.5,6 S11,6.2239,11,6.5V7z","amusement-park":"M13.5 7C13.5 9.02798 12.4939 10.821 10.9535 11.907L12 13.9999H3L4.04645 11.907C2.50613 10.821 1.5 9.02798 1.5 7C1.5 3.68629 4.18629 1 7.5 1C10.8137 1 13.5 3.68629 13.5 7ZM12.2984 7.125H8.99487C8.96844 7.4453 8.84138 7.73706 8.64538 7.96861L10.9814 10.3046C11.7719 9.47202 12.2669 8.35614 12.2984 7.125ZM10.8046 10.4814L8.46861 8.14538C8.33136 8.26156 8.17296 8.35351 8 8.41465V11.7743C9.08206 11.6623 10.0574 11.1908 10.8046 10.4814ZM6.00513 7.125H2.7016C2.73307 8.35614 3.2281 9.47202 4.01864 10.3046L6.35462 7.96861C6.15862 7.73706 6.03156 7.4453 6.00513 7.125ZM4.19542 10.4814C4.94259 11.1908 5.91794 11.6623 7 11.7743V8.41465C6.82704 8.35351 6.66864 8.26156 6.53139 8.14538L4.19542 10.4814ZM12.2984 6.875C12.2669 5.64386 11.7719 4.52798 10.9814 3.69542L8.64538 6.03139C8.84138 6.26294 8.96844 6.5547 8.99487 6.875H12.2984ZM10.8046 3.51864C9.97202 2.7281 8.85614 2.23307 7.625 2.2016V5.50513C7.9453 5.53156 8.23706 5.65862 8.46861 5.85462L10.8046 3.51864ZM7.375 5.50513V2.2016C6.14386 2.23307 5.02798 2.7281 4.19542 3.51864L6.53139 5.85462C6.76294 5.65862 7.0547 5.53156 7.375 5.50513ZM6.35462 6.03139L4.01864 3.69542C3.2281 4.52798 2.73307 5.64386 2.7016 6.875H6.00513C6.03156 6.5547 6.15862 6.26294 6.35462 6.03139Z","animal-shelter":"M 7.528,0.895 9,2 h 1 L 11.473,0.896 C 11.689502,0.73373378 12,0.8884387 12,1.159 V 4.5 c 0,0.722 -0.522,1.184 -1,1.573 V 10 l 0.8,2.4 0.706,0.353 c 0.302922,0.151551 0.494181,0.461283 0.494,0.8 C 13,13.8 12.8,14 12.553,14 H 4.25 C 3.017,14 2,13 2,11.713 2,9.5424588 2.4530836,7.9300225 2.745,6.845 2.8910836,6.3020225 3.0352907,5.8946079 3.138,5.614 3.1956028,5.4566256 3.253276,5.3110749 3.33,5.165 3.7788405,4.3104525 5.0743666,4.9556117 4.672,5.833 4.6232251,5.9393571 4.5778358,6.0512046 4.539,6.15 4.4477518,6.3821288 4.325004,6.7430011 4.193,7.234 3.947004,8.1490011 3.674,9.521 3.558,11.367 3.926,9.307 5.98,7.239 7.635,5.758 7.29,5.432 7.001,5.038 7.001,4.5 l 0,-3.342 c 0,-0.2705613 0.3106215,-0.42543084 0.527,-0.263 z",aquarium:"M1.13505 8.57743C1.98919 6.14741 4.72075 2 10 2C12.6518 2 14 3 14 3C14 3 11.6865 3 10.6203 3.44512C10.54 3.47864 10.4747 3.53744 10.4329 3.61375C10.2432 3.95995 9.75252 5.04744 10.3231 6.19506C10.4172 6.38427 10.6364 6.46548 10.8383 6.40312C11.3474 6.24589 12.3301 5.89727 13.0761 5.35729C13.2973 5.1972 13.615 5.25773 13.6797 5.52298C13.9401 6.59045 13.9401 8.40955 13.6797 9.47702C13.615 9.74227 13.2973 9.8028 13.0761 9.64271C12.3301 9.10273 11.3474 8.75411 10.8383 8.59688C10.6364 8.53452 10.4172 8.61573 10.3231 8.80494C9.75252 9.95256 10.2432 11.04 10.4329 11.3863C10.4747 11.4626 10.54 11.5214 10.6203 11.5549C11.6865 12 14 12 14 12C13.5 12.3333 11.8 13 9.00001 13C4.51722 13 2.02736 10.3427 1.25972 9.35985C1.08546 9.13673 1.04117 8.84452 1.13505 8.57743ZM5.00001 9C5.69037 9 6.25001 8.44036 6.25001 7.75C6.25001 7.05964 5.69037 6.5 5.00001 6.5C4.30966 6.5 3.75001 7.05964 3.75001 7.75C3.75001 8.44036 4.30966 9 5.00001 9Z",arrow:"M8.29289 2.29289C8.68342 1.90237 9.31658 1.90237 9.70711 2.29289L14.2071 6.79289C14.5976 7.18342 14.5976 7.81658 14.2071 8.20711L9.70711 12.7071C9.31658 13.0976 8.68342 13.0976 8.29289 12.7071C7.90237 12.3166 7.90237 11.6834 8.29289 11.2929L11 8.5H1.5C0.947715 8.5 0.5 8.05228 0.5 7.5C0.5 6.94772 0.947715 6.5 1.5 6.5H11L8.29289 3.70711C7.90237 3.31658 7.90237 2.68342 8.29289 2.29289Z","art-gallery":"m10.71 3-2.86-2.849996c-.1945-.1960996-.511-.1973996-.7071-.0029-.001.001-.0019.0019-.0029.0029l-2.85 2.849996h-2.79c-.2761 0-.5.2239-.5.5v9c0 .2761.2239.5.5.5h12c.2761 0 .5-.2239.5-.5v-9c0-.2761-.2239-.5-.5-.5zm-3.21-1.79 1.79 1.79h-3.58zm5.5 10.79h-11v-8h11zm-8-5c-.5523 0-1-.4477-1-1s.4477-1 1-1 1 .4477 1 1-.4477 1-1 1zm7 4h-7.5l1.5-3 1.25 2.5 2.25-4.5z",attraction:"M6,2C5.446,2,5.2478,2.5045,5,3L4.5,4h-2C1.669,4,1,4.669,1,5.5v5C1,11.331,1.669,12,2.5,12h10 c0.831,0,1.5-0.669,1.5-1.5v-5C14,4.669,13.331,4,12.5,4h-2L10,3C9.75,2.5,9.554,2,9,2H6z M2.5,5C2.7761,5,3,5.2239,3,5.5 S2.7761,6,2.5,6S2,5.7761,2,5.5S2.2239,5,2.5,5z M7.5,5c1.6569,0,3,1.3431,3,3s-1.3431,3-3,3s-3-1.3431-3-3S5.8431,5,7.5,5z M7.5,6.5C6.6716,6.5,6,7.1716,6,8l0,0c0,0.8284,0.6716,1.5,1.5,1.5l0,0C8.3284,9.5,9,8.8284,9,8l0,0C9,7.1716,8.3284,6.5,7.5,6.5 L7.5,6.5z",bakery:"M5.294,4.382,6,9.5a.979.979,0,0,0,1,1H8a.979.979,0,0,0,1-1l.706-5.118C9.706,3,7.5,3,7.5,3S5.291,3,5.294,4.382ZM3.5,5C2,5,2,6,2,6l1,4H4.5a.793.793,0,0,0,.794-.765L4.5,5Zm-2,2.5a1.533,1.533,0,0,0-1.059.412A1.366,1.366,0,0,0,0,8.794V11H.882A1.02,1.02,0,0,0,2,10ZM11.5,5C13,5,13,6,13,6l-1,4H10.5a.793.793,0,0,1-.794-.765L10.5,5Zm2,2.5a1.533,1.533,0,0,1,1.059.412A1.366,1.366,0,0,1,15,8.794V11h-.882A1.02,1.02,0,0,1,13,10Z",bank:"M1,3C0.446,3,0,3.446,0,4v7c0,0.554,0.446,1,1,1h13c0.554,0,1-0.446,1-1V4c0-0.554-0.446-1-1-1H1z M1,4h1.5 C2.7761,4,3,4.2239,3,4.5S2.7761,5,2.5,5S2,4.7761,2,4.5L1.5,5C1.7761,5,2,5.2239,2,5.5S1.7761,6,1.5,6S1,5.7761,1,5.5V4z M7.5,4 C8.8807,4,10,5.567,10,7.5l0,0C10,9.433,8.8807,11,7.5,11S5,9.433,5,7.5S6.1193,4,7.5,4z M12.5,4H14v1.5C14,5.7761,13.7761,6,13.5,6 S13,5.7761,13,5.5S13.2239,5,13.5,5L13,4.5C13,4.7761,12.7761,5,12.5,5S12,4.7761,12,4.5S12.2239,4,12.5,4z M7.5,5.5 c-0.323,0-0.5336,0.1088-0.6816,0.25h1.3633C8.0336,5.6088,7.823,5.5,7.5,5.5z M6.625,6C6.5795,6.091,6.5633,6.1711,6.5449,6.25 h1.9102C8.4367,6.1711,8.4205,6.091,8.375,6H6.625z M6.5,6.5v0.25h2V6.5H6.5z M6.5,7v0.25h2V7H6.5z M6.5,7.5v0.25h2V7.5H6.5z M6.5,8 L6.25,8.25h2L8.5,8H6.5z M6,8.5c0,0,0.0353,0.1024,0.1016,0.25H8.375L8,8.5H6z M1.5,9C1.7761,9,2,9.2239,2,9.5S1.7761,10,1.5,10 L2,10.5C2,10.2239,2.2239,10,2.5,10S3,10.2239,3,10.5S2.7761,11,2.5,11H1V9.5C1,9.2239,1.2239,9,1.5,9z M6.2383,9 C6.2842,9.0856,6.3144,9.159,6.375,9.25h2.2676C8.7092,9.1121,8.75,9,8.75,9H6.2383z M13.5,9C13.7761,9,14,9.2239,14,9.5V11h-1.5 c-0.2761,0-0.5-0.2239-0.5-0.5s0.2239-0.5,0.5-0.5s0.5,0.2239,0.5,0.5l0.5-0.5C13.2239,10,13,9.7761,13,9.5S13.2239,9,13.5,9z M6.5664,9.5c0.0786,0.0912,0.1647,0.1763,0.2598,0.25h1.4199C8.3462,9.6727,8.4338,9.5883,8.5,9.5H6.5664z","bank-JP":"M12.2808,3.3763l-2.9,3.625H11.25a.75.75,0,0,1,0,1.5H8.5v1h2.75a.75.75,0,0,1,0,1.5H8.5v1.25a1,1,0,0,1-2,0v-1.25H3.75a.75.75,0,1,1,0-1.5H6.5v-1H3.75a.75.75,0,0,1,0-1.5H5.6193l-2.9-3.625A1,1,0,0,1,4.2771,2.1216l.0037.0047L7.5,6.15l3.2192-4.024a1,1,0,0,1,1.5653,1.2453Z",bar:"M7.5,1c-2,0-7,0.25-6.5,0.75L7,8v4 c0,1-3,0.5-3,2h7c0-1.5-3-1-3-2V8l6-6.25C14.5,1.25,9.5,1,7.5,1z M7.5,2c2.5,0,4.75,0.25,4.75,0.25L11.5,3h-8L2.75,2.25 C2.75,2.25,5,2,7.5,2z",barrier:"m13 2h-11c-.26522 0-.51957.10536-.70711.29289-.18753.18754-.29289.44189-.29289.70711v6c0 .26522.10536.51957.29289.70711.18754.18753.44189.29289.70711.29289h1v2.5c0 .1326.05268.2598.14645.3536.09376.0937.22094.1464.35355.1464s.25979-.0527.35355-.1464c.09377-.0938.14645-.221.14645-.3536v-.5h7v.5c0 .1326.0527.2598.1464.3536.0938.0937.221.1464.3536.1464s.2598-.0527.3536-.1464c.0937-.0938.1464-.221.1464-.3536v-2.5h1c.2652 0 .5196-.10536.7071-.29289.1875-.18754.2929-.44189.2929-.70711v-6c0-.26522-.1054-.51957-.2929-.70711-.1875-.18753-.4419-.29289-.7071-.29289zm0 1v2l-2-2zm-3.5 0 3.5 3.5v2.5l-6-6zm-4 6-3.5-3.5v-2.5l6 6zm-3.5 0v-2l2 2zm9 2h-7v-1h7zm-.207-2h-1.293l-6-6h2l6 6z",baseball:"m9.00003 3.5c0 .8284-.6716 1.5-1.5 1.5s-1.5-.6716-1.5-1.5.6716-1.5 1.5-1.5 1.5.6716 1.5 1.5zm-3-3.22c0-.1546-.1254-.28-.28-.28-.0979.0262-.1852.0821-.25.16l-2.47 4.43c-.0059.0431-.0059.0869 0 .13 0 .1546.1254.28.28.28.1015-.0243.1926-.0803.26-.16l2.46-4.43c.006-.0431.006-.0869 0-.13zm5.89997 13.92-2.89997-7.81c-.0474-.2273-.2478-.3901-.48-.39h-5c-.2761 0-.5.2239-.5.5s.2239.5.5.5h2.48l1.45 2.51-4.27 4.61c-.1141.0932-.1802.2327-.18.38 0 .2761.2239.5.5.5.1224-.0006.2401-.047.33-.13l4.45-4.15 2.75997 4c.0895.1592.2574.2584.44.26.2796.0002.5092-.2207.52-.5-.0042-.1013-.039-.199-.1-.28z",basketball:"M3.66001 7H2.03C2.11012 6.02077 2.45969 5.05281 3.04001 4.26C3.39039 5.12432 3.59972 6.0693 3.66001 7ZM4.73501 7H7V2C5.78985 2.1061 4.72468 2.61284 3.83501 3.44C4.36491 4.54578 4.67079 5.77549 4.73501 7ZM8 2V7H10.265C10.3292 5.77549 10.6351 4.54578 11.165 3.44C10.2753 2.61284 9.21014 2.1061 8 2ZM11.96 4.26C11.6096 5.12432 11.4003 6.0693 11.34 7H12.97C12.8899 6.02077 12.5403 5.05281 11.96 4.26ZM14 8.49919C14 8.77489 13.7765 8.99838 13.5008 8.99838H11.72L10.96 10.5184V12.8984C10.9578 12.9736 10.934 13.0466 10.8915 13.1087C10.8489 13.1707 10.7894 13.2192 10.72 13.2484C10.6743 13.2607 10.6273 13.2674 10.58 13.2684C10.5312 13.2706 10.4825 13.2619 10.4375 13.2428C10.3925 13.2238 10.3524 13.195 10.32 13.1584L9.3 12.1484L7.71 13.2084C7.64698 13.2476 7.57423 13.2684 7.5 13.2684C7.42577 13.2684 7.35303 13.2476 7.29 13.2084L5.7 12.1484L4.68 13.1584C4.62956 13.211 4.56471 13.2477 4.49357 13.2637C4.42243 13.2797 4.34814 13.2744 4.28 13.2484C4.21063 13.2192 4.1511 13.1707 4.10854 13.1087C4.06599 13.0466 4.04219 12.9736 4.04 12.8984V10.5184L3.28 8.99838H1.49919C1.2235 8.99838 1 8.77489 1 8.4992C0.999998 8.2235 1.22349 8 1.49919 8H13.5008C13.7765 8 14 8.2235 14 8.49919ZM6.86 8.99838H4.12L4.75 10.2684C4.7772 10.3173 4.791 10.3725 4.79 10.4284V11.9884L5.35 11.4384L6.86 8.99838ZM8.84 11.5484L7.5 9.38838L6.16 11.5484L7.5 12.4484L8.84 11.5484ZM10.89 8.99838H8.14L9.65 11.4384L10.21 11.9884V10.4284C10.209 10.3725 10.2228 10.3173 10.25 10.2684L10.89 8.99838Z",bbq:"M9.32,7.655C10.8782,7.108,11.9471,5.6506,12,4H3c0.053,1.6299,1.0978,3.0728,2.63,3.631L4.923,9.044 c-1.3571-0.2355-2.6482,0.6737-2.8837,2.0308s0.6737,2.6482,2.0308,2.8837C4.9927,14.1187,5.9273,13.7485,6.49,13h4.223l0.335,0.717 c0.0836,0.1735,0.2594,0.2836,0.452,0.283c0.0733,0.0003,0.1457-0.0158,0.212-0.047c0.2497-0.117,0.3575-0.4141,0.241-0.664 L9.32,7.655z M4.5,12.75c-0.6904,0-1.25-0.5596-1.25-1.25s0.5596-1.25,1.25-1.25s1.25,0.5596,1.25,1.25 C5.7484,12.1897,5.1897,12.7484,4.5,12.75z M6.95,12c0.2066-1.007-0.2268-2.0374-1.091-2.594L6.6,7.923 c0.577,0.1042,1.168,0.1042,1.745,0l1.9,4.07L6.95,12z M4.75,1C4.6119,1,4.5,1.1119,4.5,1.25c0,0.5-0.5,0.5-0.5,0.5c-1,0-1,1-1,1 C3,2.8881,3.1119,3,3.25,3S3.5,2.8881,3.5,2.75c0-0.5,0.5-0.5,0.5-0.5c1,0,1-1,1-1C5,1.1119,4.8881,1,4.75,1z M6.75,1 C6.6119,1,6.5,1.1119,6.5,1.25c0,0.5-0.5,0.5-0.5,0.5c-1,0-1,1-1,1C5,2.8881,5.1119,3,5.25,3S5.5,2.8881,5.5,2.75 c0-0.5,0.5-0.5,0.5-0.5c1,0,1-1,1-1C7,1.1119,6.8881,1,6.75,1z M8.75,1C8.6119,1,8.5,1.1119,8.5,1.25c0,0.5-0.5,0.5-0.5,0.5 c-1,0-1,1-1,1C7,2.8881,7.1119,3,7.25,3S7.5,2.8881,7.5,2.75c0-0.5,0.5-0.5,0.5-0.5c1,0,1-1,1-1C9,1.1119,8.8881,1,8.75,1z M10.75,1 c-0.1381,0-0.25,0.1119-0.25,0.25c0,0.5-0.5,0.5-0.5,0.5c-1,0-1,1-1,1C9,2.8881,9.1119,3,9.25,3S9.5,2.8881,9.5,2.75 c0-0.5,0.5-0.5,0.5-0.5c1,0,1-1,1-1C11,1.1119,10.8881,1,10.75,1z M12.75,1c-0.1381,0-0.25,0.1119-0.25,0.25c0,0.5-0.5,0.5-0.5,0.5 c-1,0-1,1-1,1C11,2.8881,11.1119,3,11.25,3s0.25-0.1119,0.25-0.25c0-0.5,0.5-0.5,0.5-0.5c1,0,1-1,1-1C13,1.1119,12.8881,1,12.75,1z",beach:"M5.3608,1.67l-.01,4.02a4.4523,4.4523,0,0,0-1.1-.11c-.37.1-.74.63-1.1.76A4.2019,4.2019,0,0,1,5.3608,1.67Zm2.41-.64,2.03,3.45a3.1832,3.1832,0,0,1,.84-.61c.36-.1.94.17,1.34.11A4.2018,4.2018,0,0,0,7.7708,1.03ZM1.0008,13h13c-.66-.66-2.64-1.11-4.34-1.33l-1.87-7c.52-.05,1.15.03,1.53,0l-2.11-3.6h-.01a6.1743,6.1743,0,0,0-.7.14,4.3792,4.3792,0,0,0-.64.22l-.01,4.15c.35-.17.84-.54,1.3-.74l1.8,6.74c-.58-.05-1.09-.08-1.45-.08C6.0308,11.5,2.0008,12,1.0008,13Z",beer:"M12,5V2c0,0-1-1-4.5-1S3,2,3,2v3c0.0288,1.3915,0.3706,2.7586,1,4c0.6255,1.4348,0.6255,3.0652,0,4.5c0,0,0,1,3.5,1 s3.5-1,3.5-1c-0.6255-1.4348-0.6255-3.0652,0-4.5C11.6294,7.7586,11.9712,6.3915,12,5z M7.5,13.5 c-0.7966,0.035-1.5937-0.0596-2.36-0.28c0.203-0.7224,0.304-1.4696,0.3-2.22h4.12c-0.004,0.7504,0.097,1.4976,0.3,2.22 C9.0937,13.4404,8.2966,13.535,7.5,13.5z M7.5,5C6.3136,5.0299,5.1306,4.8609,4,4.5v-2C5.131,2.1411,6.3137,1.9722,7.5,2 C8.6863,1.9722,9.869,2.1411,11,2.5v2C9.8694,4.8609,8.6864,5.0299,7.5,5z",bicycle:"M7.5,2c-0.6761-0.01-0.6761,1.0096,0,1H9v1.2656l-2.8027,2.334L5.2226,4H5.5c0.6761,0.01,0.6761-1.0096,0-1h-2 c-0.6761-0.01-0.6761,1.0096,0,1h0.6523L5.043,6.375C4.5752,6.1424,4.0559,6,3.5,6C1.5729,6,0,7.5729,0,9.5S1.5729,13,3.5,13 S7,11.4271,7,9.5c0-0.6699-0.2003-1.2911-0.5293-1.8242L9.291,5.3262l0.4629,1.1602C8.7114,7.0937,8,8.2112,8,9.5 c0,1.9271,1.5729,3.5,3.5,3.5S15,11.4271,15,9.5S13.4271,6,11.5,6c-0.2831,0-0.5544,0.0434-0.8184,0.1074L10,4.4023V2.5 c0-0.2761-0.2239-0.5-0.5-0.5H7.5z M3.5,7c0.5923,0,1.1276,0.2119,1.5547,0.5527l-1.875,1.5625 c-0.5109,0.4273,0.1278,1.1945,0.6406,0.7695l1.875-1.5625C5.8835,8.674,6,9.0711,6,9.5C6,10.8866,4.8866,12,3.5,12S1,10.8866,1,9.5 S2.1133,7,3.5,7L3.5,7z M11.5,7C12.8866,7,14,8.1134,14,9.5S12.8866,12,11.5,12S9,10.8866,9,9.5c0-0.877,0.4468-1.6421,1.125-2.0879 l0.9102,2.2734c0.246,0.6231,1.1804,0.2501,0.9297-0.3711l-0.9082-2.2695C11.2009,7.0193,11.3481,7,11.5,7L11.5,7z","bicycle-share":"M10,1C9.4477,1,9,1.4477,9,2c0,0.5523,0.4477,1,1,1s1-0.4477,1-1C11,1.4477,10.5523,1,10,1z M8.1445,2.9941 c-0.13,0.0005-0.2547,0.0517-0.3477,0.1426l-2.6406,2.5c-0.2256,0.2128-0.2051,0.5775,0.043,0.7637L7,7.75v2.75 c-0.01,0.6762,1.0096,0.6762,1,0v-3c0.0003-0.1574-0.0735-0.3057-0.1992-0.4004L7.0332,6.5234l1.818-1.7212l0.7484,0.9985 C9.6943,5.9265,9.8426,6.0003,10,6h1.5c0.6761,0.01,0.6761-1.0096,0-1h-1.25L9.5,4L8.9004,3.1992 C8.8103,3.0756,8.6685,3,8.5156,2.9941H8.1445z M3,7c-1.6569,0-3,1.3432-3,3s1.3431,3,3,3s3-1.3432,3-3S4.6569,7,3,7z M12,7 c-1.6569,0-3,1.3432-3,3s1.3431,3,3,3s3-1.3432,3-3S13.6569,7,12,7z M3,8c1.1046,0,2,0.8954,2,2s-0.8954,2-2,2s-2-0.8954-2-2 S1.8954,8,3,8z M12,8c1.1046,0,2,0.8954,2,2s-0.8954,2-2,2s-2-0.8954-2-2S10.8954,8,12,8z","blood-bank":"m11.2 6.1-3.7-5.1-3.7 5.1c-.5.7-.8 1.6-.8 2.5 0 2.4 2 4.4 4.5 4.4s4.5-2 4.5-4.4c0-.9-.3-1.8-.8-2.5zm-1.2 2.9h-2v2h-1v-2h-2v-1h2v-2h1v2h2z","bowling-alley":"M10.922 3.166c0 1.006-.335 1.857-.693 2.77-.414 1.052-.86 2.185-.86 3.73 0 2.166.687 4.333 1.409 4.333h1.444c.723 0 1.409-2.166 1.409-4.333 0-1.545-.446-2.678-.86-3.73-.358-.912-.693-1.764-.693-2.77 0-.722.144-.723.144-1.445A.743.743 0 0 0 11.5.999a.743.743 0 0 0-.722.722c0 .723.144.723.144 1.445Zm-2.552 6.5c0-1.234.254-2.236.55-3.091a4.5 4.5 0 1 0-.17 6.038c-.237-.865-.38-1.91-.38-2.947ZM5.24 7.12a.62.62 0 1 1-1.24 0 .62.62 0 0 1 1.24 0Zm-1 2a.62.62 0 1 1-1.24 0 .62.62 0 0 1 1.24 0Zm2 0a.62.62 0 1 1-1.24 0 .62.62 0 0 1 1.24 0Z",bridge:"m0 6.84201v4.15799h2v-1c.036-1.08899.911-1.96399 2-1.99999 1.089.036 1.964.911 2 1.99999v1h3v-1c.036-1.08899.911-1.96399 2-1.99999 1.089.036 1.964.911 2 1.99999v1h2v-4.15799c-4.4-5.76-11.929-4.442-15 0zm9.5-3.108c.514.121 1.016.289 1.5.5v2.766h-1.5zm-.5-.1v3.366h-1.5v-3.494c.503 0 1.005.043 1.5.128zm-5.5.843c.48-.248.982-.451 1.5-.606v3.129h-1.5zm2 2.523v-3.27c.493-.115.995-.187 1.5-.215v3.485zm-2.5-2.256v2.256h-2.5c.676-.906 1.532-1.672 2.5-2.256zm8.5 2.256v-2.5l-.053-.053c1.202.603 2.247 1.477 3.053 2.553z",building:"M3,2v11h5v-3h3v3h1V2H3z M7,12H4v-2h3V12z M7,9H4V7h3V9z M7,6H4V4h3V6z M11,9H8V7h3V9z M11,6H8V4h3V6z","building-alt1":"M11,13.5v-9C11,4.2,10.8,4,10.5,4H9V1L5,2.1v11.4H2V14h11v-0.5H11z M7,13.5V3h1v10.5H7z",bus:"M2 3C2 1.9 2.9 1 4 1H11C12.1 1 13 1.9 13 3V11C13 12 12 12 12 12V13C12 13.55 11.55 14 11 14C10.45 14 10 13.55 10 13V12H5V13C5 13.55 4.55 14 4 14C3.45 14 3 13.55 3 13V12C2 12 2 11 2 11V3ZM3.5 4C3.22 4 3 4.22 3 4.5V7.5C3 7.78 3.22 8 3.5 8H11.5C11.78 8 12 7.78 12 7.5V4.5C12 4.22 11.78 4 11.5 4H3.5ZM4 9C3.45 9 3 9.45 3 10C3 10.55 3.45 11 4 11C4.55 11 5 10.55 5 10C5 9.45 4.55 9 4 9ZM11 9C10.45 9 10 9.45 10 10C10 10.55 10.45 11 11 11C11.55 11 12 10.55 12 10C12 9.45 11.55 9 11 9ZM4 2.5C4 2.78 4.22 3 4.5 3H10.5C10.78 3 11 2.78 11 2.5C11 2.22 10.78 2 10.5 2H4.5C4.22 2 4 2.22 4 2.5Z",cafe:"M12,5h-2V3H2v4c0.0133,2.2091,1.8149,3.9891,4.024,3.9758C7.4345,10.9673,8.7362,10.2166,9.45,9H12c1.1046,0,2-0.8954,2-2 S13.1046,5,12,5z M12,8H9.86C9.9487,7.6739,9.9958,7.3379,10,7V6h2c0.5523,0,1,0.4477,1,1S12.5523,8,12,8z M10,12.5 c0,0.2761-0.2239,0.5-0.5,0.5h-7C2.2239,13,2,12.7761,2,12.5S2.2239,12,2.5,12h7C9.7761,12,10,12.2239,10,12.5z",campsite:"M14 10V11C14 11.5523 13.5523 12 13 12H2C1.44772 12 1 11.5523 1 11V10C1 9.44772 1.44772 9.00001 2 9.00001H2.25L7.03206 1.25762C7.24699 0.90965 7.75302 0.909651 7.96794 1.25762L12.75 9.00001H13C13.5523 9.00001 14 9.44772 14 10ZM10.5 9.00001L7.5 4.00001L4.5 9.00001H10.5Z",car:"M13.84,6.852,12.6,5.7,11.5,3.5a1.05,1.05,0,0,0-.9-.5H4.4a1.05,1.05,0,0,0-.9.5L2.4,5.7,1.16,6.852A.5.5,0,0,0,1,7.219V11.5a.5.5,0,0,0,.5.5h2c.2,0,.5-.2.5-.4V11h7v.5c0,.2.2.5.4.5h2.1a.5.5,0,0,0,.5-.5V7.219A.5.5,0,0,0,13.84,6.852ZM4.5,4h6l1,2h-8ZM5,8.6c0,.2-.3.4-.5.4H2.4C2.2,9,2,8.7,2,8.5V7.4c.1-.3.3-.5.6-.4l2,.4c.2,0,.4.3.4.5Zm8-.1c0,.2-.2.5-.4.5H10.5c-.2,0-.5-.2-.5-.4V7.9c0-.2.2-.5.4-.5l2-.4c.3-.1.5.1.6.4Z","car-rental":"M10.5 1C9.94772 1 9.5 1.44772 9.5 2H2V3L3 4 4 3 5 4 6 3 7 4H9.5C9.5 4.55228 9.94772 5 10.5 5H12.5C12.7761 5 13 4.77614 13 4.5V1.5C13 1.22386 12.7761 1 12.5 1H10.5ZM11 2.5C11 2.22386 11.2239 2 11.5 2 11.7761 2 12 2.22386 12 2.5V3.5C12 3.77614 11.7761 4 11.5 4 11.2239 4 11 3.77614 11 3.5V2.5ZM2.14645 9.35355C2.05268 9.44732 2 9.5745 2 9.70711V13.5C2 13.7761 2.22386 14 2.5 14H4C4.27614 14 4.5 13.7761 4.5 13.5V13H10.5V13.5C10.5 13.7761 10.7239 14 11 14H12.5C12.7761 14 13 13.7761 13 13.5V9.70711C13 9.5745 12.9473 9.44732 12.8536 9.35355L12 8.5 10.6457 6.24275C10.5553 6.09215 10.3925 6 10.2169 6H4.7831C4.60746 6 4.44471 6.09215 4.35435 6.24275L3 8.5 2.14645 9.35355ZM11.1338 9H3.86623L5.06619 7H9.93381L11.1338 9ZM5.5 10.8279V11.2C5.5 11.3657 5.36569 11.5 5.2 11.5H3.3C3.13431 11.5 3 11.3657 3 11.2V10.3659C3 10.1766 3.1732 10.0346 3.35884 10.0718L5.17845 10.4357C5.36542 10.4731 5.5 10.6372 5.5 10.8279ZM12 10.4879V11.2C12 11.3657 11.8657 11.5 11.7 11.5H9.8C9.63431 11.5 9.5 11.3657 9.5 11.2V10.7459C9.5 10.6029 9.60094 10.4798 9.74117 10.4518L11.5216 10.0957C11.7691 10.0462 12 10.2355 12 10.4879Z","car-repair":"M3 5C3.74028 5 4.38662 4.5978 4.73243 4H12C12.5523 4 13 3.55228 13 3 13 2.44772 12.5523 2 12 2H4.73243C4.38662 1.4022 3.74028 1 3 1 2.25972 1 1.61337 1.4022 1.26756 2H3V4H1.26756C1.61337 4.5978 2.25972 5 3 5ZM2.14645 9.35355C2.05268 9.44732 2 9.5745 2 9.70711V13.5C2 13.7761 2.22386 14 2.5 14H4C4.27614 14 4.5 13.7761 4.5 13.5V13H10.5V13.5C10.5 13.7761 10.7239 14 11 14H12.5C12.7761 14 13 13.7761 13 13.5V9.70711C13 9.5745 12.9473 9.44732 12.8536 9.35355L12 8.5 10.6456 6.24275C10.5553 6.09215 10.3925 6 10.2169 6H4.78309C4.60746 6 4.44471 6.09215 4.35435 6.24275L3 8.5 2.14645 9.35355ZM11.1338 9H3.86622L5.06619 7H9.93381L11.1338 9ZM5.5 10.8279V11.2C5.5 11.3657 5.36568 11.5 5.2 11.5H3.3C3.13431 11.5 3 11.3657 3 11.2V10.3659C3 10.1766 3.1732 10.0346 3.35883 10.0718L5.17844 10.4357C5.36541 10.4731 5.5 10.6372 5.5 10.8279ZM12 10.4879V11.2C12 11.3657 11.8657 11.5 11.7 11.5H9.8C9.63431 11.5 9.5 11.3657 9.5 11.2V10.7459C9.5 10.6029 9.60094 10.4798 9.74116 10.4518L11.5216 10.0957C11.7691 10.0462 12 10.2355 12 10.4879Z",casino:"M8.5,10c0.4561,0.6072,1.1821,1,2,1c1.3807,0,2.5-1.1193,2.5-2.5c0-0.5642-0.1938-1.0789-0.509-1.4973L12.5,7l-5-6l-5,6 l0.009,0.0027C2.1938,7.4211,2,7.9358,2,8.5C2,9.8807,3.1193,11,4.5,11c0.8179,0,1.5439-0.3928,2-1 C6.5997,9.8672,6.7902,9.6135,7,9.3337V11.5C7,13,4.5,13,4.5,13C4.2239,13,4,13.2238,4,13.5C4,13.7761,4.2239,14,4.5,14H7h1h2.5 c0.2761,0,0.5-0.2239,0.5-0.5c0-0.2762-0.2239-0.5-0.5-0.5c0,0-2.5,0-2.5-1.5V9.3337C8.2098,9.6135,8.4003,9.8672,8.5,10z",castle:"M11,4H4C3.4477,4,3,3.5523,3,3V0.5C3,0.2239,3.2239,0,3.5,0S4,0.2239,4,0.5V2h1V1c0-0.5523,0.4477-1,1-1s1,0.4477,1,1v1h1V1 c0-0.5523,0.4477-1,1-1s1,0.4477,1,1v1h1V0.5C11,0.2239,11.2239,0,11.5,0S12,0.2239,12,0.5V3C12,3.5523,11.5523,4,11,4z M14,14.5 c0,0.2761-0.2239,0.5-0.5,0.5h-12C1.2239,15,1,14.7761,1,14.5S1.2239,14,1.5,14H2c0.5523,0,1-0.4477,1-1c0,0,1-6,1-7 c0-0.5523,0.4477-1,1-1h5c0.5523,0,1,0.4477,1,1c0,1,1,7,1,7c0,0.5523,0.4477,1,1,1h0.5c0.2723-0.0001,0.4946,0.2178,0.5,0.49V14.5z M9,10.5C9,9.6716,8.3284,9,7.5,9S6,9.6716,6,10.5V14h3V10.5z","castle-JP":"M12.5,12.75a1,1,0,0,1-1-.9995V7.25H10a1,1,0,0,1-1-1v-2H6v2a1,1,0,0,1-1,1H3.5v4.5a1,1,0,0,1-2,0V6.25a1,1,0,0,1,1-1H4v-2a1,1,0,0,1,1-1h5a1,1,0,0,1,1,1v2h1.5a1,1,0,0,1,1,1v5.5a1,1,0,0,1-.9995,1Z",caution:"M1.09302 11.8924L6.84044 1.3905C7.12539 0.869834 7.87461 0.869834 8.15956 1.3905L13.907 11.8924C14.1805 12.3922 13.818 13.0019 13.2474 13.0019H1.75258C1.18195 13.0019 0.819505 12.3922 1.09302 11.8924ZM8.29999 8L8.70296 5.5822C8.75375 5.27743 8.51873 5 8.20976 5H6.79022C6.48125 5 6.24623 5.27743 6.29703 5.5822L6.69999 8H8.29999ZM8.59999 9.9C8.59999 9.29249 8.10751 8.8 7.49999 8.8C6.89248 8.8 6.39999 9.29249 6.39999 9.9C6.39999 10.5075 6.89248 11 7.49999 11C8.10751 11 8.59999 10.5075 8.59999 9.9Z",cemetery:"M11.46,12h-0.68L12,3.55c0.0175-0.2867-0.2008-0.5332-0.4874-0.5507C11.4884,2.9979,11.4641,2.9981,11.44,3h-1.18 c0-0.92-1.23-2-2.75-2S4.77,2.08,4.77,3H3.54C3.253,2.9885,3.0111,3.2117,2.9995,3.4987C2.9988,3.5158,2.999,3.5329,3,3.55L4.2,12 H3.55C3.2609,11.9886,3.0162,12.2112,3,12.5V14h9v-1.51C11.9839,12.2067,11.7435,11.9886,11.46,12z M4.5,5h6v1h-6V5z","cemetery-JP":"M11.5,11h-3V2.5a.9448.9448,0,0,0-1-1,.9448.9448,0,0,0-1,1V11h-3a1,1,0,0,0,0,2h8a.9448.9448,0,0,0,1-1A1.0022,1.0022,0,0,0,11.5,11Z","charging-station":"m14 4v-1.51c-.0054-.2722-.2277-.4901-.5-.49-.2816.0047-.5062.2367-.5015.5184.0002.0105.0007.0211.0015.0316v2.45c0 .5523.4477 1 1 1v5.5c0 .2761-.2239.5-.5.5s-.5-.2239-.5-.5v-2c0-.8284-.6716-1.5-1.5-1.5h-1.5v-6c0-.5523-.4477-1-1-1h-6c-.5523 0-1 .4477-1 1v11c0 .5523.4477 1 1 1h6c.5523 0 1-.4477 1-1v-4h1.5c.2761 0 .5.2239.5.5v2c0 .8284.6716 1.5 1.5 1.5s1.5-.6716 1.5-1.5v-6.5c0-.5523-.4477-1-1-1zm-5.7996 3.3995-2.6006 3.4674-.0164-.0072c-.0465.0787-.1167.1403-.2146.1403-.1476 0-.2672-.1196-.2672-.2672 0-.028.0217-.0463.0297-.0717l-.0177-.0078.7766-2.3245c.054-.1617-.0664-.3288-.2369-.3288h-1.6539c-.2058 0-.3232-.2349-.1998-.3995l2.6006-3.4674.0164.0072c.0465-.0787.1167-.1403.2146-.1403.1476 0 .2672.1196.2672.2672 0 .028-.0217.0463-.0297.0717l.0176.0078-.7764 2.3244c-.0541.1618.0663.3289.2368.3289h1.6539c.2058 0 .3232.2349.1998.3995z",cinema:"M14,7.5v2c0,0.2761-0.2239,0.5-0.5,0.5S13,9.7761,13,9.5c0,0,0.06-0.5-1-0.5h-1v2.5c0,0.2761-0.2239,0.5-0.5,0.5h-8 C2.2239,12,2,11.7761,2,11.5v-4C2,7.2239,2.2239,7,2.5,7h8C10.7761,7,11,7.2239,11,7.5V8h1c1.06,0,1-0.5,1-0.5 C13,7.2239,13.2239,7,13.5,7S14,7.2239,14,7.5z M4,3C2.8954,3,2,3.8954,2,5s0.8954,2,2,2s2-0.8954,2-2S5.1046,3,4,3z M4,6 C3.4477,6,3,5.5523,3,5s0.4477-1,1-1s1,0.4477,1,1S4.5523,6,4,6z M8.5,2C7.1193,2,6,3.1193,6,4.5S7.1193,7,8.5,7S11,5.8807,11,4.5 S9.8807,2,8.5,2z M8.5,6C7.6716,6,7,5.3284,7,4.5S7.6716,3,8.5,3S10,3.6716,10,4.5S9.3284,6,8.5,6z",circle:"M14,7.5c0,3.5899-2.9101,6.5-6.5,6.5S1,11.0899,1,7.5S3.9101,1,7.5,1S14,3.9101,14,7.5z","circle-stroked":"M7.5 12.3C4.84898 12.3 2.7 10.151 2.7 7.5C2.7 4.84898 4.84898 2.7 7.5 2.7C10.151 2.7 12.3 4.84898 12.3 7.5C12.3 10.151 10.151 12.3 7.5 12.3ZM7.5 14C11.0899 14 14 11.0899 14 7.5C14 3.9101 11.0899 1 7.5 1C3.9101 1 1 3.9101 1 7.5C1 11.0899 3.9101 14 7.5 14Z",city:"M12.6368 3.9994H10.9981V2.3608C10.998 2.16148 10.8364 1.99994 10.6371 2H10.3591C10.1598 2 9.9982 2.16158 9.9982 2.3609V3.9994H8.36C8.16068 3.9994 7.9991 4.16098 7.9991 4.3603V9.9984H4.3621C4.16168 9.9984 3.9992 10.1609 3.9992 10.3613V12.6358C3.99975 12.8358 4.16207 12.9977 4.3621 12.9977H12.6368C12.8361 12.9977 12.9977 12.8361 12.9977 12.6368V4.36C12.9977 4.16068 12.8361 3.9994 12.6368 3.9994ZM5.9989 11.9981H4.9989V10.9981H5.9989V11.9981ZM7.9989 11.9981H6.9989V10.9981H7.9989V11.9981ZM9.9989 11.9981H8.9989V10.9981H9.9989V11.9981ZM9.9989 9.9981H8.9989V8.9981H9.9989V9.9981ZM9.9989 7.9981H8.9989V6.9981H9.9989V7.9981ZM9.9989 5.9981H8.9989V4.9981H9.9989V5.9981ZM11.9989 11.9971H10.9989V10.9971H11.9989V11.9971ZM11.9989 9.9971H10.9989V8.9971H11.9989V9.9971ZM11.9989 7.9971H10.9989V6.9971H11.9989V7.9971ZM11.9989 5.9971H10.9989V4.9971H11.9989V5.9971ZM6.9987 2.3608C6.99864 2.16152 6.83708 2 6.6378 2H4.36C4.16068 2 3.9991 2.16158 3.9991 2.3609V4H2.36C2.16138 4.00049 2.00049 4.16138 2 4.36V12.6474C2 12.8407 2.1567 12.9974 2.35 12.9974H2.9994V8.9986H6.9987V2.3608ZM4 7.9981H3V6.9981H4V7.9981ZM4 5.9981H3V4.9981H4V5.9981ZM6 7.9981H5V6.9981H6V7.9981ZM6 5.9981H5V4.9981H6V5.9981ZM6 3.9981H5V3H6V4V3.9981Z","clothing-store":"M4 2L1 4.5L1 7H4V13H11V7H14V4.5L11 2H9.5L7.5 6L5.5 2L4 2Z",college:"M7.5,1L0,4.5l2,0.9v1.7C1.4,7.3,1,7.9,1,8.5s0.4,1.2,1,1.4V10l-0.9,2.1 C0.8,13,1,14,2.5,14s1.7-1,1.4-1.9L3,10c0.6-0.3,1-0.8,1-1.5S3.6,7.3,3,7.1V5.9L7.5,8L15,4.5L7.5,1z M11.9,7.5l-4.5,2L5,8.4v0.1 c0,0.7-0.3,1.3-0.8,1.8l0.6,1.4v0.1C4.9,12.2,5,12.6,4.9,13c0.7,0.3,1.5,0.5,2.5,0.5c3.3,0,4.5-2,4.5-3L11.9,7.5L11.9,7.5z","college-JP":"M12.5,2.9992h-4v-1a1,1,0,0,0-2,0v1h-4a1,1,0,0,0,0,2h.67A10.8169,10.8169,0,0,0,5.15,8.8105c.3331.4313.6594.8248.9785,1.1936a14.3825,14.3825,0,0,1-2.6074,2.117,1,1,0,1,0,.955,1.7581h0A15.65,15.65,0,0,0,7.5,11.4613a15.65,15.65,0,0,0,3.0239,2.4179,1,1,0,1,0,.9551-1.7578,14.3789,14.3789,0,0,1-2.6073-2.1171c.3191-.3688.6453-.7622.9784-1.1935a10.818,10.818,0,0,0,1.98-3.8116h.67a1,1,0,0,0,0-2ZM8.2671,7.5879c-.2614.3385-.5154.6413-.767.937-.2517-.2957-.5057-.5985-.7672-.937A9.5885,9.5885,0,0,1,5.2676,4.9992H9.7319A9.5789,9.5789,0,0,1,8.2671,7.5879Z",commercial:"m14 6h-13c.0881-1.3829.427-2.7383 1-4h11c.5731 1.2617.9119 2.6171 1 4zm-11 1h9v6h-1v-5h-3v5h-5zm1 3h3v-2h-3z","communications-tower":"M11.8545,6.4336l-.4131-.2813a4.7623,4.7623,0,0,0,.2813-4.8779l-.0835-.1533L12.0747.875l.0908.167a5.2619,5.2619,0,0,1-.311,5.3916Zm1.1521,7.1316V14h-11v-.4348H4.4952L6.0439,6.4a.5.5,0,0,1,.4888-.3945h.7255V4.6014A1.14,1.14,0,0,1,6.3756,3.5a1.1568,1.1568,0,1,1,2.3136,0,1.14,1.14,0,0,1-.931,1.1112V6.0059h.7223A.5.5,0,0,1,8.9692,6.4l1.5478,7.1648ZM8.4543,8.751H6.5588L6.236,10.2441H8.777ZM6.1279,10.7441l-.3233,1.4952H9.2082l-.3231-1.4952ZM6.936,7.0059,6.6669,8.251H8.3463L8.0771,7.0059ZM5.5179,13.5652H9.4948l-.1786-.8259h-3.62ZM5.21,5.0137a2.7523,2.7523,0,0,1,.0161-3.0518L4.812,1.6826a3.25,3.25,0,0,0-.019,3.6065ZM10.7568,3.5a3.2433,3.2433,0,0,0-.5341-1.7861l-.418.2754a2.7517,2.7517,0,0,1-.0176,3.0488l.4141.2793A3.2341,3.2341,0,0,0,10.7568,3.5ZM3.5342,6.1182A4.7637,4.7637,0,0,1,3.3813,1.13L2.9478.88a5.2643,5.2643,0,0,0,.1694,5.5137Z",confectionery:"M13,4a1,1,0,0,0-1-1,1,1,0,0,0-2,0V5.0673A3.4808,3.4808,0,0,0,4.3583,9H2a1,1,0,0,0,0,2,1,1,0,0,0,1,1,1,1,0,0,0,2,0V9.9326A3.4807,3.4807,0,0,0,10.6417,6H13a1,1,0,0,0,0-2ZM7.5,9.9925A2.484,2.484,0,0,1,6.3184,5.319a1.0809,1.0809,0,0,1,.5459.307A2.1243,2.1243,0,0,1,7.25,7.0117l.001.9561A2.5821,2.5821,0,0,0,7.76,9.7031a1.5462,1.5462,0,0,0,.2591.2333A2.4861,2.4861,0,0,1,7.5,9.9925ZM8.6815,9.681a1.0813,1.0813,0,0,1-.5458-.307A2.1243,2.1243,0,0,1,7.75,7.9883l-.001-.9561A2.5821,2.5821,0,0,0,7.24,5.2969a1.5557,1.5557,0,0,0-.2592-.2334A2.4843,2.4843,0,0,1,8.6815,9.681Z",construction:"M13.5 11h-1.8L8.2.5C8-.2 7-.2 6.8.5L3.3 11H1.5c-.3 0-.5.2-.5.5v1c0 .3.2.5.5.5h12c.3 0 .5-.2.5-.5v-1c0-.3-.2-.5-.5-.5ZM7 3h1l.7 2H6.4L7 3ZM5.7 7h3.6l.7 2H5l.7-2Z",convenience:"M2.9982,3.0687s.1875-1.062,1-1.062H5.0043V1.7276a.5.5,0,0,1,.5-.5H9.4882a.5.5,0,0,1,.5.5v.2791h1.01a.8324.8324,0,0,1,.6373.2937,1.7589,1.7589,0,0,1,.3627.7683s.3108,1.5719.5921,2.9181h-.938L11,3,3.982,2.9956,3.3336,5.9868H2.382Zm11,4.9144a1,1,0,0,1-.9992,1l-1.0008,3.973s-.1875,1.0417-1,1.0417h-7c-.8125,0-1-1.0417-1-1.0417L1.9822,8.98a.9985.9985,0,0,1,.016-1.9968h11A1,1,0,0,1,13.9982,7.9831ZM5.0327,12.13,5.03,11.0051,4.6392,9.4686a.5373.5373,0,1,0-1.0649.1445L3.78,11.0075l.1874,1.2672A.5373.5373,0,1,0,5.0327,12.13Zm2-2.5967A.5332.5332,0,0,0,6.4994,9l-.0039.0008L6.4886,9a.4992.4992,0,0,0-.3575.1509.529.529,0,0,0-.1648.3828v2.68a.5332.5332,0,1,0,1.0663,0Zm1.998,0A.5314.5314,0,0,0,8.694,9.04a.4992.4992,0,0,0-.393,0,.5312.5312,0,0,0-.3366.4934v2.68a.5331.5331,0,1,0,1.0662,0Zm2.3857.08a.5373.5373,0,1,0-1.0649-.1445L9.96,10.9938,9.9579,12.13a.5373.5373,0,1,0,1.0649.1446Z",cricket:"M8,1.5C8,2.3284,7.3284,3,6.5,3S5,2.3284,5,1.5S5.6716,0,6.5,0S8,0.6716,8,1.5z M10.88,7.18L10.88,7.18l-2-2l0,0l0,0 C8.7815,5.0616,8.6339,4.9952,8.48,5H3.75C3.3736,4.9915,3.0508,5.2669,3,5.64l0,0l-1,7.7l0,0c-0.0068,0.0464-0.0068,0.0936,0,0.14 c0,0.2761,0.2239,0.5,0.5,0.5c0.2251,0.0153,0.4315-0.1251,0.5-0.34l0,0l1.2-3.89l0,0l0.26-0.83l0.4,0.44l0,0L6,10.6v2.9 C6,13.7761,6.2239,14,6.5,14S7,13.7761,7,13.5v-3l0,0l0,0c-0.0081-0.0788-0.0356-0.1544-0.08-0.22l0,0L5.48,8.5l1-2.5h1.71l2,1.84 l0,0c0.0928,0.1077,0.2278,0.1697,0.37,0.17C10.8163,7.9791,11.007,7.7581,11,7.5C10.9997,7.3824,10.9571,7.2688,10.88,7.18z M14,11.27c-0.4142,0-0.75,0.3358-0.75,0.75s0.3358,0.75,0.75,0.75s0.75-0.3358,0.75-0.75S14.4142,11.27,14,11.27z M10.76,9.74V9 c0-0.1381-0.1119-0.25-0.25-0.25S10.26,8.8619,10.26,9v0.74c-0.1522,0.0855-0.2474,0.2455-0.25,0.42v3.34 c0,0.2761,0.2239,0.5,0.5,0.5s0.5-0.2239,0.5-0.5v-3.34C11.0074,9.9855,10.9122,9.8255,10.76,9.74z",cross:"M3.64 2.27L7.5 6.13L11.34 2.29C11.5114 2.1076 11.7497 2.0029 12 2C12.5523 2 13 2.4477 13 3C13.0047 3.2478 12.907 3.4866 12.73 3.66L8.84 7.5L12.73 11.39C12.8948 11.5512 12.9915 11.7696 13 12C13 12.5523 12.5523 13 12 13C11.7423 13.0107 11.492 12.9127 11.31 12.73L7.5 8.87L3.65 12.72C3.4793 12.8963 3.2453 12.9971 3 13C2.4477 13 2 12.5523 2 12C1.9953 11.7522 2.093 11.5134 2.27 11.34L6.16 7.5L2.27 3.61C2.1052 3.4488 2.0085 3.2304 2 3C2 2.4477 2.4477 2 3 2C3.2404 2.0029 3.4701 2.0998 3.64 2.27Z",dam:"M13.94,9.5c0,0.2761-0.2239,0.5-0.5,0.5l0,0c-0.259,0.0219-0.4994,0.1439-0.67,0.34c-0.2714,0.2887-0.6175,0.4964-1,0.6 c-0.6115,0.1816-1.2734,0.0424-1.76-0.37l-0.39-0.35c-0.2976-0.3038-0.7851-0.3087-1.0889-0.0111 C8.5274,10.2126,8.5237,10.2163,8.52,10.22c-0.14,0.12-0.27,0.25-0.42,0.37c-0.7278,0.5784-1.7663,0.5489-2.46-0.07L5.3,10.19 l-0.1-0.06l0.3,1.22l0.49,2c0.0829,0.2634-0.0634,0.5441-0.3267,0.6271C5.6105,13.9937,5.5553,14.0014,5.5,14h-4 C1.2239,14,1,13.7761,1,13.5v-12C1,1.2239,1.2239,1,1.5,1h1.1c0.2346-0.0011,0.4384,0.1611,0.49,0.39L4,5.06V5.2 c0.6569-0.314,1.4361-0.2205,2,0.24c0.16,0.13,0.31,0.28,0.47,0.41c0.2847,0.2546,0.7153,0.2546,1,0c0.16-0.13,0.31-0.28,0.47-0.41 c0.7076-0.5968,1.7424-0.5968,2.45,0c0.15,0.13,0.29,0.27,0.44,0.39c0.2847,0.2546,0.7153,0.2546,1,0l0.47-0.41 c0.3163-0.2672,0.7159-0.4157,1.13-0.42l0,0c0.2761,0,0.5,0.2239,0.5,0.5S13.7061,6,13.43,6l0,0 c-0.259,0.0219-0.4994,0.1439-0.67,0.34c-0.2714,0.2887-0.6175,0.4964-1,0.6C11.1485,7.1216,10.4866,6.9824,10,6.57L9.67,6.23 C9.3724,5.9262,8.8849,5.9213,8.5811,6.2189C8.5774,6.2226,8.5737,6.2263,8.57,6.23C8.43,6.35,8.3,6.48,8.15,6.6 C7.4222,7.1784,6.3837,7.1489,5.69,6.53L5.3,6.19c-0.2847-0.2546-0.7153-0.2546-1,0L4.24,6.24L4.93,9 C5.3226,9.029,5.6965,9.1793,6,9.43c0.16,0.13,0.31,0.28,0.47,0.41c0.2847,0.2546,0.7153,0.2546,1,0c0.16-0.13,0.31-0.28,0.47-0.41 c0.7076-0.5968,1.7424-0.5968,2.45,0c0.15,0.13,0.29,0.27,0.44,0.39c0.2847,0.2546,0.7153,0.2546,1,0l0.47-0.41 c0.3177-0.2636,0.7172-0.4085,1.13-0.41l0,0c0.2761-0.0055,0.5044,0.2138,0.5099,0.4899C13.94,9.4933,13.94,9.4966,13.94,9.5z",danger:"M13.94,14.68c-0.0749,0.194-0.262,0.3215-0.47,0.32c-0.0595,0.0107-0.1205,0.0107-0.18,0L7.5,12.56L1.7,15 c-0.2572,0.1005-0.5472-0.0266-0.6476-0.2838C1.0516,14.7141,1.0508,14.7121,1.05,14.71c-0.1291-0.2441-0.0358-0.5467,0.2084-0.6757 C1.2845,14.0205,1.3118,14.009,1.34,14l4.85-2l-4.85-2C1.0758,9.9197,0.9267,9.6404,1.007,9.3762s0.3596-0.4133,0.6238-0.333 C1.6545,9.0504,1.6776,9.0594,1.7,9.07l5.8,2.41l5.8-2.41c0.2494-0.1185,0.5477-0.0124,0.6662,0.237 c0.1185,0.2494,0.0124,0.5477-0.237,0.6662C13.7068,9.9839,13.6837,9.9928,13.66,10L8.8,12l4.85,2 c0.2607,0.091,0.3983,0.3761,0.3074,0.6368C13.9523,14.6515,13.9465,14.6659,13.94,14.68z M12,4.23v0.45 c-0.0021,0.2129-0.0722,0.4196-0.2,0.59C11.2414,5.8883,10.6399,6.4664,10,7v1.16c0.0015,0.208-0.126,0.3951-0.32,0.47L7.52,9.5 H7.45L5.28,8.63C5.1016,8.5428,4.9917,8.3584,5,8.16V7C4.3528,6.4675,3.7446,5.8893,3.18,5.27C3.0593,5.0972,2.9963,4.8907,3,4.68 V4.23C3.1669,2.0117,4.8974,0.2307,7.11,0h0.36l0,0h0.39C10.0862,0.2131,11.8348,1.9997,12,4.23z M6,4c0-0.5523-0.4477-1-1-1 S4,3.4477,4,4s0.4477,1,1,1S6,4.5523,6,4z M7,7c0-0.2761-0.2239-0.5-0.5-0.5S6,6.7239,6,7v0.5C6,7.7761,6.2239,8,6.5,8 S7,7.7761,7,7.5V7z M9,7c0-0.2761-0.2239-0.5-0.5-0.5S8,6.7239,8,7v0.5C8,7.7761,8.2239,8,8.5,8S9,7.7761,9,7.5V7z M11,4 c0-0.5523-0.4477-1-1-1S9,3.4477,9,4s0.4477,1,1,1S11,4.5523,11,4z",defibrillator:"m1.54995 7.33811c-2.386799-4.5965 3.63-7.660899 5.952-3.0644 2.3215-4.596499 8.33875-1.5322 5.95235 3.0644-.0869.1671-.2028.3456-.3114.5212h-1.8079l-1.81455-2.7216c-.06321-.09473-.1511-.1704-.25417-.21884-.10308-.04843-.21743-.06779-.3307-.05599-.11327.01181-.22117.05433-.31205.12298-.09087.06865-.16126.16082-.20358.26655l-1.6484 4.12-1.33-1.33c-.11716-.11707-.27597-.18288-.4416-.183h-3.1389c-.1086-.1757-.2245-.3542-.3111-.5213zm9.45005 1.7713c-.103-.00003-.2044-.02545-.2951-.07399-.0908-.04854-.1682-.11871-.2254-.20431l-1.34085-2.0111-1.5587 3.89679c-.03839.096-.10002.181-.17936.2474-.07935.0663-.17393.1119-.27524.1326-.04125.0086-.08327.0128-.1254.0126-.16568.0001-.32462-.0656-.4419-.1826l-1.8169-1.81739h-2.0054c1.36645 1.66819 2.85739 3.23039 4.46 4.67319.08531.077.19616.1197.3111.1197s.22579-.0427.3111-.1197c1.59778-1.4447 3.08545-3.0068 4.45055-4.67319z",dentist:"M4.36,14c-1,0-0.56-2.67-0.86-5c-0.1-0.76-1-1.49-1.12-2.06C2,5,1.39,1.44,3.66,1S6,3,7.54,3s1.57-2.36,3.85-2 s1.59,3.9,1.29,5.9c-0.1,0.45-1.1,1.48-1.18,2.06c-0.33,2.4,0.32,5-0.8,5c-0.93,0-1.32-2.72-2-4.5C8.43,8.63,8.06,8,7.54,8 C6,8,5.75,14,4.36,14z",diamond:"M7.03715 1.20147L2.12542 6.7C2.04962 6.78393 2.00568 6.89005 2.00051 7C1.99535 7.10994 2.02925 7.21013 2.09689 7.3L7.0065 13.7601C7.06233 13.8343 7.13629 13.8947 7.22216 13.9365C7.30803 13.9782 7.40331 14 7.5 14C7.59669 14 7.69197 13.9782 7.77784 13.9365C7.86371 13.8947 7.93766 13.8343 7.9935 13.7601L12.9031 7.3C12.9707 7.21013 13.0047 7.10994 12.9995 7C12.9943 6.89005 12.9504 6.78393 12.8746 6.7L7.96285 1.20147C7.90591 1.13833 7.83501 1.08761 7.75508 1.05282C7.67514 1.01802 7.5881 1 7.5 1C7.4119 1 7.32486 1.01802 7.24492 1.05282C7.16499 1.08761 7.09409 1.13833 7.03715 1.20147Z",doctor:"M5.5,7C4.1193,7,3,5.8807,3,4.5l0,0v-2C3,2.2239,3.2239,2,3.5,2H4c0.2761,0,0.5-0.2239,0.5-0.5S4.2761,1,4,1H3.5 C2.6716,1,2,1.6716,2,2.5v2c0.0013,1.1466,0.5658,2.2195,1.51,2.87l0,0C4.4131,8.1662,4.9514,9.297,5,10.5C5,12.433,6.567,14,8.5,14 s3.5-1.567,3.5-3.5V9.93c1.0695-0.2761,1.7126-1.367,1.4365-2.4365C13.1603,6.424,12.0695,5.7809,11,6.057 C9.9305,6.3332,9.2874,7.424,9.5635,8.4935C9.7454,9.198,10.2955,9.7481,11,9.93v0.57c0,1.3807-1.1193,2.5-2.5,2.5S6,11.8807,6,10.5 c0.0511-1.2045,0.5932-2.3356,1.5-3.13l0,0C8.4404,6.7172,9.001,5.6448,9,4.5v-2C9,1.6716,8.3284,1,7.5,1H7 C6.7239,1,6.5,1.2239,6.5,1.5S6.7239,2,7,2h0.5C7.7761,2,8,2.2239,8,2.5v2l0,0C8,5.8807,6.8807,7,5.5,7 M11.5,9 c-0.5523,0-1-0.4477-1-1s0.4477-1,1-1s1,0.4477,1,1S12.0523,9,11.5,9z","dog-park":"M 10.300781 1.2207031 C 9.9144812 1.2207031 9.6 1.2 9.5 2 L 9.0996094 4.5214844 L 11.5 6.5 L 13.5 6.5 C 14.9 6.5 15 5.5410156 15 5.5410156 L 13.099609 3.3222656 C 12.399609 2.6222656 11.7 2.5 11 2.5 L 11 2 C 11 2 11.067481 1.2206031 10.300781 1.2207031 z M 4.75 1.5 C 4.75 1.5 3.7992187 1.5206031 3.1992188 1.7207031 C 2.5992187 1.9207031 2 2.6210938 2 3.6210938 L 2 7.5214844 C 2 9.2214844 1.3 9.5 1 9.5 C 1 9.5 0 9.5214844 0 10.521484 L 0 12.720703 C 0 12.720703 0.00078125 13.521484 0.80078125 13.521484 L 1 13.521484 L 1.5 13.521484 L 2 13.521484 L 2 13.021484 L 2 12.822266 C 2 12.422266 1.8 12.221094 1.5 12.121094 L 1.5 11.021484 C 2.5 11.021484 2.6 10.820703 3 10.720703 L 3.5507812 12.917969 C 3.6507813 13.217969 3.7507813 13.417578 4.0507812 13.517578 L 5.0507812 13.517578 L 6 13.5 L 6 12.699219 C 6 12.022819 5 12 5 12 L 5 9.5 L 8.5 9.5 L 9.1992188 12.121094 C 9.5992188 13.521094 10.5 13.5 10.5 13.5 L 11 13.5 L 12 13.5 L 12 12.699219 C 12 11.987419 11 12 11 12 L 11.099609 7.921875 L 8 5.5 L 3.5 5.5 L 3.5 3.5 C 3.5 3.1 3.7765 3.0053 4 3 C 4.4941 2.9882 4.75 3 4.75 3 C 5.1642 3 5.5 2.6642 5.5 2.25 C 5.5 1.8358 5.1642 1.5 4.75 1.5 z M 11.75 4 C 11.8881 4 12 4.1119 12 4.25 C 12 4.3881 11.8881 4.5 11.75 4.5 C 11.6119 4.5 11.5 4.3881 11.5 4.25 C 11.5 4.1119 11.6119 4 11.75 4 z","drinking-water":"M6,1A2,2,0,0,0,4,3V6.5a.5.5,0,0,0,.5.5h2A.5.5,0,0,0,7,6.5v-2A.5.5,0,0,1,7.5,4H14V1ZM7,15H4a.5.5,0,0,1-.48-.38L2,8.62a.5.5,0,0,1,.365-.606A.558.558,0,0,1,2.5,8h6a.5.5,0,0,1,.514.485A.47.47,0,0,1,9,8.62l-1.5,6A.5.5,0,0,1,7,15ZM3.65,11H7.36l.5-2H3.14Z",elevator:"M11,1H4A1,1,0,0,0,3,2V13a1,1,0,0,0,1,1h7a1,1,0,0,0,1-1V2A1,1,0,0,0,11,1ZM7.5,12.5l-2-4h4Zm-2-6,2-4,2,4Z",embassy:"M6.65,2C5.43,2,4.48,3.38,4.11,3.82C4.0365,3.9102,3.9975,4.0237,4,4.14v4.4C3.9884,8.7827,4.1758,8.9889,4.4185,9.0005 C4.528,9.0057,4.6355,8.9699,4.72,8.9c0.4665-0.6264,1.1589-1.0461,1.93-1.17C8.06,7.73,8.6,9,10.07,9 c0.9948-0.0976,1.9415-0.4756,2.73-1.09c0.1272-0.0934,0.2016-0.2422,0.2-0.4V2.45c0.0275-0.2414-0.1459-0.4595-0.3874-0.487 C12.5332,1.954,12.4527,1.9668,12.38,2c-0.6813,0.5212-1.4706,0.8834-2.31,1.06C8.6,3.08,8.12,2,6.65,2z M2.5,3 c-0.5523,0-1-0.4477-1-1s0.4477-1,1-1s1,0.4477,1,1S3.0523,3,2.5,3z M3,4v9.48c0,0.2761-0.2239,0.5-0.5,0.5S2,13.7561,2,13.48V4 c0-0.2761,0.2239-0.5,0.5-0.5S3,3.7239,3,4z","emergency-phone":"M7.875,11.49a.51.51,0,0,0,.72,0l.72-.72,2.18,2.16-.37.37a2.24,2.24,0,0,1-1.44.7H8.24a2.24,2.24,0,0,1-1.45-.7L1.72,8.23A2.24,2.24,0,0,1,1,6.78V5.33a2.24,2.24,0,0,1,.72-1.45l.36-.36L4.26,5.69l-.73.73a.51.51,0,0,0,0,.72Zm4.72.38a1,1,0,0,0,.036-1.414h0l-.036-.036-.72-.72a1,1,0,0,0-1.414-.036h0l-.036.036ZM5.315,4.62a1,1,0,0,0,.036-1.414h0L4.595,2.45a1,1,0,0,0-1.414-.036h0L3.14,2.45ZM10,2V4H8V5h2V7h1V5h2V4H11V2Z",entrance:"m8 6.5v-1c0-.26522-.10536-.51957-.29289-.70711-.18754-.18753-.44189-.29289-.70711-.29289s-.51957.10536-.70711.29289c-.18753.18754-.29289.44189-.29289.70711v3zm-2-3.5c0-.19778.05865-.39112.16853-.55557s.26606-.29262.44879-.36831c.18272-.07569.38379-.09549.57777-.0569.19398.03858.37216.13382.51202.27367.13985.13986.23509.31804.27368.51202.03858.19398.01878.39505-.05691.57777-.07569.18273-.20386.33891-.36831.44879s-.35779.16853-.55557.16853c-.26522 0-.51957-.10536-.70711-.29289-.18753-.18754-.29289-.44189-.29289-.70711zm9 3c0 .26522-.1054.51957-.2929.70711-.1875.18753-.4419.29289-.7071.29289h-1.58c-.1316-.00076-.2621.02446-.3839.07423-.1218.04976-.2327.12309-.3261.21577l-5.42 5.42c-.18626.1847-.43766.2889-.7.29h-2.59c-.26522 0-.51957-.1054-.70711-.2929-.18753-.1875-.29289-.4419-.29289-.7071s.10536-.5196.29289-.7071c.18754-.1875.44189-.2929.70711-.2929h1.59c.26234-.0011.51374-.1053.7-.29l5.42-5.42c.0934-.09268.2043-.16601.3261-.21577.1218-.04977.2523-.07499.3839-.07423h2.58c.2652 0 .5196.10536.7071.29289.1875.18754.2929.44189.2929.70711z","entrance-alt1":"M6.554,9.639a.5.5,0,0,0,.707.707L9.928,7.669a.25.25,0,0,0,0-.354h0L7.261,4.639a.5.5,0,0,0-.707.707L8.2,7H1.5a.5.5,0,0,0,0,1H8.2ZM12,1H5.5a.5.5,0,0,0,0,1h6a.5.5,0,0,1,.5.5v10a.5.5,0,0,1-.5.5H5.25a.5.5,0,0,0,0,1H12a1,1,0,0,0,1-1V2A1,1,0,0,0,12,1Z",farm:"m8 6-3-2-3 2-1 2v4h2v-2h4v2h2v-4zm-2 2h-2v-2h2zm8 4h-3v-9.5c0-.39782.158-.77936.4393-1.06066s.6629-.43934 1.0607-.43934.7794.15804 1.0607.43934.4393.66284.4393 1.06066z","fast-food":"M14,8c0,0.5523-0.4477,1-1,1H2C1.4477,9,1,8.5523,1,8s0.4477-1,1-1h11C13.5523,7,14,7.4477,14,8z M3.5,10H2 c0,1.6569,1.3431,3,3,3h5c1.6569,0,3-1.3431,3-3H3.5z M3,6H2V4c0-1.1046,0.8954-2,2-2h7c1.1046,0,2,0.8954,2,2v2H3z M11,4.5 C11,4.7761,11.2239,5,11.5,5S12,4.7761,12,4.5S11.7761,4,11.5,4S11,4.2239,11,4.5z M9,3.5C9,3.7761,9.2239,4,9.5,4S10,3.7761,10,3.5 S9.7761,3,9.5,3S9,3.2239,9,3.5z M7,4.5C7,4.7761,7.2239,5,7.5,5S8,4.7761,8,4.5S7.7761,4,7.5,4S7,4.2239,7,4.5z M5,3.5 C5,3.7761,5.2239,4,5.5,4S6,3.7761,6,3.5S5.7761,3,5.5,3S5,3.2239,5,3.5z M3,4.5C3,4.7761,3.2239,5,3.5,5S4,4.7761,4,4.5 S3.7761,4,3.5,4S3,4.2239,3,4.5z",fence:"m13.5 9h-.5v-3h.5c.1326 0 .2598-.05268.3536-.14644.0937-.09377.1464-.22095.1464-.35356s-.0527-.25978-.1464-.35355c-.0938-.09377-.221-.14645-.3536-.14645h-.5v-2l-.286-.573c-.0218-.03651-.0525-.06683-.0894-.08809-.0368-.02125-.0784-.03273-.1209-.03333s-.0845.00969-.1219.0299c-.0374.0202-.069.04964-.0918.08552l-.29.579v2h-1v-2l-.286-.573c-.0218-.03651-.0525-.06683-.0894-.08809-.0368-.02125-.0784-.03273-.1209-.03333s-.0845.00969-.1219.0299c-.0374.0202-.069.04964-.0918.08552l-.29.579v2h-1v-2l-.286-.573c-.02178-.03651-.05254-.06683-.08936-.08809-.03681-.02125-.07846-.03273-.12096-.03333-.04251-.0006-.08446.00969-.12187.0299-.0374.0202-.06901.04964-.09181.08552l-.29.579v2h-1v-2l-.286-.573c-.02178-.03651-.05254-.06683-.08936-.08809-.03681-.02125-.07846-.03273-.12096-.03333-.04251-.0006-.08446.00969-.12187.0299-.0374.0202-.06901.04964-.09181.08552l-.29.579v2h-1v-2l-.286-.573c-.02178-.03651-.05254-.06683-.08936-.08809-.03681-.02125-.07846-.03273-.12096-.03333-.04251-.0006-.08446.00969-.12187.0299-.0374.0202-.06901.04964-.09181.08552l-.29.579v2h-1v-2l-.286-.573c-.02178-.03651-.05254-.06683-.08936-.08809-.03681-.02125-.07846-.03273-.12096-.03333-.04251-.0006-.08446.00969-.12187.0299-.0374.0202-.06901.04964-.09181.08552l-.29.579v2h-.5c-.13261 0-.25979.05268-.35355.14645-.09377.09377-.14645.22094-.14645.35355s.05268.25979.14645.35356c.09376.09376.22094.14644.35355.14644h.5v3h-.5c-.13261 0-.25979.05268-.35355.14645-.09377.09377-.14645.22094-.14645.35355s.05268.25979.14645.35356c.09376.09376.22094.14644.35355.14644h.5v1.5c0 .1326.05268.2598.14645.3536.09376.0937.22094.1464.35355.1464s.25979-.0527.35355-.1464c.09377-.0938.14645-.221.14645-.3536v-1.5h1v1.5c0 .1326.05268.2598.14645.3536.09376.0937.22094.1464.35355.1464s.25979-.0527.35355-.1464c.09377-.0938.14645-.221.14645-.3536v-1.5h1v1.5c0 .1326.05268.2598.14645.3536.09376.0937.22094.1464.35355.1464s.25979-.0527.35355-.1464c.09377-.0938.14645-.221.14645-.3536v-1.5h1v1.5c0 .1326.05268.2598.14645.3536.09376.0937.22094.1464.35355.1464s.25979-.0527.35355-.1464c.09377-.0938.14645-.221.14645-.3536v-1.5h1v1.5c0 .1326.0527.2598.1464.3536.0938.0937.221.1464.3536.1464s.2598-.0527.3536-.1464c.0937-.0938.1464-.221.1464-.3536v-1.5h1v1.5c0 .1326.0527.2598.1464.3536.0938.0937.221.1464.3536.1464s.2598-.0527.3536-.1464c.0937-.0938.1464-.221.1464-.3536v-1.5h.5c.1326 0 .2598-.05268.3536-.14644.0937-.09377.1464-.22095.1464-.35356s-.0527-.25978-.1464-.35355c-.0938-.09377-.221-.14645-.3536-.14645zm-10.5 0v-3h1v3zm2 0v-3h1v3zm2 0v-3h1v3zm2 0v-3h1v3zm2 0v-3h1v3z",ferry:"M5.33,11c0.6745,0.009,1.3262,0.245,1.85,0.67l0.26,0.23h0.05l0.31-0.28c0.9817-0.8115,2.379-0.8846,3.44-0.18L13.5,7L12,6 V2.45c-0.0466-0.8-0.6989-1.4305-1.5-1.45H10c0.0343-0.518-0.3579-0.9657-0.8759-1C9.0828-0.0027,9.0413-0.0027,9,0H6 C5.482-0.0343,5.0343,0.3579,5,0.8759C4.9973,0.9172,4.9973,0.9587,5,1H4.5C3.6989,1.0195,3.0466,1.65,3,2.45V6L1.5,7l2.25,4.53 C4.2143,11.2041,4.7631,11.02,5.33,11z M4,2.45c0.0105-0.2594,0.2293-0.4611,0.4886-0.4506C4.4924,1.9996,4.4962,1.9998,4.5,2h6 c0.259-0.0171,0.4829,0.1789,0.5,0.4379c0.0014,0.0207,0.0014,0.0414,0,0.0621v3l-3.5-2L4,5.45C4,5.45,4,2.45,4,2.45z M14,13v1 c-0.2626,0.0194-0.5069,0.1416-0.68,0.34c-0.2717,0.2883-0.6178,0.4959-1,0.6c-0.6147,0.1815-1.2795,0.0425-1.77-0.37l-0.39-0.35 c-0.3043-0.3026-0.7957-0.3026-1.1,0c-0.14,0.12-0.27,0.25-0.42,0.37c-0.7328,0.5856-1.7814,0.556-2.48-0.07l-0.39-0.35 c-0.2864-0.2502-0.7136-0.2502-1,0c-0.19,0.15-0.36,0.32-0.55,0.47c-0.7043,0.5215-1.6732,0.4968-2.35-0.06l-0.31-0.27 C1.4153,14.1443,1.2172,14.0346,1,14v-1c0.2585-0.032,0.5205,0.0169,0.75,0.14c0.2782,0.1722,0.5424,0.3661,0.79,0.58 c0.2051,0.2235,0.5147,0.319,0.81,0.25c0.1125-0.0333,0.2177-0.0876,0.31-0.16c0.16-0.12,0.29-0.26,0.45-0.39 c0.7106-0.5888,1.7394-0.5888,2.45,0c0.16,0.13,0.31,0.28,0.47,0.41c0.2864,0.2502,0.7136,0.2502,1,0c0.16-0.13,0.31-0.28,0.47-0.41 c0.7123-0.5943,1.7477-0.5943,2.46,0c0.15,0.13,0.29,0.27,0.44,0.39c0.2864,0.2502,0.7136,0.2502,1,0l0.47-0.41 C13.1895,13.1408,13.5886,12.9995,14,13z","ferry-JP":"M9.5 12.5H5.5L5.5 8C5.5 6.91153 6.07979 5.44812 6.85389 4.13809C7.07346 3.76652 7.29495 3.43049 7.5 3.1451C7.70505 3.43049 7.92654 3.76652 8.14611 4.13809C8.92021 5.44812 9.5 6.91153 9.5 8V12.5ZM7.5 1C7 1 4 5 4 8V12.5C4 13.3284 4.67157 14 5.5 14H9.5C10.3284 14 11 13.329 11 12.5006V8C11 5 8 1 7.5 1Z","fire-station":"M7.5 14C11.0899 14 14 11 14 7.50003C14 4.5 11.5 2 11.5 2L10.5 5.5L7.5 1L4.5 5.5L3.5 2C3.5 2 1 4.5 1 7.50003C1 11 3.91015 14 7.5 14ZM7.5 12.5C6.11929 12.5 5 11.3807 5 10C5 8.61929 7.5 5.5 7.5 5.5C7.5 5.5 10 8.61929 10 10C10 11.3807 8.88071 12.5 7.5 12.5Z","fire-station-JP":"M8.5,8.1489V11.75a1,1,0,0,1-2,0V8.1489A5.0084,5.0084,0,0,1,2.5,3.25a1,1,0,0,1,2,0,3,3,0,0,0,6,0,1,1,0,0,1,2,0A5.0082,5.0082,0,0,1,8.5,8.1489Z","fitness-centre":"M14.5,7V8h-1v2h-1v1H11V8H4v3H2.5V10h-1V8H.5V7h1V5h1V4H4V7h7V4h1.5V5h1V7Z",florist:"M1.5,1A2.7,2.7,0,0,1,4,3l.5-3L5,3A2.7,2.7,0,0,1,7.5,1c-.2.03-1,.26-1,2v.083A1.959,1.959,0,0,1,4.5,5H4.417A1.959,1.959,0,0,1,2.5,3C2.5,1.261,1.7,1.03,1.5,1ZM12.012,11l3-.5-3-.5A2.686,2.686,0,0,0,14,7.5c-.03.2-.248,1-1.988,1a2,2,0,0,0,0,4c1.739,0,1.958.8,1.988,1A2.686,2.686,0,0,0,12.012,11ZM9.688,5.548a1,1,0,0,1,0-2,1,1,0,0,1,0-2,.986.986,0,0,1,.852.507l.023-.012a.978.978,0,0,1-.116-.444,1,1,0,1,1,2,0,.978.978,0,0,1-.116.444l.019.01a.986.986,0,0,1,.85-.5,1,1,0,0,1,.025,2,1,1,0,0,1-.025,2,.986.986,0,0,1-.85-.5l-.016.009a.978.978,0,0,1,.113.44,1,1,0,0,1-2,0,.978.978,0,0,1,.113-.44l-.02-.011a.986.986,0,0,1-.852.507Zm.71-1.995A1.051,1.051,0,1,0,11.449,2.5,1.051,1.051,0,0,0,10.4,3.553v0ZM4.946,11.444l-.516-.515L8.892,6.475A1.746,1.746,0,0,1,8.44,6.22L4.076,10.575l-.519-.518A16.051,16.051,0,0,0,4.912,6a3.373,3.373,0,0,1-.412.035c-.041,0-.073-.008-.112-.01A16.953,16.953,0,0,1,3.131,9.631L2.76,9.26a.246.246,0,0,0-.4.079L.231,14.445a.287.287,0,0,0-.016.089.25.25,0,0,0,.25.25.289.289,0,0,0,.1-.019l5.1-2.124a.246.246,0,0,0,.079-.4l-.372-.372a16.874,16.874,0,0,1,3.612-1.256c0-.059-.015-.106-.015-.166A3.349,3.349,0,0,1,9,10.089,16.076,16.076,0,0,0,4.946,11.444Z",fuel:"m14 6v5.5c0 .2761-.2239.5-.5.5s-.5-.2239-.5-.5v-2c0-.8284-.6716-1.5-1.5-1.5h-1.5v-6c0-.5523-.4477-1-1-1h-6c-.5523 0-1 .4477-1 1v11c0 .5523.4477 1 1 1h6c.5523 0 1-.4477 1-1v-4h1.5c.2761 0 .5.2239.5.5v2c0 .8284.6716 1.5 1.5 1.5s1.5-.6716 1.5-1.5v-6.5c0-.5523-.4477-1-1-1v-1.51c-.0054-.2722-.2277-.4901-.5-.49-.2816.0047-.5062.2367-.5015.5184.0002.0105.0007.0211.0015.0316v2.45c0 .5523.4477 1 1 1s1-.4477 1-1-.4477-1-1-1zm-5 .5c0 .2761-.2239.5-.5.5h-5c-.2761 0-.5-.2239-.5-.5v-3c0-.2761.2239-.5.5-.5h5c.2761 0 .5.2239.5.5z",furniture:"m8.69099 10.142v-1.642c0-.13261-.05268-.25979-.14645-.35355-.09377-.09377-.22094-.14645-.35355-.14645h-1c-.13261 0-.25979.05268-.35356.14645-.09376.09376-.14644.22094-.14644.35355v1.641c-.75987.1945-1.4456.6085-1.9715 1.1905-.52591.5819-.86868 1.3059-.9855 2.0815-.01141.0723-.00702.1462.01285.2167.01987.0704.05476.1357.10227.1914s.10651.1004.17295.1311c.06643.0307.13873.0467.21193.0468h6.92201c.0732-.0001.1455-.0161.2119-.0468.0665-.0307.1255-.0754.173-.1311s.0824-.121.1022-.1914c.0199-.0705.0243-.1444.0129-.2167-.1176-.7765-.4616-1.501-.989-2.0828-.5275-.5819-1.2148-.9952-1.97601-1.1882zm4.63901-3.863-2.5-5c-.0412-.08351-.1048-.15387-.1838-.20316s-.1701-.07556-.2632-.07584h-5.38401c-.09261.00019-.18335.02609-.2621.07483-.07875.04873-.14241.11837-.1839.20117l-2.5 5c-.03809.076-.05617.16046-.05253.24539.00363.08494.02886.16754.07331.24001.04444.07247.10663.13241.18068.17416s.15753.06393.24254.06444h8.19401v1.5c0 .13261.0527.25979.1464.35355.0938.09377.221.14645.3536.14645s.2598-.05268.3535-.14645c.0938-.09376.1465-.22094.1465-.35355v-1.5h1.194c.0847-.00059.1678-.02269.2416-.06421s.1359-.1011.1804-.17317c.0444-.07207.0699-.15425.0739-.23884s-.0135-.16882-.0509-.24478z",gaming:"m13.1 11.5c-.6.3-1.4.1-1.8-.5l-1.1-1.4h-5.40002l-1.1 1.4c-.5.7-1.4.8-2.1.3-.5-.4-.700004-1-.600004-1.5l.700004-3.7c.2-1.2 1.3-2.1 2.5-2.1h2.8v-1.5c0-.8.6-1.5 1.4-1.5h3.10002c.3 0 .5.2.5.5s-.2.5-.5.5h-3.00002c-.3 0-.5.2-.5.4v.1 1.5h2.80002c1.2 0 2.3.9 2.5 2.1l.7 3.7c.1.7-.2 1.4-.9 1.7zm-7.10002-5c0-.8-.7-1.5-1.5-1.5s-1.5.7-1.5 1.5.7 1.5 1.5 1.5 1.5-.7 1.5-1.5zm6.00002 0c0-.3-.2-.5-.5-.5h-.5v-.5c0-.3-.2-.5-.5-.5s-.50002.2-.50002.5v.5h-.5c-.3 0-.5.2-.5.5s.2.5.5.5h.5v.5c0 .3.20002.5.50002.5s.5-.2.5-.5v-.5h.5c.3 0 .5-.2.5-.5z",garden:"M13,8c0,3.31-2.19,6-5.5,6S2,11.31,2,8c2.2643,0.0191,4.2694,1.4667,5,3.61V7H4.5C3.6716,7,3,6.3284,3,5.5v-3 C3,2.2239,3.2239,2,3.5,2c0.1574,0,0.3056,0.0741,0.4,0.2l1.53,2l1.65-3c0.1498-0.232,0.4593-0.2985,0.6913-0.1487 C7.8308,1.0898,7.8815,1.1404,7.92,1.2l1.65,3l1.53-2c0.1657-0.2209,0.4791-0.2657,0.7-0.1C11.9259,2.1944,12,2.3426,12,2.5v3 C12,6.3284,11.3284,7,10.5,7H8v4.61C8.7306,9.4667,10.7357,8.0191,13,8z","garden-centre":"M4,5L4,4.5C4,3.12 5.12,2 6.5,2C7.88,2 9,3.12 9,4.5L9,10.293L11.365,7.928L11.018,6.633C11.018,6.631 11.017,6.629 11.017,6.627L11.016,6.627L11.016,6.627C10.973,6.461 11.016,6.276 11.147,6.146C11.342,5.951 11.659,5.951 11.854,6.146L13.854,8.146C14.049,8.341 14.049,8.658 13.854,8.853C13.724,8.983 13.541,9.027 13.375,8.984C13.375,8.984 13.375,8.984 13.375,8.984C13.372,8.983 13.369,8.982 13.365,8.981L12.072,8.635L9,11.707L9,12C9,12.552 8.552,13 8,13L5,13C4.448,13 4,12.552 4,12L4,11.536L1.732,9.268C0.757,8.292 0.757,6.708 1.732,5.732C2.22,5.244 2.86,5 3.5,5L3.5,5L4,5ZM4,6L3.5,6L3.5,6C3.116,6 2.732,6.147 2.439,6.439C1.854,7.025 1.854,7.975 2.439,8.561L4,10.121L4,6ZM8,5L8,4.5C8,3.672 7.328,3 6.5,3C5.672,3 5,3.672 5,4.5L5,5L8,5Z",gate:"M1 2.75A.75.75 0 0 1 1.75 2h1.114c.09 0 .18.016.263.048l3.386 1.27A.75.75 0 0 1 7 4.02v5.96a.75.75 0 0 1-.487.702L3 12v.25a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1-.75-.75v-9.5Zm3 5.736v-4.87a.25.25 0 0 0-.162-.234l-.5-.187A.25.25 0 0 0 3 3.429v5.224c0 .17.167.291.33.237l.5-.166A.25.25 0 0 0 4 8.486ZM5 4.18v3.807a.25.25 0 0 0 .33.238l.5-.167A.25.25 0 0 0 6 7.82V4.366a.25.25 0 0 0-.162-.234l-.5-.187A.25.25 0 0 0 5 4.179Zm9-1.43a.75.75 0 0 0-.75-.75h-1.114a.75.75 0 0 0-.263.048l-3.386 1.27A.75.75 0 0 0 8 4.02v5.96a.75.75 0 0 0 .487.702L12 12v.25c0 .414.336.75.75.75h.5a.75.75 0 0 0 .75-.75v-9.5Zm-2.83 5.974a.25.25 0 0 1-.17-.238v-4.87a.25.25 0 0 1 .162-.234l.5-.187a.25.25 0 0 1 .338.234v5.224a.25.25 0 0 1-.33.237l-.5-.166ZM10 4.179v3.807a.25.25 0 0 1-.33.238l-.5-.167A.25.25 0 0 1 9 7.82V4.366a.25.25 0 0 1 .162-.234l.5-.187a.25.25 0 0 1 .338.234Z",gift:"M10.5 1.00152C9.0967.957116 7.8503 1.89192 7.5 3.25152 7.1497 1.89192 5.9033.957116 4.5 1.00152 2.7678.947006 2.23515 2.79746 2.81831 4H1.5C1.22386 4 1 4.22386 1 4.5V5.5C1 5.77614 1.22386 6 1.5 6H13.5C13.7761 6 14 5.77614 14 5.5V4.5C14 4.22386 13.7761 4 13.5 4H12.1938C12.8 2.81516 12.2922 1.00143 10.5404 1.00112 10.5269 1.00112 10.5135 1.00122 10.5 1.00152ZM10.6831 4H8.5C8.50082 2.8961 9.3959 2.00152 10.5 2.00152 11.675 2.00152 11.8827 3.87414 10.6831 4ZM6.5 4H4.29187C3.25675 3.88256 3.19576 2.10553 4.3323 2.00152 4.3881 1.99642 4.4442 1.99642 4.5 2.00152 5.60409 2.00152 6.49918 2.8961 6.5 4ZM2 7.00146V11.5015C2 12.3299 2.6716 13.0015 3.5 13.0015H6.5V7.00146H2ZM8.5 7.00146V13.0015H11.5C12.3284 13.0015 13 12.3299 13 11.5015V7.00146H8.5Z",globe:"M11.981,9.481,11.26,8.76A4.979,4.979,0,1,1,4.24,1.74l-.721-.721A5.991,5.991,0,0,0,7,11.475V13H6.5a.5.5,0,0,0,0,1h2a.5.5,0,0,0,0-1H8V11.473A5.983,5.983,0,0,0,11.981,9.481ZM7.5,9A3.5,3.5,0,1,0,4,5.5,3.5,3.5,0,0,0,7.5,9Zm1-5,.364-.592a2.5,2.5,0,0,1,.823.9L9.5,5h-1ZM6.656,3.156,7.5,4V5L8,6H9.94a2.494,2.494,0,0,1-1.5,1.814L8,7H6.5L5.05,5A2.5,2.5,0,0,1,6.656,3.156Z",golf:"M3.3999,1.1c0,0.1,0,0.2,0,0.2c0,0.4,0.3,0.7,0.7,0.7c0.3,0,0.5-0.2,0.6-0.5l0,0L4.9,1l5.6,2.3L6.6,6C6.2,6.3,6.2,6.7,6.3,7.1 l0.9,2.1l-1.3,3.9C5.7,13.6,6.1,14,6.5,14c0.3,0,0.5-0.1,0.6-0.5l1.4-4l0.1,0.3v3.5c0,0,0,0.7,0.7,0.7s0.7-0.7,0.7-0.7V10 c0-0.2,0-0.3-0.1-0.5L8.5,6.1l2.7-1.9c0.2-0.2,0.4-0.3,0.4-0.6s-0.2-0.5-0.4-0.6L4,0.1c-0.0878,0-0.118,0.0179-0.2001,0.1 L3.3999,1.1z M5.5,3C4.7,3,4,3.7,4,4.5S4.7,6,5.5,6S7,5.3,7,4.5S6.2999,3,5.5,3z",grocery:"M 13.199219 1.5 C 13.199219 1.5 11.808806 1.4588 11.253906 2 C 10.720406 2.5202 10.5 2.9177 10.5 4 L 1.1992188 4 L 2.59375 8.8144531 C 2.59725 8.8217531 2.6036219 8.8287375 2.6074219 8.8359375 C 2.8418219 9.4932375 3.4545469 9.9666406 4.1855469 9.9941406 C 4.1885469 9.9954406 4.1992187 10 4.1992188 10 L 10.699219 10 L 10.699219 10.199219 C 10.699219 10.199219 10.7 10.500391 10.5 10.900391 C 10.3 11.300391 10.200391 11.5 9.4003906 11.5 L 2.9003906 11.5 C 1.9003906 11.5 1.9003906 13 2.9003906 13 L 4.0996094 13 L 4.1992188 13 L 9.0996094 13 L 9.1992188 13 L 9.3007812 13 C 10.500781 13 11.399219 12.299609 11.699219 11.599609 C 11.999219 10.899609 12 10.300781 12 10.300781 L 12 10 L 12 4 C 12 3.4764 12.228619 3 12.699219 3 L 13.25 3 C 13.6642 3 14 2.6642 14 2.25 C 14 1.8358 13.6642 1.5 13.25 1.5 L 13.199219 1.5 z M 9.1992188 13 C 8.5992188 13 8.1992188 13.4 8.1992188 14 C 8.1992188 14.6 8.5992187 15 9.1992188 15 C 9.7992187 15 10.199219 14.6 10.199219 14 C 10.199219 13.4 9.7992188 13 9.1992188 13 z M 4.1992188 13 C 3.5992188 13 3.1992188 13.4 3.1992188 14 C 3.1992188 14.6 3.5992187 15 4.1992188 15 C 4.7992188 15 5.1992188 14.6 5.1992188 14 C 5.1992188 13.4 4.7992187 13 4.1992188 13 z",hairdresser:"M15,3c0,0-2-0.6-3.5,0.5l-4.3,3C6.4,5.9,5.2,5.2,4,4.8V4c0-1.1-0.9-2-2-2C0.9,2,0,2.9,0,4v1.5 C0,6,0.5,6,0.5,6H2h0.5C4.5,6,6,7.5,6,7.5S4.5,9,2.5,9H2H0.5C0.5,9,0,9,0,9.5V11c0,1.1,0.9,2,2,2c1.1,0,2-0.9,2-2v-0.8 c1.2-0.4,2.4-1.1,3.2-1.7l4.3,3C13,12.6,15,12,15,12L8.5,7.5L15,3z M3,5H2H1V4c0-0.6,0.4-1,1-1c0.6,0,1,0.4,1,1V5z M3,11 c0,0.6-0.4,1-1,1c-0.6,0-1-0.4-1-1v-1h1h1V11z M7.25,8c-0.2761,0-0.5-0.2239-0.5-0.5S6.9739,7,7.25,7s0.5,0.2239,0.5,0.5 S7.5261,8,7.25,8z",harbor:"M7.5,0C5.5,0,4,1.567,4,3.5c0.0024,1.5629,1.0397,2.902,2.5,3.3379v6.0391 c-0.9305-0.1647-1.8755-0.5496-2.6484-1.2695C2.7992,10.6273,2.002,9.0676,2.002,6.498c0.0077-0.5646-0.4531-1.0236-1.0176-1.0137 C0.4329,5.493-0.0076,5.9465,0,6.498c0,3.0029,1.0119,5.1955,2.4902,6.5723C3.9685,14.4471,5.8379,15,7.5,15 c1.6656,0,3.535-0.5596,5.0117-1.9395S14.998,9.4868,14.998,6.498c0.0648-1.3953-2.0628-1.3953-1.998,0 c0,2.553-0.7997,4.1149-1.8535,5.0996C10.3731,12.3203,9.4288,12.7084,8.5,12.875V6.8418C9.9607,6.4058,10.9986,5.0642,11,3.5 C11,1.567,9.5,0,7.5,0z M7.5,2C8.3284,2,9,2.6716,9,3.5S8.3284,5,7.5,5S6,4.3284,6,3.5S6.6716,2,7.5,2z",hardware:"M13.7919,3.2619c0,0-1.676,1.675-2.1163,2.1208c-0.085,0.0861-0.1688,0.1135-0.282,0.0961 c-0.1481-0.0226-0.2974-0.038-0.4462-0.0558c-0.4072-0.0485-0.8145-0.0966-1.2292-0.1458C9.649,4.6852,9.5787,4.1049,9.5177,3.5236 C9.512,3.4689,9.5509,3.3943,9.5925,3.3522c0.5071-0.5134,1.9261-1.9287,2.134-2.136c-0.4508-0.2129-1.2243-0.2968-1.8007-0.2031 c-2.1801,0.3543-3.5112,2.534-2.8206,4.625C7.1432,5.753,7.1194,5.8201,7.0374,5.902C5.1891,7.7454,3.3436,9.5914,1.498,11.4374 c-0.0616,0.0616-0.1231,0.124-0.1779,0.1913c-0.5264,0.6473-0.3873,1.6264,0.2974,2.102c0.6044,0.4197,1.3658,0.3442,1.9053-0.1948 c1.8534-1.8519,3.7059-3.7047,5.556-5.5598C9.1707,7.884,9.2437,7.8526,9.3779,7.8983c0.6189,0.2109,1.2524,0.2354,1.8884,0.0884 c1.9386-0.4478,3.1251-2.3732,2.6549-4.3034C13.8895,3.5532,13.843,3.4244,13.7919,3.2619z",heart:"m13.91 7.75001c-1.17 2.24999-4.30002 5.30999-6.07002 6.93999-.1903.1718-.4797.1718-.67 0-1.78-1.63-4.91-4.69-6.08-6.93999-2.57-4.95 3.91-8.250002 6.41-3.3 2.5-4.950002 8.98002-1.65 6.41002 3.3z",heliport:"M4,2C3,2,3,3,4,3h4v1C7.723,4,7.5,4.223,7.5,4.5V5H5H3.9707H3.9316 C3.7041,4.1201,2.9122,3.5011,2,3.5c-1.1046,0-2,0.8954-2,2s0.8954,2,2,2c0.3722-0.001,0.7368-0.1058,1.0527-0.3027L5.5,10.5 C6.5074,11.9505,8.3182,12,9,12h5c0,0,1,0,1-1v-0.9941C15,9.2734,14.874,8.874,14.5,8.5l-3-3c0,0-0.5916-0.5-1.2734-0.5H9.5V4.5 C9.5,4.223,9.277,4,9,4V3h4c1,0,1-1,0-1C13,2,4,2,4,2z M2,4.5c0.5523,0,1,0.4477,1,1s-0.4477,1-1,1s-1-0.4477-1-1 C1,4.9477,1.4477,4.5,2,4.5z M10,6c0.5,0,0.7896,0.3231,1,0.5L13.5,9H10c0,0-1,0-1-1V7C9,7,9,6,10,6z","highway-rest-area":"M13.5,13h-3V9h3a.5.5,0,0,0,.4092-.7871L11.66,5h.84a.5.5,0,0,0,.3838-.82l-2.5-3a.5155.5155,0,0,0-.7676,0l-2.5,3A.5.5,0,0,0,7.5,5h.84L6.0908,8.2129A.5.5,0,0,0,6.5,9h3v4H4V11H5.5a.5.5,0,0,0,0-1h-4a.5.5,0,0,0,0,1H3v2H1.5a.5.5,0,0,0,0,1h12a.5.5,0,0,0,0-1Z",historic:"m7.5 1c-1 0-1 1-2 1h-3.5c-.54467 0-1 .45533-1 1v7c0 .5447.45533 1 1 1h5v2.5s0 .5.5.5.5-.5.5-.5v-2.5h5c.5447 0 1-.4553 1-1v-7c0-.54467-.4553-1-1-1h-3.5c-1 0-1-1-2-1zm-4.5 4v-1h9v1zm0 1h4v1h-4zm0 2h7v1h-7z",home:"M2,13.7478c0,0.13807,0.11193,0.25,0.25,0.25h3.749v-3h3v3h3.749c0.13807,0,0.25-0.11193,0.25-0.25V7.9987H2 C2,7.9987,2,13.7478,2,13.7478z M13.93,6.5778l-0.9319-0.8189V2c0-0.55228-0.44771-1-1-1s-1,0.44772-1,1v2L7.6808,1.09 C7.5863,0.9897,7.42846,0.98478,7.3279,1.079L7.3169,1.09L1.0678,6.553C0.9734,6.65376,0.97856,6.81197,1.07932,6.90637 C1.12478,6.94896,1.18451,6.97304,1.2468,6.9739L3,6.9989h10.7468c0.13807,0.00046,0.25037-0.1111,0.25083-0.24917 C13.99784,6.68592,13.97365,6.62445,13.93,6.5779V6.5778z","horse-riding":"M6,1A1,1,0,1,1,7,2,1,1,0,0,1,6,1ZM8,3.5a.484.484,0,0,0,0-.058A.472.472,0,0,0,7.5,3h-1a.484.484,0,0,0-.058,0A.472.472,0,0,0,6,3.5V7H8Zm6.85,3.644L12.8,4.8l.085-.509a.478.478,0,0,0,.008-.063.25.25,0,0,0-.25-.25.346.346,0,0,0-.158.056L9,7H8L9,8V9.5a.5.5,0,0,1-1,0v-1L6,7H4a1.5,1.5,0,0,0-1.243.661A1.466,1.466,0,0,0,1.563,7H1.5A1.449,1.449,0,0,0,0,8.4v.086A3.781,3.781,0,0,0,.559,10.4a.278.278,0,0,0,.191.1A.25.25,0,0,0,1,10.25V9s-.02-.924.753-1c.5-.048.747.253.747.5V11L2,13v1.75a.25.25,0,0,0,.25.25.254.254,0,0,0,.25-.234V13L4,11v1l.5,2.8a.255.255,0,0,0,.246.2A.25.25,0,0,0,5,14.754H5L4.855,12.3,5.5,11H8v1l.508,2.813A.257.257,0,0,0,8.75,15,.25.25,0,0,0,9,14.75V12l.367-1a1.155,1.155,0,0,0,.543-.6l2.161-3.767a.863.863,0,0,0,1.023.4l1.066.818a.591.591,0,0,0,.35.135.487.487,0,0,0,.475-.4A.552.552,0,0,0,14.85,7.144Z",hospital:"M7,1C6.4,1,6,1.4,6,2v4H2C1.4,6,1,6.4,1,7v1 c0,0.6,0.4,1,1,1h4v4c0,0.6,0.4,1,1,1h1c0.6,0,1-0.4,1-1V9h4c0.6,0,1-0.4,1-1V7c0-0.6-0.4-1-1-1H9V2c0-0.6-0.4-1-1-1H7z","hospital-JP":"m12.5038 3h-10.00777c-.26639.00235-.52096.11039-.70772.30036-.18677.18998-.29046.44634-.28828.71274v5.5807c-.00063.18713.05047.37079.14765.5307.09718.1599.23667.2899.40305.3755l4.78 2.8394c.20725.1056.43653.1606.6691.1606.23258 0 .46186-.055.6691-.1606l4.78037-2.8394c.1664-.0856.3059-.2155.4031-.3755.0972-.15989.1483-.34357.1476-.5307v-5.5807c.0012-.13194-.0237-.2628-.0732-.38512-.0494-.12232-.1225-.2337-.215-.32777-.0925-.09408-.2027-.16901-.3241-.22052-.1215-.05151-.2519-.07859-.3839-.07969zm-2.0038 5.5h-1.99997v2h-2v-2h-2v-2h2v-2h2v2h1.99997z","hot-spring":"M6.682,5.759c-.505-.725-.781-1.121-.63-2.376,.139-1.156,.678-1.616,1.198-2.059,.404-.345,.797-.68,.981-1.324,.301,.722-.036,1.47-.349,2.164-.311,.691-.599,1.329-.211,1.836,.971,1.271,1.963,2.88,.971,4.586-.214,.393-.539,.681-.861,.968-.422,.375-.841,.747-1.004,1.348-.269-.677,.008-1.366,.285-2.052,.306-.759,.61-1.516,.172-2.251-.203-.34-.389-.607-.551-.84Zm3.371-1.174c-.098-.632,.034-1.281,.368-1.809,.367-.45,.701-.642,.991-.81,.345-.199,.627-.362,.83-.877,.289,.684,0,1.188-.304,1.718-.119,.207-.24,.418-.329,.645-.191,.61,.101,.893,.467,1.247,.358,.346,.786,.76,.899,1.617,.083,.635-.036,1.156-.372,1.684-.356,.436-.681,.655-.965,.846-.356,.24-.648,.437-.856,.965-.292-.688,.031-1.259,.353-1.828,.123-.217,.246-.434,.334-.658,.073-.558-.234-.867-.581-1.217-.357-.36-.757-.763-.834-1.523Zm-8.018,0c-.098-.632,.005-1.3,.368-1.809,.376-.528,.729-.717,1.035-.881,.323-.173,.594-.318,.786-.806,.289,.683-.014,1.208-.325,1.749-.122,.212-.246,.427-.336,.655-.152,.385,.131,1.014,.501,1.242,1.002,.801,1.227,2.286,.547,3.353-.366,.448-.704,.648-.999,.823-.353,.209-.645,.382-.849,.898-.278-.656,.008-1.18,.3-1.714,.131-.24,.263-.481,.345-.737,.179-.557-.134-.884-.51-1.277-.349-.365-.752-.785-.863-1.498Zm10.965,4.414c.7,2.616-3.474,3-5.5,3s-6.2-.484-5.5-3c-.633,.316-1,.961-1,1.5,0,1.519,2.91,2.9,6.5,2.9s6.5-1.381,6.5-2.9c0-.539-.367-1.184-1-1.5Z","ice-cream":"M5.44,8.17a3.473,3.473,0,0,0,2-.63A3.5,3.5,0,0,0,9,8.14h.44L8,13.7a.5.5,0,0,1-.92,0Zm6-3.473a2,2,0,0,1-4,0h0a2,2,0,1,1-2-2h.12a2,2,0,1,1,3.75,0h.13A2,2,0,0,1,11.439,4.7Z",industry:"M14,1v12H1V8.72c0.0016-0.1419,0.0634-0.2764,0.17-0.37l3-3.22c0.2074-0.1823,0.5234-0.1618,0.7056,0.0456 C4.9568,5.268,5.0011,5.387,5,5.51v3l3.16-3.37c0.2025-0.1878,0.5188-0.1759,0.7066,0.0266C8.9532,5.2599,9.0009,5.3827,9,5.51V11h3 V1H14z",information:"M7.5,1 C6.7,1,6,1.7,6,2.5S6.7,4,7.5,4S9,3.3,9,2.5S8.3,1,7.5,1z M4,5v1c0,0,2,0,2,2v2c0,2-2,2-2,2v1h7v-1c0,0-2,0-2-2V6c0-0.5-0.5-1-1-1H4 z","jewelry-store":"M12,8.5c0,2.4853-2.0147,4.5-4.5,4.5S3,10.9853,3,8.5c0-1.8483,1.1164-3.4329,2.7099-4.1255l0.1761,0.137l0.7739,0.6019 C5.1366,5.4922,4,6.8611,4,8.5C4,10.4299,5.5701,12,7.5,12S11,10.4299,11,8.5c0-1.6389-1.1366-3.0078-2.6599-3.3866l0.95-0.7388 C10.8836,5.0672,12,6.6517,12,8.5z M7.5,4.5L10,2.5555L9,1H6L5,2.5555l1.5,1.1667L7.5,4.5z",karaoke:"M12.1,2.952A2.988,2.988,0,0,0,6.99,4.917l3.142,3.142A2.988,2.988,0,0,0,12.1,2.952Zm-7.428,5.3L2.55,10.377a1,1,0,0,0,0,1.414l.707.707a1,1,0,0,0,1.414,0l2.121-2.121L8.914,8.255,6.793,6.134Zm.741,2.087-.707-.707L6.793,7.548l.707.707Z",landmark:"M12.5,12H12v-0.5c0-0.3-0.2-0.5-0.5-0.5H11V6h1l1-2c-1,0.1-2,0.1-3,0C9.2,3.4,8.6,2.8,8,2V1.5C8,1.2,7.8,1,7.5,1 S7,1.2,7,1.5V2C6.4,2.8,5.8,3.4,5,4C4,4.1,3,4.1,2,4l1,2h1v5c0,0-0.5,0-0.5,0C3.2,11,3,11.2,3,11.5V12H2.5C2.2,12,2,12.2,2,12.5V13 h11v-0.5C13,12.2,12.8,12,12.5,12z M7,11H5V6h2V11z M10,11H8V6h2V11z","landmark-JP":"m9.5 4c0 .39556-.1173.78224-.33706 1.11114s-.53212.58524-.89757.73662c-.36545.15137-.76759.19098-1.15555.11381s-.74433-.26765-1.02403-.54736c-.27971-.2797-.47019-.63607-.54736-1.02403s-.03756-.79009.11381-1.15555c.15138-.36545.40772-.67781.73662-.89757s.71558-.33706 1.11114-.33706c.53043 0 1.03914.21071 1.41421.58579.37508.37507.58579.88378.58579 1.41421zm-6 4c-.39556 0-.78224.1173-1.11114.33706s-.58524.53212-.73662.89757c-.15137.36546-.19098.76757-.11381 1.15557.07717.3879.26765.7443.54736 1.024.2797.2797.63607.4702 1.02403.5474.38796.0771.7901.0375 1.15555-.1138.36545-.1514.67781-.4078.89757-.7367s.33706-.7155.33706-1.1111c0-.53043-.21071-1.03914-.58579-1.41421-.37507-.37508-.88378-.58579-1.41421-.58579zm8 0c-.3956 0-.7822.1173-1.1111.33706s-.58528.53212-.73666.89757c-.15137.36546-.19098.76757-.11381 1.15557.07717.3879.26765.7443.54737 1.024.2797.2797.6361.4702 1.024.5474.388.0771.7901.0375 1.1556-.1138.3654-.1514.6778-.4078.8975-.7367.2198-.3289.3371-.7155.3371-1.1111 0-.53043-.2107-1.03914-.5858-1.41421-.3751-.37508-.8838-.58579-1.4142-.58579z",landuse:"m8.911 2.85401c.02782.02324.05021.0523.06558.08512.01538.03283.02337.06863.02342.10488v3.706c0 .0663-.02634.12989-.07322.17678-.04689.04688-.11048.07322-.17678.07322h-2.5c-.0663 0-.12989-.02634-.17678-.07322-.04688-.04689-.07322-.11048-.07322-.17678v-1.75h-1v1.75c0 .0663-.02634.12989-.07322.17678-.04689.04688-.11048.07322-.17678.07322h-2.5c-.0663 0-.12989-.02634-.17678-.07322-.04688-.04689-.07322-.11048-.07322-.17678v-3.7c.00005-.03625.00804-.07205.02342-.10488.01537-.03282.03776-.06188.06558-.08512l3.254-2.728c.04413-.0370337.09989-.0573335.1575-.0573335s.11337.0202998.1575.0573335zm-1.159 5.646c-.04915.00002-.09718.01464-.138.042l-2.614 1.95799h-1v-1.99999c0-.13261-.05268-.25979-.14645-.35355-.09376-.09377-.22094-.14645-.35355-.14645s-.25979.05268-.35355.14645c-.09377.09376-.14645.22094-.14645.35355v1.99999h-1v-1.99999c0-.13261-.05268-.25979-.14645-.35355-.09376-.09377-.22094-.14645-.35355-.14645s-.25979.05268-.35355.14645c-.09377.09376-.14645.22094-.14645.35355v4.24999c0 .0663.02634.1299.07322.1768.04689.0469.11048.0732.17678.0732h6.5c.0663 0 .12989-.0263.17678-.0732.04688-.0469.07322-.1105.07322-.1768v-3.99999c.00026-.03274-.00596-.0652-.0183-.09552-.01235-.03032-.03057-.0579-.05363-.08114-.02305-.02324-.05048-.04168-.0807-.05427s-.06263-.01907-.09537-.01907zm6.248-3.255v6.49999c0 .0671-.0267.1315-.0741.1789-.0474.0475-.1118.0741-.1789.0741h-3.494c-.0668 0-.1308-.0264-.1782-.0734s-.0743-.1108-.0748-.1776v-6.49699c-.00013-.03287.0062-.06544.0188-.09583.0125-.03039.0309-.058.0541-.08124.0233-.02324.0509-.04165.0813-.05417s.0629-.01889.0958-.01876h.75v-.751c0-.06604.0262-.12937.0729-.17607s.1101-.07293.1761-.07293h1.5c.0668.00053.1306.02742.1776.07481.047.04738.0734.11144.0734.17819v.747h.755c.065 0 .1273.02581.1732.07176.046.04595.0718.10826.0718.17324zm-1 4.75499h-2v1h2zm0-1.99999h-2v1h2zm0-2h-2v1h2z",laundry:"M8,1L6,3H3c0,0-1,0-1,1v9c0,1,1,1,1,1h9c0,0,1,0,1-1V2c0-1-1-1-1-1 S8,1,8,1z M8.5,2h2C10.777,2,11,2.223,11,2.5S10.777,3,10.5,3h-2C8.223,3,8,2.777,8,2.5S8.223,2,8.5,2z M7.5,6 c1.6569,0,3,1.3431,3,3s-1.3431,3-3,3s-3-1.3431-3-3S5.8431,6,7.5,6z",library:"M1.0819,9.9388C0.9871,9.867,1.0007,9.7479,1.0007,9.7479L1.5259,3.5c0,0,0.0082-0.0688,0.0388-0.104 C1.584,3.374,1.6084,3.342,1.6544,3.3232C2.1826,3.1072,5.0537,1.5519,6.5,3c0.2397,0.2777,0.4999,0.6876,0.4999,1v5.2879 c0,0,0.0062,0.1122-0.0953,0.1801c-0.0239,0.016-0.124,0.0616-0.242,0.0026c-2.2253-1.1134-4.711,0.1546-5.3381,0.4871 C1.1987,10.0244,1.1006,9.9531,1.0819,9.9388z M13.6754,9.9577c-0.6271-0.3325-3.1128-1.6005-5.3381-0.4871 c-0.118,0.059-0.2181,0.0134-0.242-0.0026C7.9939,9.4001,8.0001,9.2879,8.0001,9.2879V4c0-0.3124,0.2602-0.7223,0.4999-1 c1.4463-1.4481,4.2991,0.1071,4.8273,0.3232c0.046,0.0188,0.0704,0.0508,0.0897,0.0728C13.4476,3.4312,13.4558,3.5,13.4558,3.5 l0.5435,6.2479c0,0,0.0136,0.1191-0.0812,0.1909C13.8994,9.9531,13.8013,10.0244,13.6754,9.9577z M8.8647,12.6863 c0.0352-0.0085,0.0964-0.0443,0.1179-0.0775c0.0236-0.0364,0.0378-0.0617,0.0423-0.1088c0.0495-0.9379,1.6245-1.8119,4.6477-0.0298 c0.0775,0.0441,0.1666,0.0396,0.2425-0.0155C14.0014,12.392,14,12.2859,14,12.2859v-0.5542c0,0,0.0003-0.0764-0.0272-0.1184 c-0.0205-0.0312-0.0476-0.0643-0.0926-0.0858c-2.0254-1.3145-4.5858-1.8972-5.8854-0.1592 c-0.0181,0.0423-0.0353,0.0613-0.0728,0.0905C7.8654,11.5028,7.7964,11.5,7.7964,11.5H7.2109c0,0-0.069,0.0028-0.1256-0.0412 c-0.0375-0.0292-0.0547-0.0482-0.0728-0.0905c-1.2996-1.738-3.86-1.1828-5.8854,0.1317c-0.045,0.0215-0.0721,0.0546-0.0926,0.0858 c-0.0275,0.042-0.0272,0.1184-0.0272,0.1184v0.5542c0,0-0.0014,0.1061,0.0849,0.1688c0.0759,0.0551,0.165,0.0596,0.2425,0.0155 c3.0232-1.7821,4.5982-0.8806,4.6477,0.0573c0.0045,0.0471,0.0187,0.0724,0.0423,0.1088c0.0215,0.0332,0.0827,0.069,0.1179,0.0775 C6.8645,12.8656,7.9112,12.9363,8.8647,12.6863z","lift-gate":"M1 4a2 2 0 1 1 4 0v8a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4Zm3 0a1 1 0 1 0-2 0 1 1 0 0 0 2 0Zm4.5 2L7 3H6v3h2.5ZM10 6h1.5L10 3H8.5L10 6Zm3.25 0H13l-1.5-3h1.75a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-.75.75Z",lighthouse:"M4.5,6L0,7V6.5l4.5-1V6z M4.5,3.5L0,2.5V3l4.5,1V3.5z M10.5,3.5V4L15,3V2.5L10.5,3.5z M10.5,6L15,7V6.5l-4.5-1V6z M8,7V2 h2.5c0.2761,0.0552,0.5448-0.1239,0.6-0.4c0.0552-0.2761-0.1239-0.5448-0.4-0.6l-3-1C7.5696-0.0586,7.4204-0.0586,7.29,0l-3,1 c-0.2761,0.0552-0.4552,0.3239-0.4,0.6S4.2139,2.0552,4.49,2H7v5H5l-2,7h9l-2-7H8z","lighthouse-JP":"M9.5,7.4c0,1.1-0.9,2-2,2s-2-0.9-2-2s0.9-2,2-2C8.6,5.4,9.5,6.3,9.5,7.4z M14,7.5C14,7.8,13.8,8,13.5,8h-1.6 c-0.1,0.9-0.311,1.582-0.911,2.282l1.064,1.064c0.2,0.2,0.196,0.504-0.004,0.704c-0.209,0.209-0.5,0.207-0.704,0.004L10.3,11 c-0.6,0.5-1.4,0.8-2.3,0.9v1.6C8,13.8,7.8,14,7.5,14S7,13.8,7,13.5v-1.6c-0.9-0.1-1.7-0.4-2.3-0.9l-1.1,1.1 c-0.207,0.207-0.48,0.213-0.696-0.004c-0.2-0.2-0.207-0.5-0.007-0.7L4,10.3C3.5,9.7,3.1,8.9,3,8H1.5C1.2,8,1,7.8,1,7.5S1.2,7,1.5,7 H3c0.1-0.9,0.4-1.7,1-2.4l-1-1C2.8,3.4,2.8,3.1,3,2.9s0.5-0.2,0.7,0l1,1l0,0C5.3,3.4,6.1,3.1,7,3V1.5C7,1.2,7.2,1,7.5,1S8,1.2,8,1.5 V3c0.9,0.1,1.7,0.5,2.3,1l0,0l1.1-1.1c0.2-0.2,0.5-0.2,0.7,0s0.2,0.5,0,0.7L11,4.7l0,0c0.5,0.7,0.8,1.4,0.9,2.3h1.6 C13.8,7,14,7.2,14,7.5z M11.1,7.4c0-2-1.6-3.6-3.6-3.6S3.8,5.5,3.8,7.4S5.4,11,7.4,11S11.1,9.4,11.1,7.4z",lodging:"M0.5,2.5C0.2,2.5,0,2.7,0,3v7.5v2C0,12.8,0.2,13,0.5,13S1,12.8,1,12.5V11h13v1.5 c0,0.3,0.2,0.5,0.5,0.5s0.5-0.2,0.5-0.5v-2c0-0.3-0.2-0.5-0.5-0.5H1V3C1,2.7,0.8,2.5,0.5,2.5z M3.5,3C2.7,3,2,3.7,2,4.5l0,0 C2,5.3,2.7,6,3.5,6l0,0C4.3,6,5,5.3,5,4.5l0,0C5,3.7,4.3,3,3.5,3L3.5,3z M7,4C5.5,4,5.5,5.5,5.5,5.5V7h-3C2.2,7,2,7.2,2,7.5v1 C2,8.8,2.2,9,2.5,9H6h9V6.5C15,4,12.5,4,12.5,4H7z",logging:"M13.91,3.41,13.5,3l.2-.28c.02-.03.04-.05.06-.08A.969.969,0,0,0,14,1.99a1,1,0,0,0-1.62-.77c-.03.02-.06.05-.09.07L12,1.5l-.386-.386a.354.354,0,0,0-.525.475l.417.417-.5.5-.392-.392a.354.354,0,0,0-.525.475L10.5,3l-.5.5-.381-.381a.354.354,0,1,0-.528.472h0l.028.028L9.5,4,9,4.5l-.395-.395a.354.354,0,0,0-.517.483L8.5,5,8,5.5l-.365-.365a.354.354,0,0,0-.556.439h0C7.1,5.6,7.508,6,7.508,6L7,6.5l-.394-.392a.392.392,0,0,0-.5-.028.384.384,0,0,0-.028.5L6.1,6.6l.4.4L6,7.5l-.4-.4a.37.37,0,0,0-.5,0L6.248,8.244,12.09,2.41,12.5,2H13v.5l-.41.41L6.751,8.749,7.9,9.9a.355.355,0,0,0,0-.5l-.008-.009L7.5,9,8,8.5l.384.384a.354.354,0,0,0,.528-.472L8.5,8,9,7.5l.38.38a.354.354,0,0,0,.528-.472l-.02-.02L9.5,7l.5-.5.377.377A.35.35,0,0,0,10.64,7a.347.347,0,0,0,.252-.6L10.5,6l.5-.5.38.38a.354.354,0,0,0,.528-.472L11.88,5.38,11.5,5l.5-.5.381.381a.354.354,0,0,0,.528-.472l-.025-.025L12.5,4l.5-.5.382.382a.354.354,0,0,0,.528-.472ZM4.39,7.916C3.893,7.419,3.641,7,3,7H1.5a.5.5,0,0,0-.5.5v3A2.19,2.19,0,0,0,1.5,12l.815.811A2.251,2.251,0,0,0,5.493,13h0L7.5,11ZM3.5,10,2.262,11.238A1.3,1.3,0,0,1,2,10.5V8H3a.545.545,0,0,1,.335.194.455.455,0,0,1,.165.418Z",marker:"M7.5 1C5.42312 1 3 2.2883 3 5.56759C3 7.79276 6.46156 12.7117 7.5 14C8.42309 12.7117 12 7.90993 12 5.56759C12 2.2883 9.57688 1 7.5 1Z","marker-stroked":"M5.11697 2.81756C5.76952 2.26561 6.65195 2 7.5 2C8.34805 2 9.23048 2.26561 9.88303 2.81756C10.5075 3.34579 11 4.20017 11 5.56759C11 5.94031 10.8461 6.52407 10.5105 7.29145C10.1859 8.03354 9.73523 8.85087 9.24257 9.65811C8.64175 10.6426 7.999 11.5793 7.48195 12.3097C6.96023 11.5798 6.31599 10.6233 5.71947 9.62296C5.2343 8.80934 4.79303 7.98717 4.47608 7.24844C4.14708 6.48162 4 5.91216 4 5.56759C4 4.20017 4.49248 3.34579 5.11697 2.81756ZM8.10767 13.1554C9.45904 11.2632 12 7.54181 12 5.56759C12 2.2883 9.57688 1 7.5 1C5.42312 1 3 2.2883 3 5.56759C3 7.44926 5.47533 11.2572 6.86751 13.1671C7.12165 13.5157 7.3397 13.8011 7.5 14C7.55627 13.9215 7.62241 13.8299 7.697 13.7266C7.81469 13.5636 7.95343 13.3714 8.10767 13.1554Z","mobile-phone":"M10,2h0V1.5a.5.5,0,0,0-1,0V2H5A1,1,0,0,0,4,3V13a1,1,0,0,0,1,1h5a1,1,0,0,0,1-1V3A1,1,0,0,0,10,2ZM6,13H5V12H6Zm0-2H5V10H6ZM6,9H5V8H6Zm2,4H7V12H8Zm0-2H7V10H8ZM8,9H7V8H8Zm2,4H9V12h1Zm0-2H9V10h1Zm0-2H9V8h1Zm0-2.5a.5.5,0,0,1-.5.5h-4A.5.5,0,0,1,5,6.5v-3A.5.5,0,0,1,5.5,3h4a.5.5,0,0,1,.5.5Z",monument:"M7.5,0L6,2.5v7h3v-7L7.5,0z M3,11.5 L3,15h9v-3.5L10.5,10h-6L3,11.5z","monument-JP":"M12,13H4c-0.5,0-1-0.5-1-1V5c0-2,0.8-4,4-4c3.1,0,4,2,4,4v6h1c0.5,0,1,0.5,1,1S12.5,13,12,13z M5,11h4V5c0-1,0-2-2-2 S5,4,5,5V11z",mountain:"m7.5 1c-.3 0-.4.2-.6.4l-5.8 9.5c-.1.1-.1.3-.1.4 0 .5.4.7.7.7h11.6c.4 0 .7-.2.7-.7 0-.2 0-.2-.1-.4l-5.7-9.5c-.2-.2-.4-.4-.7-.4zm0 1.5 3.3 5.5h-.8l-1.5-1.5-1 1.5-1-1.5-1.5 1.5h-.9z",museum:"M7.5,0L1,3.5V4h13V3.5L7.5,0z M2,5v5l-1,1.6V13h13v-1.4L13,10V5H2z M4,6h1v5.5H4V6z M7,6h1v5.5H7V6z M10,6h1 v5.5h-1V6z",music:"m12.5 0c-.0804.0008-.1594.0213999-.23.0599999l-8.77 2.4400001c-.2761 0-.5.2239-.5.5v6.28c-.3029-.1798-.6478-.2763-1-.28-1.1046 0-2 .8954-2 2s.8954 2 2 2 2-.8954 2-2v-4.64l8-2.22v3.64c-.3029-.1798-.6478-.2763-1-.28-1.1046 0-2 .8954-2 2s.8954 2 2 2 2-.8954 2-2v-9c0-.2761-.2239-.5-.5-.5zm-.5 3.14-8 2.22v-2l8-2.22z",natural:"M8.753,6.278a.5.5,0,0,1-.51,0A4.109,4.109,0,0,1,6.5,3.5a2.779,2.779,0,0,0-.59-1.506l-.019-.027a.257.257,0,0,1-.056-.144.237.237,0,0,1,.25-.25.264.264,0,0,1,.057.011A3.523,3.523,0,0,1,7.5,2.5L8.28.94a.246.246,0,0,1,.44,0L9.5,2.5a3.4,3.4,0,0,1,1.339-.907.283.283,0,0,1,.1-.021c.175.009.212.119.221.249a.35.35,0,0,1-.043.141A5.2,5.2,0,0,0,10.5,3.5,4.113,4.113,0,0,1,8.753,6.278ZM5,8H6.289a.25.25,0,0,0,.25-.25.241.241,0,0,0-.061-.15L4.7,5.235a.255.255,0,0,0-.391,0L2.518,7.589a.274.274,0,0,0-.062.161.25.25,0,0,0,.25.25H4L1.335,10.6a.273.273,0,0,0-.058.152A.25.25,0,0,0,1.529,11H3L1.435,12.565a.255.255,0,0,0,.18.435H4v1H5V13H7.385a.255.255,0,0,0,.18-.435L6,11H7.471a.25.25,0,0,0,.25-.25.233.233,0,0,0-.058-.149Zm9.345,3.748a.252.252,0,0,1-.252.252H8.908a.252.252,0,0,1-.226-.365L11.27,6.451a.252.252,0,0,1,.451,0l2.6,5.184h0A.251.251,0,0,1,14.345,11.748ZM12.75,10,11.5,7.5,10.25,10Z","observation-tower":"M12 12.5H11.5L10 9V7C10.9951 7 10.9951 6.25 10.9951 6.25L11.5 3C11.5 3 11.5 2.5 11 2.5H10C10 2.5 10 2 9.5 2H8.5V1.5C8.5 1.5 8.5 0.5 7.5 0.5C6.5 0.5 6.5 1.5 6.5 1.5V2H5.5C5 2 5 2.5 5 2.5H4C3.5 2.5 3.5 3 3.5 3L4.0049 6.25C4.0049 6.25 4.0049 7 5 7V9L3.5 12.5H3C3 12.5 2 12.5 2 13.25C2 14 3 14 3 14H12C12 14 13 14 13 13.25C13 12.5 12 12.5 12 12.5ZM10.25 3.5L10 5H5L4.75 3.4971L10.25 3.5ZM8.5 7V8H6.5V7H8.5ZM6.5006 9.4971H8.4994L9.5 12.5H5.5L6.5006 9.4971Z",optician:"M1.78483 3.81169C2.03375 3.31421 2.54231 3 3.09859 3C3.48821 3 3.86186 3.15477 4.13736 3.43027L4.85354 4.14645C5.0488 4.34171 5.0488 4.65829 4.85354 4.85355C4.65827 5.04882 4.34169 5.04882 4.14643 4.85355L3.43017 4.1373C3.34226 4.04939 3.22303 4 3.09871 4C2.92116 4 2.75884 4.10032 2.67944 4.25912L1.309 7H5.2476C6.0654 7 6.7487 7.5656 6.941 8.3245C7.1146 8.2834 7.3009 8.25 7.5 8.25C7.6991 8.25 7.8854 8.2835 8.059 8.3246C8.2513 7.5656 8.9344 7 9.752 7H13.691L12.3206 4.25912C12.2412 4.10032 12.0788 4 11.9013 4C11.777 4 11.6577 4.04939 11.5698 4.1373L10.8536 4.85355C10.6583 5.04882 10.3417 5.04882 10.1465 4.85355C9.9512 4.65829 9.9512 4.34171 10.1465 4.14645L10.8626 3.43027C11.1381 3.15477 11.5118 3 11.9014 3C12.4577 3 12.9663 3.31421 13.2152 3.81169L14.9414 7.26172L14.9404 7.26308C14.9784 7.33359 15 7.41428 15 7.5V8.5C15 8.7761 14.7761 9 14.5 9H14V9.5C14 11.0889 12.998 12 11.25 12H10.75C9.002 12 8 11.0889 8 9.5V9.3413C7.8499 9.2933 7.6693 9.25 7.5 9.25C7.3307 9.25 7.1503 9.2933 7 9.3413V9.5C7 11.0889 5.9976 12 4.25 12H3.75C2.0024 12 1 11.0889 1 9.5V9H0.4992C0.2235 9 0 8.7765 0 8.5007V7.5C0 7.41428 0.0215731 7.33359 0.0595866 7.26308L0.0585938 7.26172L1.78483 3.81169ZM9.752 8C9.3369 8 9 8.3374 9 8.7524V9.5C9 10.1982 9.1992 11 10.75 11H11.25C12.8008 11 13 10.1982 13 9.5V8.7529C13 8.3379 12.6621 8 12.2471 8H9.752ZM2.7529 8C2.3379 8 2 8.3374 2 8.7524V9.5C2 10.1982 2.1987 11 3.75 11H4.25C5.8013 11 6 10.1982 6 9.5V8.7524C6 8.3374 5.6626 8 5.2475 8H2.7529Z",paint:"m13.5 3.5h-1v-.9973c0-.2777-.2251-.5027-.5027-.5027h-10.4946c-.2776 0-.5027.225-.5027.5027v2.9946c0 .2776.2251.5027.5027.5027h10.4946c.2776 0 .5027-.2251.5027-.5027v-.9973h.5v3.1021l-6.1123 1.4106c-.2271.0527-.3877.2549-.3877.4873v1.5074c-.2783.02-.5.246-.5.5295v2.9261c0 .2966.2404.537.5369.537h.9261c.2966 0 .537-.2404.537-.5369v-2.9261c0-.2834-.2217-.5095-.5-.5295v-1.11l6.1123-1.4102c.2266-.0522.3877-.2544.3877-.4873v-4c0-.2764-.2236-.5-.5-.5z",park:"M14,5.75c0.0113-0.6863-0.3798-1.3159-1-1.61C12.9475,3.4906,12.4014,2.9926,11.75,3 c-0.0988,0.0079-0.1962,0.0281-0.29,0.06c-0.0607-0.66-0.6449-1.1458-1.3048-1.0851C9.8965,1.9987,9.6526,2.1058,9.46,2.28l0,0 c0-0.6904-0.5596-1.25-1.25-1.25S6.96,1.5896,6.96,2.28C6.96,2.28,7,2.3,7,2.33C6.4886,1.8913,5.7184,1.9503,5.2797,2.4618 C5.1316,2.6345,5.0347,2.8451,5,3.07C4.8417,3.0195,4.6761,2.9959,4.51,3C3.6816,2.9931,3.0044,3.659,2.9975,4.4874 C2.9958,4.6872,3.0341,4.8852,3.11,5.07C2.3175,5.2915,1.8546,6.1136,2.0761,6.9061C2.2163,7.4078,2.6083,7.7998,3.11,7.94 c0.2533,0.7829,1.0934,1.2123,1.8763,0.959C5.5216,8.7258,5.9137,8.2659,6,7.71C6.183,7.8691,6.4093,7.9701,6.65,8v5L5,14h5l-1.6-1 v-2c0.7381-0.8915,1.6915-1.5799,2.77-2c0.8012,0.1879,1.603-0.3092,1.7909-1.1103C12.9893,7.7686,13.0025,7.6444,13,7.52 c0.0029-0.0533,0.0029-0.1067,0-0.16C13.6202,7.0659,14.0113,6.4363,14,5.75z M8.4,10.26V6.82C8.6703,7.3007,9.1785,7.5987,9.73,7.6 h0.28c0.0156,0.4391,0.2242,0.849,0.57,1.12C9.7643,9.094,9.0251,9.6162,8.4,10.26z","park-alt1":"M9.428,10.429a.269.269,0,0,1-.074-.18A.25.25,0,0,1,9.6,10h1.447a.25.25,0,0,0,.25-.25.258.258,0,0,0-.079-.179L9.07,7.419a.3.3,0,0,1-.063-.17A.249.249,0,0,1,9.257,7H10.4a.251.251,0,0,0,.25-.251.247.247,0,0,0-.077-.178L8.432,4.434,8.418,4.42a.262.262,0,0,1-.066-.17A.25.25,0,0,1,8.6,4h.866a.25.25,0,0,0,.25-.25.246.246,0,0,0-.068-.164h.006L7.7,1.238a.253.253,0,0,0-.042-.044A.249.249,0,0,0,7.5,1.139h0a.249.249,0,0,0-.158.055.253.253,0,0,0-.042.044L5.352,3.586a.246.246,0,0,0-.068.164.25.25,0,0,0,.25.25H6.4a.241.241,0,0,1,.184.42l-.014.014L4.431,6.571a.247.247,0,0,0-.077.178A.251.251,0,0,0,4.6,7H5.745a.249.249,0,0,1,.25.249.3.3,0,0,1-.063.17L3.782,9.571A.258.258,0,0,0,3.7,9.75a.25.25,0,0,0,.25.25H5.4a.25.25,0,0,1,.248.249.269.269,0,0,1-.074.18l-2.14,2.132-.009.009a.248.248,0,0,0,0,.351A.256.256,0,0,0,3.605,13H7v1l1-.008V13h3.391a.263.263,0,0,0,.26-.254.248.248,0,0,0-.071-.177Z",parking:"M4 2V13H6V9H8.5C10.433 9 12 7.433 12 5.5C12 3.567 10.433 2 8.5 2H4ZM6 7V4H8.5C9.32843 4 10 4.67157 10 5.5C10 6.32843 9.32843 7 8.5 7H6Z","parking-garage":"M10.5,10.14c-0.6637,0.4788-1.4732,0.7121-2.29,0.66h-1.9V14h-1.9V5h3.92 c0.7801-0.0414,1.5484,0.2041,2.16,0.69c0.5779,0.5595,0.875,1.3483,0.81,2.15C11.4042,8.6892,11.1088,9.5388,10.5,10.14z M9,6.9 C8.711,6.6881,8.3579,6.5822,8,6.6H6.31v2.65H8c0.3612,0.0191,0.717-0.0947,1-0.32c0.2559-0.2675,0.3867-0.6308,0.36-1 C9.4072,7.5493,9.274,7.1684,9,6.9z M14.41,4.21c0.114-0.2486,0.007-0.5427-0.24-0.66L7.5,0.45l-6.71,3.1 C0.5387,3.666,0.429,3.9637,0.545,4.215C0.661,4.4663,0.9587,4.576,1.21,4.46l0,0L7.5,1.55l6.29,2.9 c0.2486,0.114,0.5427,0.007,0.66-0.24H14.41z","parking-paid":"M1 13V2h4.5a3.5 3.5 0 0 1 3.21 2.103 3.36 3.36 0 0 0-.504.676c-.23.41-.232.837-.174 1.154l.3 1.625A3.495 3.495 0 0 1 5.5 9H3v4H1Zm4.5-6a1.5 1.5 0 1 0 0-3H3v3h2.5Zm3.516-1.248a.716.716 0 0 1 .062-.484C9.315 4.848 9.978 4 11.5 4c1.521 0 2.185.847 2.421 1.268a.716.716 0 0 1 .064.484L13.019 11H12v2h-1v-2H9.981l-.965-5.248ZM12.75 7 13 5.655C12.83 5.409 12.42 5 11.5 5s-1.33.41-1.5.655L10.25 7h2.5Z",pharmacy:"M9.5,4l1.07-1.54c0.0599,0.0046,0.1201,0.0046,0.18,0c0.6904-0.0004,1.2497-0.5603,1.2494-1.2506 C11.999,0.519,11.4391-0.0404,10.7487-0.04C10.0584-0.0396,9.499,0.5203,9.4994,1.2106c0,0.0131,0.0002,0.0262,0.0006,0.0394 c0,0,0,0.07,0,0.1L7,4H9.5z M12,6V5H3v1l1.5,3.5L3,13v1h9v-1l-1-3.5L12,6z M10,10H8v2H7v-2H5V9h2V7h1v2h2V10z","picnic-site":"M4,3C3.446,3,3,3.446,3,4s0.446,1,1,1h1.2969 L4.6523,7H2.5c-0.554,0-1,0.446-1,1s0.446,1,1,1h1.5098L3.041,12.0098c-0.1284,0.3939,0.0868,0.8173,0.4807,0.9457 s0.8173-0.0868,0.9457-0.4807c0.0005-0.0013,0.0009-0.0027,0.0013-0.004L5.5859,9h3.8281l1.1172,3.4707 c0.1273,0.3943,0.5501,0.6107,0.9443,0.4834s0.6107-0.5501,0.4834-0.9443l0,0L10.9902,9H12.5c0.554,0,1-0.446,1-1s-0.446-1-1-1 h-2.1523L9.7031,5H11c0.554,0,1-0.446,1-1s-0.446-1-1-1H4z M6.873,5H8.127l0.6445,2h-2.543L6.873,5z",pitch:"M5,3C4.4477,3,4,2.5523,4,2s0.4477-1,1-1s1,0.4477,1,1S5.5523,3,5,3z M12.5,10H10L9,7L8,5.25L9,5l2.3,1l0,0 c0.2761,0.1105,0.5895-0.0239,0.7-0.3S11.9761,5.1105,11.7,5l0,0L9,4H7L5,5L4,6H2.5C2.2239,6,2,6.2239,2,6.5S2.2239,7,2.5,7H5l1-1 l1,2l-2,2v3.5C5,13.7761,5.2239,14,5.5,14S6,13.7761,6,13.5v-3.11L8,9l1,2h3.5c0.2761,0,0.5-0.2239,0.5-0.5S12.7761,10,12.5,10z","place-of-worship":"M7.5,0l-2,2v2h4V2 L7.5,0z M5.5,4.5L4,6h7L9.5,4.5H5.5z M2,6.5c-0.5523,0-1,0.4477-1,1V13h2V7.5C3,6.9477,2.5523,6.5,2,6.5z M4,6.5V13h7V6.5H4z M13,6.5c-0.5523,0-1,0.4477-1,1V13h2V7.5C14,6.9477,13.5523,6.5,13,6.5z",playground:"m3.00002 1.15c.2091-.8016 1.0284-1.2819 1.83-1.0729s1.2819 1.0284 1.0729 1.83c-.2003.7681-.9643 1.2471-1.7429 1.0929-.8126-.161-1.3409-.9502-1.18-1.7629.0058-.0292.0125-.0583.02-.0871zm10.99998 11.17c.1032.5426-.2531 1.066-.7956 1.1692-.0015.0003-.0029.0006-.0044.0008-.4252.086-.8574-.1119-1.07-.49l-1.68-3.37-1.44998.29-.22.08h-.06v2.15l.62-.15h.14c.2871.0054.5155.2425.5101.5297-.0039.2064-.1295.391-.3201.4703l-5 1c-.0563.0095-.1137.0095-.17 0-.2872 0-.52-.2328-.52-.52 0-.2099.1262-.3993.32-.48l4.15-.83v-2.17l-3.22.58c-.164.0423-.336.0423-.5 0-.3394-.0867-.6088-.3446-.71-.68h-.02l-1-4.07c-.0312-.1416-.0312-.2884 0-.43.0936-.387.4078-.6815.8-.75l4.7-.52v-4.13h.22v4.1h.06l.22-.02.4-.08h.21c.2673.0643.43258.3323.37.6-.0439.235-.251.4041-.49.4l-.49.08h-.22-.06v2.86h.06l.22-.06 1.80998-.36c.4275-.0352.8299.2062 1 .6l2 3.94c.077.0758.1411.1636.19.26zm-5.49998-7.19-2.5.27.74 2.94 1.76-.34z",police:"M5.5,1L6,2h5l0.5-1H5.5z M6,2.5v1.25c0,0,0,2.75,2.5,2.75S11,3.75,11,3.75V2.5H6z M1.9844,3.9863 C1.4329,3.9949,0.9924,4.4485,1,5v4c-0.0001,0.6398,0.5922,1.1152,1.2168,0.9766L5,9.3574V14l5.8789-6.9297 C10.7391,7.0294,10.5947,7,10.4414,7H6.5L3,7.7539V5C3.0077,4.4362,2.5481,3.9775,1.9844,3.9863z M11.748,7.7109L6.4121,14H12 V8.5586C12,8.2451,11.9061,7.9548,11.748,7.7109z","police-JP":"M7.5,1A6.5,6.5,0,1,0,14,7.5,6.5,6.5,0,0,0,7.5,1Zm2.6,2.84L7.5,6.44,4.9,3.84A4.4428,4.4428,0,0,1,10.1,3.84ZM3.84,4.9007,6.4394,7.5l-2.6,2.5993A4.4429,4.4429,0,0,1,3.84,4.9007ZM4.9,11.16l2.6-2.6,2.6,2.6A4.4428,4.4428,0,0,1,4.9,11.16Zm6.26-1.0606L8.5606,7.5l2.6-2.5993a4.4429,4.4429,0,0,1-.0006,5.1986Z",post:"M13.5 3.65139C13.5 3.86918 13.3912 4.07257 13.2099 4.19338L7.5 8L1.79006 4.19338C1.60885 4.07257 1.5 3.86918 1.5 3.65139C1.5 3.29164 1.79164 3 2.15139 3L12.8486 3C13.2084 3 13.5 3.29164 13.5 3.65139Z M13.5 5.96713V11C13.5 11.5523 13.0523 12 12.5 12H2.5C1.94772 12 1.5 11.5523 1.5 11L1.5 5.96713C1.5 5.76746 1.72254 5.64836 1.88868 5.75912L7.5 9.5L13.1113 5.75912C13.2775 5.64836 13.5 5.76746 13.5 5.96713Z","post-JP":"m1.5 4c0-.26522.10536-.51957.29289-.70711.18754-.18753.44189-.29289.70711-.29289h10c.2652 0 .5196.10536.7071.29289.1875.18754.2929.44189.2929.70711s-.1054.51957-.2929.70711c-.1875.18753-.4419.29289-.7071.29289h-10c-.26513 0-.51941-.10529-.70693-.29272-.18752-.18742-.29294-.44165-.29307-.70678zm11 2.5h-10c-.26522 0-.51957.10536-.70711.29289-.18753.18754-.29289.44189-.29289.70711s.10536.51957.29289.70711c.18754.18753.44189.29289.70711.29289h4v4.5c0 .2652.10536.5196.29289.7071.18754.1875.44189.2929.70711.2929s.51957-.1054.70711-.2929c.18753-.1875.29289-.4419.29289-.7071v-4.5h4c.2652 0 .5196-.10536.7071-.29289.1875-.18754.2929-.44189.2929-.70711s-.1054-.51957-.2929-.70711c-.1875-.18753-.4419-.29289-.7071-.29289z",prison:"M3.5,1v13H12V1H3.5z M9.5,2H11v3.5H9.5V2z M4.5,2.0547H6V7H4.5V2.0547z M7,2.0547h1.5V7H7V2.0547z M10.25,6.5 C10.6642,6.5,11,6.8358,11,7.25S10.6642,8,10.25,8l0,0C9.8358,8,9.5,7.6642,9.5,7.25l0,0C9.5,6.8358,9.8358,6.5,10.25,6.5z M7,8 h1.4727L8.5,13H7.0273L7,8z M4.5,8.166H6V13H4.5V8.166z M9.5,9H11v4H9.5V9z",racetrack:"M4.99321 1.58228C5.03861 1.30989 4.8546 1.05228 4.58222 1.00688C4.30983 0.961484 4.05222 1.14549 4.00682 1.41788L2.00682 13.4179C1.96142 13.6903 2.14543 13.9479 2.41782 13.9933C2.6902 14.0387 2.94782 13.8547 2.99321 13.5823L3.6632 9.56238C4.46947 9.67976 5.3398 9.7187 6.026 10.2C6.45057 10.505 6.94151 10.7047 7.45839 10.7828C8.424 10.9286 9.28807 10.3976 10.242 10.549L11.531 10.743C11.7908 10.7822 12.0609 10.5828 12.1 10.323L12.984 4.38899L12.988 4.38499C13.0241 4.12469 12.8213 3.85686 12.561 3.82099L11.272 3.62699C10.3092 3.48421 9.44342 3.9997 8.48942 3.85618C8.06155 3.79181 7.65443 3.62915 7.3 3.38099C6.56128 2.86385 5.68119 2.77814 4.81426 2.656L4.99321 1.58228ZM4.40351 5.12049L4.73218 3.14849C5.33161 3.22962 5.96556 3.27693 6.521 3.51699L6.22626 5.48223C5.65576 5.24949 5.01279 5.2037 4.40351 5.12049ZM3.74549 9.0686L4.07436 7.09542C4.69451 7.18147 5.35159 7.22405 5.933 7.46299L6.23273 5.48673C6.89067 5.75614 7.3918 6.21952 8.126 6.32799L8.426 4.34799C9.16402 4.45947 9.77459 4.17131 10.484 4.11399L10.184 6.07999C9.47389 6.1406 8.85956 6.44062 8.124 6.32999L7.83802 8.30784C7.10186 8.19874 6.59996 7.73286 5.939 7.46399L5.639 9.43999C5.04421 9.20148 4.3764 9.15882 3.74549 9.0686ZM7.83898 8.30813C8.57282 8.41936 9.19002 8.11708 9.9 8.05799L10.184 6.07999C10.8385 6.01968 11.5087 6.19133 12.152 6.28899L11.872 8.26499C11.2277 8.16793 10.5563 7.99624 9.901 8.05799L9.601 10.034C8.89229 10.0817 8.26589 10.3943 7.539 10.284L7.83898 8.30813Z","racetrack-boat":"m10.0643 11.2159c.4691-.5125.9358-1.0224 1.5938-1.2417.9212-.3071 1.5902.0778 1.8665.2805.7241.531 1.3904-.2204.5914-.8064-.4269-.3131-1.4451-.86577-2.7741-.4228-.7202.2401-1.2127.7667-1.70487 1.2931-.40012.4279-.80009.8556-1.32212 1.1291-.61911.3243-1.06486-.0266-1.06486-.6352v-.0121c.00021-.7982-.40819-1.3004-1.25-1.3004-.49071 0-.99216.2582-1.50001.5-1.17511.5596-2.31799 1.2859-3.31714 2.1134-.210639.1751-.243189.4951-.06696.7066.2505.3006.58076.1621.82938-.0379.41361-.3329 1.78116-1.3913 2.93376-1.94.47652-.227.86169-.3421 1.12097-.3421.24997 0 .24997.1016.24997.3396-.00202 1.3264 1.29025 2.1428 2.52893 1.4939.50415-.2641.89557-.6917 1.28535-1.1176zm-7.56426-2.2159c1.5-1 3.25492-2 5-2 .75 0 .75.375.75.75s0 .75.75.75c2.52746 0 5.36316-3.21377 5.49996-5.5l-2.5 1-2.34195-.97445c-.61176-.20392-.92799.74476-.31623.94868l1.15818.52577-1.49996.5-4-1.25c-.23606-.07869-.38872.02744-.5.25l-1.5 3-2.00004 1zm2.5-7c0-.5523.4477-1 1-1s1 .4477 1 1-.4477 1-1 1-1-.4477-1-1z","racetrack-cycling":"M8 1L11 4H12C14 4 14 1 12 1H8ZM8.463 3C8.34323 3.00901 8.2307 3.06084 8.146 3.146L5.646 5.646C5.59615 5.69579 5.55739 5.75555 5.53225 5.82136C5.50711 5.88718 5.49617 5.95757 5.50014 6.02791C5.5041 6.09825 5.52289 6.16696 5.55526 6.22953C5.58764 6.2921 5.63287 6.34713 5.688 6.391L7.846 8.117L6.57 10.242C6.50157 10.356 6.48125 10.4926 6.51351 10.6216C6.54577 10.7506 6.62796 10.8616 6.742 10.93C6.85604 10.9984 6.9926 11.0187 7.12162 10.9865C7.25065 10.9542 7.36157 10.872 7.43 10.758L8.93 8.258C8.99256 8.15404 9.01519 8.03088 8.99366 7.91148C8.97214 7.79207 8.90793 7.68457 8.813 7.609L7.304 6.402L9 4.707L10.146 5.854C10.1925 5.9004 10.2477 5.93718 10.3085 5.96223C10.3692 5.98728 10.4343 6.00012 10.5 6H13C13.1326 6 13.2598 5.94732 13.3536 5.85355C13.4473 5.75979 13.5 5.63261 13.5 5.5C13.5 5.36739 13.4473 5.24021 13.3536 5.14645C13.2598 5.05268 13.1326 5 13 5H10.707L8.854 3.146C8.80319 3.09493 8.74195 3.05545 8.67446 3.03025C8.60698 3.00505 8.53484 2.99473 8.463 3ZM2.949 7C2.16222 7.01338 1.4122 7.33534 0.860573 7.89651C0.308947 8.45767 -0.000113683 9.21311 3.13683e-08 10C3.13683e-08 10.7956 0.316071 11.5587 0.87868 12.1213C1.44129 12.6839 2.20435 13 3 13C3.79565 13 4.55871 12.6839 5.12132 12.1213C5.68393 11.5587 6 10.7956 6 10C6.00006 9.60179 5.92083 9.20756 5.76695 8.84028C5.61307 8.47301 5.38761 8.14004 5.10372 7.8608C4.81982 7.58157 4.48318 7.36164 4.11341 7.21385C3.74364 7.06606 3.34815 6.99336 2.95 7H2.949ZM11.949 7C11.1622 7.01338 10.4122 7.33534 9.86057 7.89651C9.30895 8.45767 8.99989 9.21311 9 10C9 10.7956 9.31607 11.5587 9.87868 12.1213C10.4413 12.6839 11.2044 13 12 13C12.7956 13 13.5587 12.6839 14.1213 12.1213C14.6839 11.5587 15 10.7956 15 10C15.0001 9.60179 14.9208 9.20756 14.767 8.84028C14.6131 8.47301 14.3876 8.14004 14.1037 7.8608C13.8198 7.58157 13.4832 7.36164 13.1134 7.21385C12.7436 7.06606 12.3482 6.99336 11.95 7H11.949ZM12.049 8C12.5709 8.01279 13.0671 8.22914 13.4316 8.60283C13.7962 8.97653 14.0002 9.47795 14 10C14 10.5304 13.7893 11.0391 13.4142 11.4142C13.0391 11.7893 12.5304 12 12 12C11.4696 12 10.9609 11.7893 10.5858 11.4142C10.2107 11.0391 10 10.5304 10 10C9.99992 9.73318 10.0532 9.46904 10.1568 9.22314C10.2603 8.97724 10.4121 8.75455 10.603 8.56818C10.7939 8.3818 11.0202 8.23552 11.2686 8.13794C11.5169 8.04036 11.7823 7.99346 12.049 8V8Z","racetrack-horse":"M10 1C9.73478 1 9.48043 1.10536 9.29289 1.29289C9.10536 1.48043 9 1.73478 9 2C9 2.26522 9.10536 2.51957 9.29289 2.70711C9.48043 2.89464 9.73478 3 10 3C10.2652 3 10.5196 2.89464 10.7071 2.70711C10.8946 2.51957 11 2.26522 11 2C11 1.73478 10.8946 1.48043 10.7071 1.29289C10.5196 1.10536 10.2652 1 10 1ZM5.5 3C5.25 3 4.5 3 5 3.75L6.25 6H4.5C4.223 6.003 3.983 6.1 3.75 6.25C2.944 5.121 2.242 5.552 1.51 6C1.107 6.247 0.694 6.499 0.25 6.5C0.184332 6.50201 0.121902 6.52899 0.0754461 6.57545C0.0289898 6.6219 0.00200653 6.68433 0 6.75C0.00200653 6.81567 0.0289898 6.8781 0.0754461 6.92455C0.121902 6.97101 0.184332 6.99799 0.25 7C0.626 7.02 1.057 6.907 1.488 6.793C2.144 6.62 2.798 6.448 3.254 6.75C3.16 6.937 3 7.5 3 8L2.998 9.51C2.792 9.714 2.619 9.633 2.443 9.55C2.303 9.485 2.16 9.42 2 9.5L1 12.45C1 12.7 1.393 12.752 1.5 12.5L2.25 10.744C2.998 10.744 4.5 10 5 9L9 10L11.5 12.5C11.697 12.697 12.12 12.362 11.96 12.115L10 9L12 6.5C12.248 7 12.495 7 12.986 7H13L13.6 7.75C13.988 8.235 14.82 7.743 14.5 7.25L12.834 4.79L13 4.5C13.062 4.313 12.637 3.924 12.5 4L10.5 5.5L8.89 3.187C8.84314 3.12862 8.78377 3.08151 8.71627 3.04915C8.64877 3.01678 8.57486 2.99999 8.5 3H5.5ZM9 5.25L9.5 6L6.777 7.916C6.72243 7.95469 6.66065 7.98204 6.59532 7.99643C6.52999 8.01081 6.46244 8.01194 6.39666 7.99975C6.33089 7.98756 6.26823 7.96229 6.2124 7.92545C6.15656 7.8886 6.10869 7.84093 6.07162 7.78525C6.03454 7.72957 6.00901 7.66701 5.99655 7.60129C5.98409 7.53556 5.98494 7.46801 5.99905 7.40262C6.01317 7.33723 6.04026 7.27534 6.07873 7.22061C6.1172 7.16588 6.16626 7.11943 6.223 7.084L9 5.25Z",rail:"M 3 1 C 2.4477 1 2 1.4477 2 2 L 2 10 C 2 10.5523 2.4477 11 3 11 L 12 11 C 12.5523 11 13 10.5523 13 10 L 13 2 C 13 1.4477 12.5523 1 12 1 L 3 1 z M 5.75 1.5 L 5.7597656 1.5 L 9.2597656 1.5 C 9.3978656 1.5 9.5097656 1.6119 9.5097656 1.75 C 9.5097656 1.8881 9.3978656 2 9.2597656 2 L 5.75 2 C 5.6119 2 5.5 1.8881 5.5 1.75 C 5.5 1.6119 5.6119 1.5 5.75 1.5 z M 3.5 3 L 7 3 L 7 7 L 3.5 7 C 3.2239 7 3 6.7761 3 6.5 L 3 3.5 C 3 3.2239 3.2239 3 3.5 3 z M 8 3 L 11.5 3 C 11.7761 3 12 3.2239 12 3.5 L 12 6.5 C 12 6.7761 11.7761 7 11.5 7 L 8 7 L 8 3 z M 5 8 C 5.5523 8 6 8.4477 6 9 C 6 9.5523 5.5523 10 5 10 C 4.4477 10 4 9.5523 4 9 C 4 8.4477 4.4477 8 5 8 z M 10 8 C 10.5523 8 11 8.4477 11 9 C 11 9.5523 10.5523 10 10 10 C 9.4477 10 9 9.5523 9 9 C 9 8.4477 9.4477 8 10 8 z M 10.445312 11.994141 C 10.380597 11.999652 10.314981 12.018581 10.253906 12.050781 C 10.030606 12.168381 9.9302313 12.433922 10.019531 12.669922 L 10.189453 13 L 4.8105469 13 L 4.9394531 12.730469 C 5.0371531 12.472169 4.9067375 12.183637 4.6484375 12.085938 C 4.4124375 11.996738 4.1468969 12.097113 4.0292969 12.320312 L 3.0292969 14.320312 C 3.0080969 14.377912 2.9986 14.4387 3 14.5 C 3 14.7761 3.2239 15 3.5 15 C 3.6802 14.999 3.8450875 14.899434 3.9296875 14.740234 L 3.9296875 14.689453 L 4 14.689453 L 4.3105469 14 L 10.689453 14 L 11 14.689453 L 11 14.740234 C 11.0846 14.899434 11.249488 14.999 11.429688 15 C 11.705787 15 11.929688 14.7761 11.929688 14.5 C 11.949587 14.4212 11.949587 14.338566 11.929688 14.259766 L 10.929688 12.259766 C 10.833163 12.076541 10.639459 11.977608 10.445312 11.994141 z","rail-light":"M5.5,0C5,0,5,0.5,5,0.5v1C5,1.777,5.223,2,5.5,2S6,1.777,6,1.5V1h1v2H6c0,0-2,0-2,2v3c0,3,3,3,3,3h1 c0,0,3,0,3-3V5c0-2-2-2-2-2H8V1h1v0.5C9,1.777,9.223,2,9.5,2S10,1.777,10,1.5v-1C10,0,9.5,0,9.5,0H5.5z M7.5,4l2.0449,0.7734L10,6.5 C10.1316,7,9.5,7,9.5,7h-4c0,0-0.6316,0-0.5-0.5l0.4551-1.7266L7.5,4z M7.5,8C7.7761,8,8,8.2239,8,8.5S7.7761,9,7.5,9 S7,8.7761,7,8.5S7.2239,8,7.5,8z M4.125,12L3,15h1.5l0.375-1h5.25l0.375,1H12l-1.125-3h-1.5l0.375,1h-4.5l0.375-1H4.125z","rail-metro":"M5.5,0c0,0-0.75,0-1,1L3,6.5V10c0,1,1,1,1,1h7c0,0,1,0,1-1V6.5L10.5,1c-0.2727-1-1-1-1-1H5.5z M6.5,1.5h2 c0,0,0.5357,0,0.75,1L10,6c0.2146,1.0017-1,1-1,1H6c0,0-1.2146,0.0017-1-1l0.75-3.5C5.9643,1.5,6.5,1.5,6.5,1.5z M5,8 c0.5523,0,1,0.4477,1,1s-0.4477,1-1,1S4,9.5523,4,9S4.4477,8,5,8z M6.75,8h1.5C8.3885,8,8.5,8.1115,8.5,8.25S8.3885,8.5,8.25,8.5 h-1.5C6.6115,8.5,6.5,8.3885,6.5,8.25S6.6115,8,6.75,8z M10,8c0.5523,0,1,0.4477,1,1s-0.4477,1-1,1S9,9.5523,9,9S9.4477,8,10,8z M4.125,12L3,15h1.5l0.375-1h5.25l0.375,1H12l-1.125-3h-1.5l0.375,1h-4.5l0.375-1H4.125z","ranger-station":"M9,0.5l-2,1v3.7734L2,8v6h4v-4h3 v4h4V8L8,5.2734V4l1-0.5l2,1l2-1v-3l-2,1L9,0.5z",recycling:"M2.4556,8.6134C2.118,9.2112,1.501,10.3021,2.593,11.0312c0.3432,0.2268,0.7275,0.3836,1.131,0.4614 C4.0314,11.5382,4.0466,12.0111,3.6855,12c-0.3849-0.0193-2.2596-0.1934-2.5606-1.5995c-0.1556-0.8213,0.0204-1.5571,0.504-2.3556 L2.3263,6.812L1.0196,6.0688L4.5,4v4L3.1941,7.3057L2.4556,8.6134z M6.7,2.034c1.155-0.628,1.823,0.43,2.191,1.007l0.8059,1.2631 L8.431,5.112L12,6.986L11.803,2.96l-1.2639,0.8066L9.779,2.578C9.2572,1.8321,8.875,1.2812,7.944,1.033 C6.307,0.7203,5.3007,2.6194,5.311,2.607c-0.1639,0.2871,0.2156,0.5399,0.451,0.21C6.0202,2.4969,6.339,2.2309,6.7,2.034z M13.294,8.221c-0.0877-0.1897-0.5487-0.1413-0.419,0.267c0.1312,0.3892,0.1845,0.8003,0.157,1.21C12.939,11.01,11.684,11,11,11H9.5 V9.5l-3.5,2l3.488,2.025L9.4926,12H11c0.8906,0.0153,1.5999-0.1759,2.2-0.713C14.4,10.226,13.294,8.221,13.294,8.221z","religious-buddhist":"M13.4978,6.9989h-0.5329c-0.09997-1.10708-0.53528-2.15731-1.2478-3.0105l0.378-0.3784 c0.19605-0.19447,0.19733-0.51105,0.00286-0.7071C11.90698,2.71037,11.59733,2.70518,11.4,2.8912l0,0l-0.0123,0.0123L11.01,3.2815 c-0.85331-0.71298-1.90385-1.14864-3.0113-1.2488V1.5c0-0.27614-0.22386-0.5-0.5-0.5s-0.5,0.22386-0.5,0.5v0.5327 C5.8916,2.13306,4.84144,2.56871,3.9884,3.2815L3.61,2.9C3.41007,2.70952,3.09358,2.71717,2.9031,2.9171 c-0.184,0.19312-0.184,0.49668,0,0.6898l0.3784,0.3775C2.56787,4.83856,2.13216,5.89031,2.0327,6.9989H1.5 c-0.27614,0-0.5,0.22386-0.5,0.5s0.22386,0.5,0.5,0.5h0.5327c0.09987,1.10695,0.535,2.15711,1.2473,3.0103l-0.3779,0.3779 c-0.19538,0.19514-0.19557,0.51173-0.00043,0.70711c0.19053,0.19076,0.49798,0.19611,0.69503,0.01209L3.609,12.094l0.3779-0.3779 c0.8533,0.71312,1.90395,1.1488,3.0115,1.2488v0.5329c0,0.27614,0.22386,0.5,0.5,0.5s0.5-0.22386,0.5-0.5v-0.5329 c1.10719-0.10026,2.15744-0.53592,3.0105-1.2488l0.3779,0.3779c0.19514,0.19538,0.51173,0.19557,0.70711,0.00043 c0.19076-0.19053,0.19611-0.49798,0.01209-0.69503l-0.0123-0.0123l0,0l-0.3779-0.3779c0.71283-0.8531,1.14848-1.90333,1.2488-3.0105 h0.5329c0.27609-0.00544,0.49549-0.23366,0.49006-0.50975C13.98227,7.22064,13.76611,7.00435,13.4978,6.9989z M7.9987,3.0505 c0.83871,0.09248,1.63383,0.42154,2.2926,0.9488l-2.15,2.15c-0.04663-0.0218-0.09436-0.04116-0.143-0.058V3.0505H7.9987z M6.9987,3.0505V6.091c-0.04864,0.01684-0.09637,0.0362-0.143,0.058l-2.15-2.15c0.65897-0.52726,1.45431-0.85622,2.2932-0.9485 H6.9987z M3.9987,4.7062l2.15,2.15c-0.0218,0.04663-0.04116,0.09436-0.058,0.143H3.0505 c0.09243-0.83886,0.42154-1.63413,0.9489-2.293L3.9987,4.7062z M3.0505,7.9987H6.091c0.01687,0.04863,0.03623,0.09636,0.058,0.143 l-2.15,2.15C3.47173,9.63281,3.14276,8.83753,3.0505,7.9987z M6.9989,11.9471c-0.83871-0.09248-1.63383-0.42154-2.2926-0.9488 l2.15-2.15c0.04663,0.0218,0.09436,0.04116,0.143,0.058v3.0405L6.9989,11.9471z M7.9989,11.9471V8.9066 c0.04864-0.01683,0.09638-0.03619,0.143-0.058l2.15,2.15c-0.65895,0.5273-1.4543,0.85627-2.2932,0.9485H7.9989z M10.9989,10.2914 l-2.15-2.15c0.02177-0.04664,0.04113-0.09437,0.058-0.143h3.0415c-0.09276,0.83901-0.42232,1.6343-0.9502,2.293H10.9989z M8.9066,6.9989c-0.01684-0.04864-0.0362-0.09637-0.058-0.143l2.15-2.15c0.52726,0.65877,0.85632,1.45389,0.9488,2.2926H8.9066 V6.9989z","religious-christian":"M6,0.9552V4H3v3h3v8h3V7h3V4H9V1 c0-1-0.9776-1-0.9776-1H6.9887C6.9887,0,6,0,6,0.9552z","religious-jewish":"M7.50049 0.5L5.49949 4H1L3.49949 7.5L1 11H5.49949L7.50049 14.5L9.50049 11H14L11.5005 7.5L14 4H9.50049L7.50049 0.5Z","religious-muslim":"M12.0962 12.0962C9.55779 14.6346 5.44221 14.6346 2.90381 12.0962C0.365398 9.55779 0.365398 5.44221 2.90381 2.90381C5.44221 0.365398 9.55779 0.365398 12.0962 2.90381C12.2675 3.07512 12.4273 3.25362 12.5754 3.43832C10.5566 1.86336 7.63341 2.00437 5.77643 3.86135C3.76685 5.87092 3.76685 9.12908 5.77643 11.1387C7.63341 12.9956 10.5566 13.1366 12.5754 11.5617C12.4273 11.7464 12.2675 11.9249 12.0962 12.0962Z M10.1 6.5H8L9.7 8L9 10.5L11 9L13 10.5L12.3 8L14 6.5H11.9L11 4.5L10.1 6.5Z","religious-shinto":"M12.5,2.5H2.5a.9448.9448,0,0,0-1,1,.9448.9448,0,0,0,1,1H3V12a.9448.9448,0,0,0,1,1,.9448.9448,0,0,0,1-1V8h5v4a.9448.9448,0,0,0,1,1,.9448.9448,0,0,0,1-1V4.5h.5a.9448.9448,0,0,0,1-1,.9448.9448,0,0,0-1-1ZM10,6H8V4.5h2ZM7,6H5V4.5H7Z","residential-community":"m11.8 12.5v-2.5c.7-.1 1.2-.7 1.2-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5c0 .7.5 1.4 1.2 1.5v2.5h-4.2v-11.5h-5v11.5h-1v.5h13v-.5zm-5.8-2.5h-3v-1h3zm0-2h-3v-1h3zm0-2h-3v-1h3zm0-2h-3v-1h3z",restaurant:"M3.5,0l-1,5.5c-0.1464,0.805,1.7815,1.181,1.75,2L4,14c-0.0384,0.9993,1,1,1,1s1.0384-0.0007,1-1L5.75,7.5 c-0.0314-0.8176,1.7334-1.1808,1.75-2L6.5,0H6l0.25,4L5.5,4.5L5.25,0h-0.5L4.5,4.5L3.75,4L4,0H3.5z M12,0 c-0.7364,0-1.9642,0.6549-2.4551,1.6367C9.1358,2.3731,9,4.0182,9,5v2.5c0,0.8182,1.0909,1,1.5,1L10,14c-0.0905,0.9959,1,1,1,1 s1,0,1-1V0z","restaurant-bbq":"M12.0166,12.5H14.5L12,15V12.5165a1.6189,1.6189,0,0,1-1.1367.4806,1.6,1.6,0,0,1-.9931-.3448A6.7838,6.7838,0,0,1,9.8783,2.3418,1.6179,1.6179,0,0,1,12,2.462V0l2.5,2.5H12.036a1.5927,1.5927,0,0,1,.1225.1289,1.6239,1.6239,0,0,1-.2871,2.2793A3.5148,3.5148,0,0,0,10.75,7.4951a3.5578,3.5578,0,0,0,1.1465,2.6162,1.6352,1.6352,0,0,1,.2325,2.2783C12.0949,12.4315,12.0535,12.4624,12.0166,12.5ZM2.504,0l-1,5.5c-.1464.805,1.7815,1.181,1.75,2L3.004,14a.9625.9625,0,0,0,1,1,.9625.9625,0,0,0,1-1l-.25-6.5c-.0314-.8176,1.7334-1.1808,1.75-2l-1-5.5h-.5l.25,4-.75.5L4.254,0h-.5l-.25,4.5L2.754,4l.25-4Z","restaurant-noodle":"M4.457,11.9892,1,8V7H14V8l-3.4961,3.9891ZM3.9882,2.5a.5.5,0,0,0-1,0v.5671l-1.7969.3675a.25.25,0,1,0,.094.4911l1.7029-.2776v.5662l-1.75.0357a.25.25,0,0,0,0,.5l1.75.0357V5.998h1Zm9.5,1.5-7.5.2625V2.9951l7.594-1.0737a.5.5,0,0,0-.1881-.9822L5.9792,2.4555a.4963.4963,0,0,0-.991.0445v.2276l-.493.1009V3.18l.493-.08V4.2974l-.493.01v.4608L13.4882,5a.5.5,0,0,0,0-1ZM10,13H5v.5757h5Z","restaurant-pizza":"M1.393 7.931.025 7.315A14.05 14.05 0 0 1 7.764-.001l.027.07.511 1.331-.003.001a12.613 12.613 0 0 0-6.906 6.53Zm10.963 4.96L2.42 8.414a11.604 11.604 0 0 1 6.354-6.009l.003-.001.817 2.122c-.028-.002-.052-.016-.081-.016a1.062 1.062 0 1 0 .764 1.793l2.413 6.273a.249.249 0 0 1-.334.316ZM7.426 7.52a.925.925 0 1 0-1.849 0 .925.925 0 0 0 1.849 0Zm3.017 2.03a.925.925 0 1 0-.07.353.924.924 0 0 0 .07-.354Z","restaurant-seafood":"M11.433,10.0889h2.49v.75H11.8525A4.81,4.81,0,0,1,13.4751,13.14l-.71.2422a4.01,4.01,0,0,0-1.74-2.1971,1.7775,1.7775,0,0,1-1.0352.4538L8.4374,12.9852H6.5188L4.9839,11.623a2.0222,2.0222,0,0,1-1.0929-.44,4.0093,4.0093,0,0,0-1.7426,2.1988l-.71-.2422a4.8146,4.8146,0,0,1,1.622-2.3007H.99v-.75H3.4839l.8633-.6764L3.3329,7.7567a2.2738,2.2738,0,0,1-.269.0293,2.0192,2.0192,0,0,1-2.0532-2.08c0-2.08,1.979-4.16,1.979-4.16L2.2531,5.9931l1.7255-.0012L4.9913,2.9852l0,2.9956a2.0936,2.0936,0,0,1-.6993,1.4121l.8536,1.3936L5.23,8.7208a3.8669,3.8669,0,0,1,4.4784,0l.0605.0474.869-1.4152a2.1177,2.1177,0,0,1-.6433-1.3722l0-2.9956.9836,3.0067,1.7547.0012-.7367-4.4466s1.982,2.08,1.982,4.16a2.0211,2.0211,0,0,1-2.0562,2.08,2.3125,2.3125,0,0,1-.3441-.0376L10.5676,9.3945l.8407.6593C11.4212,10.0638,11.4218,10.0782,11.433,10.0889Z","restaurant-sushi":"M5.5,3C5.2239,3,5,3.2239,5,3.5H2.75C1.2265,3.5,0,4.7265,0,6.25c0,0.8274,0.3687,1.5592,0.9434,2.0625 C0.3803,8.6675,0,9.2893,0,10c0,1.0994,0.9006,2,2,2h3.5h2H10c1.0994,0,2-0.9006,2-2c0-0.4883-0.1863-0.9294-0.4805-1.2773 l2.1777,0.9629c0.3716,0.1831,0.8213,0.0303,1.0044-0.3413c0.1831-0.3716,0.0303-0.8213-0.3413-1.0044 c-0.0188-0.0093-0.038-0.0178-0.0576-0.0254l-1.8105-0.8027l1.6309-0.2715c0.4099-0.0599,0.6936-0.4408,0.6337-0.8507 c-0.0544-0.3724-0.3765-0.6469-0.7528-0.6415c-0.0426,0.0003-0.085,0.0042-0.127,0.0117l-2.1309,0.3555 C11.2595,4.9521,10.0387,3.7837,8,3.5488V3.5C8,3.2239,7.7761,3,7.5,3H5.5z M6,4h1v5v2H6V9V4z M9.5,8 c0.259,0,0.4638,0.1974,0.4902,0.4492l0.0762-0.1328c0.1385-0.2399,0.4437-0.3201,0.6836-0.1816s0.3201,0.4418,0.1816,0.6816 l-0.2578,0.4473C10.8727,9.445,11,9.7021,11,10c0,0.5626-0.4374,1-1,1H8V9h1V8.5C9,8.223,9.223,8,9.5,8z M2.4395,8.0703 c0.1934-0.0242,0.3903,0.0662,0.4941,0.2461l0.2012,0.3477C3.226,8.5647,3.3538,8.5,3.5,8.5C3.777,8.5,4,8.723,4,9h1v2H2 c-0.5626,0-1-0.4374-1-1s0.4374-1,1-1h0.1738L2.0684,8.8164C1.9299,8.5765,2.0101,8.2733,2.25,8.1348 C2.31,8.1001,2.375,8.0784,2.4395,8.0703z","road-accident":"M12.6,8.7,11.5,6.5a1.05,1.05,0,0,0-.9-.5H4.4a1.05,1.05,0,0,0-.9.5L2.4,8.7,1.16,9.852a.5.5,0,0,0-.16.366V14.5a.5.5,0,0,0,.5.5h2c.2,0,.5-.2.5-.4V14h7v.5c0,.2.2.5.4.5h2.1a.5.5,0,0,0,.5-.5V10.218a.5.5,0,0,0-.16-.366ZM4.5,7h6l1,2h-8ZM5,11.6c0,.2-.3.4-.5.4H2.4c-.2,0-.4-.3-.4-.5V10.4c.1-.3.3-.5.6-.4l2,.4c.2,0,.4.3.4.5Zm8-.1c0,.2-.2.5-.4.5H10.5c-.2,0-.5-.2-.5-.4v-.7c0-.2.2-.5.4-.5l2-.4c.3-.1.5.1.6.4ZM8,4H7L6,0H9ZM1.1,1.8,3.7.3l1.1,4L4,4.7ZM11.3.3l2.6,1.5L11,4.8l-.9-.5Z",roadblock:"M7.5 14C11.0899 14 14 11.0899 14 7.5C14 3.91015 11.0899 1 7.5 1C3.91015 1 1 3.91015 1 7.5C1 11.0899 3.91015 14 7.5 14ZM12 6V9H3V6H12Z",rocket:"m11.5547 2c-2.14407 0-5.02107 1.471-6.95307 4h-1.6016c-1.1573 0-1.8206.8638-2.277302 1.7773l-.6114 1.2227h1.443402 1.4453l1.5 1.5 1.5 1.5v1.4453 1.4434l1.2227-.6113c.9135-.4568 1.7773-1.1201 1.7773-2.2774v-1.6016c2.52897-1.932 3.99997-4.809 3.99997-6.9531v-1.4453zm-2.55467 3c.5523 0 .99997.4477.99997 1s-.44767 1-.99997 1-1-.4477-1-1 .4477-1 1-1zm-6.5 6-.5.5c-.7222.7222-1 2.5-1 2.5s1.698-.198 2.5-1l.5-.5z",school:"M5.542 3.647 3.106 3l.443-1.63a.505.505 0 0 1 .618-.352l1.46.392a.5.5 0 0 1 .355.613l-.44 1.624Zm-4.52 7.356a.496.496 0 0 1-.005-.276l1.819-6.726 2.435.647-1.819 6.726a.499.499 0 0 1-.143.237l-1.457 1.347a.152.152 0 0 1-.247-.066l-.583-1.889ZM10 5c-2.25 0-3-.75-3-3 2.25 0 3 .75 3 3Zm-1.4 7.984c-1.37.21-3.126-1.706-3.52-3.8L5.969 5.9c.399-.35.903-.533 1.419-.533a2.71 2.71 0 0 1 1.564.489.964.964 0 0 0 1.089-.01 2.438 2.438 0 0 1 1.46-.479c.77 0 1.643.489 2.05 1.201 1.536 2.696-1.194 6.709-3.144 6.417a.867.867 0 0 1-.255-.093 1.427 1.427 0 0 0-1.302 0 .866.866 0 0 1-.25.092Z","school-JP":"M12.5,2.9992h-4v-1a1,1,0,0,0-2,0v1h-4a1,1,0,0,0,0,2h.67A10.8169,10.8169,0,0,0,5.15,8.8105c.3331.4313.6594.8248.9785,1.1936a14.3825,14.3825,0,0,1-2.6074,2.117,1,1,0,1,0,.955,1.7581h0A15.65,15.65,0,0,0,7.5,11.4613a15.65,15.65,0,0,0,3.0239,2.4179,1,1,0,1,0,.9551-1.7578,14.3789,14.3789,0,0,1-2.6073-2.1171c.3191-.3688.6453-.7622.9784-1.1935a10.818,10.818,0,0,0,1.98-3.8116h.67a1,1,0,0,0,0-2ZM8.2671,7.5879c-.2614.3385-.5154.6413-.767.937-.2517-.2957-.5057-.5985-.7672-.937A9.5885,9.5885,0,0,1,5.2676,4.9992H9.7319A9.5789,9.5789,0,0,1,8.2671,7.5879Z",scooter:"M4.908,12a1.5,1.5,0,1,1-2.816,0Zm8.65-6C13.539,6,13,6,13,6V3h.351a.282.282,0,0,0,.223-.148l.268-.536a.334.334,0,0,0,.009-.066A.25.25,0,0,0,13.6,2H13V1.7a.215.215,0,0,0-.2-.2H9.25a.25.25,0,0,0,0,.5H12V6.6L7.6,10H6V7.5A.5.5,0,0,0,5.5,7H5V5H6.75a.25.25,0,0,0,0-.5L2.266,4.034c-.006,0-.01-.007-.016-.007a.25.25,0,0,0-.25.25V4.75A.25.25,0,0,0,2.25,5H3V7H2.5A1.538,1.538,0,0,0,1,8.5v2a.472.472,0,0,0,.442.5C1.461,11,7.5,11,7.5,11L10,10h3.5a.472.472,0,0,0,.5-.442C14,9.539,14,6.5,14,6.5A.472.472,0,0,0,13.558,6ZM12.5,11A1.5,1.5,0,1,0,14,12.5,1.538,1.538,0,0,0,12.5,11Z",shelter:"M13 2L1 6V8L2 7.66667V13H12V11H4V7L13 4V2Z",shoe:"M9.5,7a9.97,9.97,0,0,1-1.315-.948L6.01,3.221a.558.558,0,0,0-1,.279H5V5H3.209a.5.5,0,0,1-.357-.148S2.5,4,2,4H1.5a.5.5,0,0,0-.5.5V9H6.5c1.5,0,2,1,3.5,1h4V9.5C14,8,10.547,7.594,9.5,7Zm0,4a3.131,3.131,0,0,1-1.526-.447A4.1,4.1,0,0,0,6,10H1v1.5a.5.5,0,0,0,.5.5h4a.5.5,0,0,0,.5-.5V11a3.134,3.134,0,0,1,1.526.447A4.1,4.1,0,0,0,9.5,12h4a.5.5,0,0,0,.5-.5V11Z",shop:"m13.33 5h-1.83l-.39-2.33c-.1601-.7182-.7017-1.2905-1.41-1.49-.3493-.1124-.7131-.173-1.08-.18h-2.24c-.3669.007-.7307.0676-1.08.18-.7083.1995-1.2499.7718-1.41 1.49l-.39 2.33h-1.83c-.2761-.0017-.5013.2208-.503.497-.0003.0519.0074.1035.023.153l1.88 6.3c.1964.6246.7753 1.0496 1.43 1.05h6c.651-.0047 1.2247-.4289 1.42-1.05l1.88-6.3c.0829-.2634-.0635-.5441-.3269-.627-.0463-.0146-.0945-.0223-.1431-.023zm-8.81 0 .36-2.17c.0807-.3625.3736-.6395.74-.7.2463-.0776.5019-.1213.76-.13h2.24c.2614.0078.5205.0515.77.13.3664.0605.6593.3375.74.7l.35 2.17h-6z",skateboard:"M1.25 5.25V5H2.75V5.25C2.75 5.94036 3.30964 6.5 4 6.5H11C11.6904 6.5 12.25 5.94036 12.25 5.25V5H13.75V5.25C13.75 6.76878 12.5188 8 11 8H4C2.48122 8 1.25 6.76878 1.25 5.25ZM5 10C5 10.5523 4.55228 11 4 11 3.44772 11 3 10.5523 3 10 3 9.44772 3.44772 9 4 9 4.55228 9 5 9.44772 5 10ZM12 10C12 10.5523 11.5523 11 11 11 10.4477 11 10 10.5523 10 10 10 9.44772 10.4477 9 11 9 11.5523 9 12 9.44772 12 10Z",skiing:"M15,4.5C15,5.3284,14.3284,6,13.5,6S12,5.3284,12,4.5S12.6716,3,13.5,3S15,3.6716,15,4.5z M13.72,11.89 c-0.0623-0.1197-0.2083-0.1684-0.33-0.11c-0.6846,0.4194-1.5208,0.5111-2.28,0.25L4.78,8.86L7.5,7.5v-3L9,5.25v3L10.5,9L12,8.25 L10.5,7.5V3l-3-1.5L6,2.25v4.5L3.28,8.11L0.61,6.78C0.4857,6.7192,0.3358,6.7707,0.275,6.895C0.2142,7.0193,0.2657,7.1692,0.39,7.23 l10.5,5.25c0.3156,0.135,0.6568,0.1998,1,0.19c0.5998-0.0103,1.1889-0.161,1.72-0.44c0.1236-0.0615,0.174-0.2116,0.1125-0.3352 C13.7217,11.8932,13.7208,11.8916,13.72,11.89z",slaughterhouse:"M15 6.1c0 1.376-1.363.694-1.363.694L12.5 7H11a5.31 5.31 0 0 1-1.5 2 3.272 3.272 0 0 1-.523 1.125c-.077.091-.06.2-.068.33l.091 2.3a.264.264 0 0 1-.266.25.242.242 0 0 1-.234-.205L8 9.5H4v3.253a.247.247 0 0 1-.247.247.25.25 0 0 1-.24-.2L3 10v-.5a8.2 8.2 0 0 1-1.426-.1A1.886 1.886 0 0 1 .9 10.826c-.128.083-.148.211-.133.386l.19 1.538a.25.25 0 0 1-.25.25.238.238 0 0 1-.23-.174l-.427-1.7a.35.35 0 0 1 .055-.3c.437-.68-.049-2.55-.049-2.55A1.354 1.354 0 0 1 0 7.922V5.5a2.027 2.027 0 0 1 2.736-1.914s.1.03.142.049a15.15 15.15 0 0 0 3.814.038l.18-.062a1.842 1.842 0 0 1 1.26 0c.078.02.154.05.226.089.1.049.196.106.287.171A1.8 1.8 0 0 0 9.5 4h1V3l.5.5c.5-1.5 2.5-1 2.5-1a1.687 1.687 0 0 0-1.5 1l2.5 2a.612.612 0 0 1 .186-.069.318.318 0 0 1 .314.321V6.1Z",slipway:"m2 10 12 1.495V12H2v-2Zm12-4-1 1v.583L5.196 4.332l.063-.125L6.61 2.845h.831a.35.35 0 0 0 0-.7h-.976a.352.352 0 0 0-.248.103L4.723 3.753a.371.371 0 0 0-.066.09l-.109.219L2 3c0 2-.03 3.958 2.86 4.5C6.28 7.765 13 9 13 9l2-2-1-1Z",snowmobile:"M15 10a1 1 0 0 1-1 1H9.414a1 1 0 0 1-.707-.293L7.146 9.146A.499.499 0 0 0 6.793 9H3.334a1 1 0 0 1-.601-.2L1.386 7.788A1.013 1.013 0 0 1 1 7a.995.995 0 0 1 .472-.844L5 4l1.038-1.692A.5.5 0 0 1 7 2.5V6l1 1h1l5.412-.992a.5.5 0 0 1 .355.915L13 8l1.631 1.224A.99.99 0 0 1 15 10Zm-9.5 0H3.225c-.504 0-.999-.127-1.44-.368L.74 9.062a.5.5 0 0 0-.48.877l1.269.693c.441.242.937.368 1.44.368H5.5a.5.5 0 0 0 0-1Z",soccer:"M11,1.5C11,2.3284,10.3284,3,9.5,3S8,2.3284,8,1.5S8.6716,0,9.5,0S11,0.6716,11,1.5z M11,11c-0.5523,0-1,0.4477-1,1 s0.4477,1,1,1s1-0.4477,1-1S11.5523,11,11,11z M12.84,6.09l-1.91-1.91l0,0C10.8399,4.0675,10.7041,4.0014,10.56,4H3.5 C3.2239,4,3,4.2239,3,4.5S3.2239,5,3.5,5h2.7L3,11.3l0,0c-0.0138,0.066-0.0138,0.134,0,0.2c-0.058,0.2761,0.1189,0.547,0.395,0.605 C3.6711,12.163,3.942,11.9861,4,11.71l0,0L5,10h2l-1.93,4.24l0,0C5.0228,14.3184,4.9986,14.4085,5,14.5 c-0.0552,0.2761,0.1239,0.5448,0.4,0.6c0.2761,0.0552,0.5448-0.1239,0.6-0.4l0,0l4.7-9.38l1.44,1.48 c0.211,0.1782,0.5264,0.1516,0.7046-0.0593C13.0037,6.5523,13.0018,6.2761,12.84,6.09z",square:"M12 13H3C2.4477 13 2 12.5523 2 12V3C2 2.4477 2.4477 2 3 2H12C12.5523 2 13 2.4477 13 3V12C13 12.5523 12.5523 13 12 13Z","square-stroked":"M11.7 3.3V11.7H3.3V3.3H11.7ZM12 2H3C2.4477 2 2 2.4477 2 3V12C2 12.5523 2.4477 13 3 13H12C12.5523 13 13 12.5523 13 12V3C13 2.4477 12.5523 2 12 2Z",stadium:"M7,1v2v1.5v0.5098C4.1695,5.1037,2.0021,5.9665,2,7v4.5c0,1.1046,2.4624,2,5.5,2s5.5-0.8954,5.5-2V7 c-0.0021-1.0335-2.1695-1.8963-5-1.9902V4.0625L11,2.75L7,1z M3,8.1465c0.5148,0.2671,1.2014,0.4843,2,0.6328v2.9668 C3.7948,11.477,3,11.0199,3,10.5V8.1465z M12,8.1484V10.5c0,0.5199-0.7948,0.977-2,1.2461V8.7812 C10.7986,8.6328,11.4852,8.4155,12,8.1484z M6,8.9219C6.4877,8.973,6.9925,8.9992,7.5,9C8.0073,8.9999,8.5121,8.9743,9,8.9238 v2.9844C8.5287,11.964,8.0288,12,7.5,12S6.4713,11.964,6,11.9082V8.9219z",star:"M7.5,0l-2,5h-5l4,3.5l-2,6l5-3.5 l5,3.5l-2-6l4-3.5h-5L7.5,0z","star-stroked":"m7.5 2.69 1.07 2.68.25.63h3l-2 1.75-.5.44.23.63 1 3.13-2.48-1.77-.57-.4-.57.4-2.52 1.77 1-3.13.21-.63-.5-.44-2-1.75h3l.25-.63zm0-2.69-2 5h-5l4 3.5-2 6 5-3.5 5 3.5-2-6 4-3.5h-5z",suitcase:"M4.5 4V2C4.5 1.44772 4.94772 1 5.5 1H9.5C10.0523 1 10.5 1.44772 10.5 2V4H12C12.5523 4 13 4.44772 13 5V11C13 11.5523 12.5523 12 12 12H3C2.44771 12 2 11.5523 2 11V5C2 4.44772 2.44772 4 3 4H4.5ZM5.5 2V4H9.5V2H5.5Z",swimming:"M10.1113,2C9.9989,2,9.6758,2.1465,9.6758,2.1465L6.3535,3.8262 C5.9111,4.0024,5.7358,4.7081,6.002,5.0605l0.9707,1.4082L3.002,8.498L5,9.998l2.502-1.5l2.5,1.5l1.002-1.002l-3-4l2.5566-1.5293 c0.5286-0.2662,0.4434-0.7045,0.4434-0.9707C10.9999,2.2861,10.6437,2,10.1113,2z M12.252,5C11.2847,5,10.5,5.7827,10.5,6.75 s0.7847,1.752,1.752,1.752s1.75-0.7847,1.75-1.752S13.2192,5,12.252,5z M2.5,10L0,11.5V13l2.5-1.5L5,13l2.502-1.5l2.5,1.5L12,11.5 l3,1.5v-1.5L12,10l-1.998,1.5l-2.5-1.5L5,11.5L2.5,10z","table-tennis":"M11.9676,10.2275a3.8116,3.8116,0,0,1-1.9122.9831L3.7678,4.9338A4.0283,4.0283,0,0,1,4.7725,3.0324C7.03.7745,9.98.2235,12.3781,2.6219S14.2255,7.97,11.9676,10.2275Zm-6.987,1.6093A3.8422,3.8422,0,0,1,6.149,11.278,4.5328,4.5328,0,0,1,8,11.4452L3.5456,7a4.4126,4.4126,0,0,1,.1572,1.9223,3.6639,3.6639,0,0,1-.5208,1.1159c-1.072,1.263-2.132,1.727-2.132,2.1879A1.8378,1.8378,0,0,0,2.7739,13.95C3.2348,13.95,3.6917,12.9368,4.9806,11.8368Z",teahouse:"M8.00002 5C8.00002 5 10 4.9 10 3.4 10 2.46598 9.17751 2.20864 8.47606 1.98917 7.95458 1.82601 7.5 1.68378 7.5 1.3 7.5.386843 8 0 8 0 8 0 7 .531581 7 1.5 7 2.21063 7.54045 2.46176 8.05947 2.70292 8.53888 2.92568 9 3.13994 9 3.7 9 4.7 8.00002 5 8.00002 5ZM11.8372 6.67447C11.3755 8.62063 10.7854 11.1073 9 12V14H6V12C4.21455 11.1073 3.62454 8.62063 3.16276 6.67447 3.10728 6.44061 3.05364 6.21455 3 6H12C11.9464 6.21453 11.8927 6.44063 11.8372 6.67447ZM6.99998 4C6.99998 5 5.49998 5 5.49998 5 5.49998 5 6.29295 4.9 6.29295 4.3 6.29295 4.02526 6.01604 3.85489 5.71852 3.67184 5.37315 3.45935 5 3.22977 5 2.8 5 1.9661 5.99998 1.5 5.99998 1.5 5.99998 1.5 5.49998 1.77344 5.49998 2.5 5.49998 2.88823 5.85322 3.04095 6.21687 3.19818 6.60257 3.36494 6.99998 3.53675 6.99998 4Z",telephone:"M4.51,8.88a0.51,0.51,0,0,0,0,.72l0.72,0.72L3.07,12.5,2.7,12.13A2.24,2.24,0,0,1,2,10.69V9.24a2.24,2.24,0,0,1,.7-1.45L7.77,2.72A2.24,2.24,0,0,1,9.22,2h1.45a2.24,2.24,0,0,1,1.45.72l0.36,0.36L10.31,5.26,9.58,4.53a0.51,0.51,0,0,0-.72,0ZM4.13,13.6a1,1,0,0,0,1.4137.0363Q5.5623,13.6186,5.58,13.6l0.72-.72a1,1,0,0,0,.0363-1.4137Q6.3186,11.4477,6.3,11.43Zm7.25-7.28a1,1,0,0,0,1.4137.0363C12.8061,6.3445,13.55,5.6,13.55,5.6a1,1,0,0,0,.0363-1.4137Q13.5686,4.1677,13.55,4.15Z",tennis:"M13.1284,1.87c-1.5418-1.5406-4.5535-.7759-6.28,1.05a6.8282,6.8282,0,0,0-1.88,4.4,5.7275,5.7275,0,0,1-.57,2.72.6814.6814,0,0,0-.67.17l-2.49,2.5a.6941.6941,0,0,0,0,.98l.07.07a.7051.7051,0,0,0,.98,0l2.5-2.49a.683.683,0,0,0,.18-.66,8.5694,8.5694,0,0,1,3.12-.58,6.5487,6.5487,0,0,0,3.99-1.87C14.1084,6.13,14.579,3.3194,13.1284,1.87Zm-2.2-.04a2.3071,2.3071,0,0,1,1.64.61,2.548,2.548,0,0,1,.5,2.44l-2.95-2.96A3.8648,3.8648,0,0,1,10.9284,1.83Zm-4.57,6.81a2.6485,2.6485,0,0,1-.48-2.55l3.04,3.04A2.8522,2.8522,0,0,1,6.3584,8.64Zm2.88.39-3.26-3.27a5.1623,5.1623,0,0,1,.49-1.08l3.85,3.85A5.5093,5.5093,0,0,1,9.2384,9.03Zm1.34-.66-3.94-3.95a5.2032,5.2032,0,0,1,.74-.9l4.1,4.1A5.6869,5.6869,0,0,1,10.5784,8.37Zm1.11-.96-4.1-4.1a5.5714,5.5714,0,0,1,.84-.65l3.92,3.92A5.7187,5.7187,0,0,1,11.6884,7.41Zm.82-1.09L8.6984,2.5a4.1707,4.1707,0,0,1,1.09-.48l3.2,3.2A5.5656,5.5656,0,0,1,12.5084,6.32Z",theatre:"M2,1c0,0-1,0-1,1v5.1582C1,8.8885,1.354,11,4.5,11H5V8L2.5,9c0,0,0-2.5,2.5-2.5V5 c0-0.7078,0.0868-1.3209,0.5-1.7754C5.8815,2.805,6.5046,1.9674,8.1562,2.7539L9,3.3027V2c0,0,0-1-1-1C7.2922,1,6.0224,2,5,2 S2.7865,1,2,1z M3,3c0.5523,0,1,0.4477,1,1S3.5523,5,3,5S2,4.5523,2,4S2.4477,3,3,3z M7,4c0,0-1,0-1,1v5c0,2,1,4,4,4s4-2,4-4V5 c0-1-1-1-1-1c-0.7078,0-1.9776,1-3,1S7.7865,4,7,4z M8,6c0.5523,0,1,0.4477,1,1S8.5523,8,8,8S7,7.5523,7,7S7.4477,6,8,6z M12,6 c0.5523,0,1,0.4477,1,1s-0.4477,1-1,1s-1-0.4477-1-1S11.4477,6,12,6z M7.5,10H10h2.5c0,0,0,2.5-2.5,2.5S7.5,10,7.5,10z",toilet:"M3 1.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0ZM11.5 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM3.29 4a1 1 0 0 0-.868.504L.566 7.752a.5.5 0 1 0 .868.496l1.412-2.472A345.048 345.048 0 0 0 1 11h2v2.5a.5.5 0 0 0 1 0V11h1v2.5a.5.5 0 0 0 1 0V11h2L6.103 5.687l1.463 2.561a.5.5 0 1 0 .868-.496L6.578 4.504A1 1 0 0 0 5.71 4H3.29ZM9 4.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v5a.5.5 0 0 1-1 0v4a.5.5 0 0 1-1 0v-4h-1v4a.5.5 0 0 1-1 0v-4a.5.5 0 0 1-1 0v-5Z",toll:"M2.5 1C2.22386 1 2 1.22386 2 1.5V2V13H1.5C1.22386 13 1 13.2239 1 13.5C1 13.7761 1.22386 14 1.5 14H8.5C8.77614 14 9 13.7761 9 13.5C9 13.2239 8.77614 13 8.5 13H7V10.0987L13.7761 5.54576C14.0053 5.39175 14.0663 5.08109 13.9123 4.85189L13.6334 4.43687C13.4794 4.20766 13.1688 4.1467 12.9396 4.3007L7 8.29152V2H7.5C7.77614 2 8 1.77614 8 1.5C8 1.22386 7.77614 1 7.5 1H2.5ZM3 3.5C3 3.22386 3.22386 3 3.5 3H5.5C5.77614 3 6 3.22386 6 3.5V7.5C6 7.77614 5.77614 8 5.5 8H3.5C3.22386 8 3 7.77614 3 7.5V3.5Z",town:"m10.651 6.121c-.0445-.0357-.0999-.05516-.157-.05516s-.1125.01946-.157.05516l-2.245 1.808c-.02881.02323-.05204.05263-.06796.08603-.01593.03341-.02414.06997-.02404.10697v4.625c0 .0671.02666.1315.0741.1789.04745.0474.1118.0741.1789.0741h1.494c.0671 0 .13145-.0267.1789-.0741s.0741-.1118.0741-.1789v-1.747h1v1.747c0 .0671.0267.1315.0741.1789.0475.0474.1118.0741.1789.0741h1.494c.0671 0 .1315-.0267.1789-.0741s.0741-.1118.0741-.1789v-4.627c.0007-.03831-.0074-.07627-.0237-.11095s-.0404-.06514-.0703-.08905zm-.651 3.879h-1v-1h1zm2 0h-1v-1h1zm-6.29-9.184997c-.02299-.034654-.05419-.063081-.09083-.082746s-.07758-.029956-.11917-.029956c-.04158 0-.08252.010291-.11916.029956-.03665.019665-.06785.048092-.09084.082746l-3.248 4.120997c-.02752.0415-.04214.09021-.042.14v7.671c-.00013.0331.00626.0659.0188.0965s.031.0585.0543.082c.02331.0235.05102.0422.08154.0549.03053.0128.06327.0195.09636.0196h2.5c.06632-.0008.12964-.0277.17626-.0749.04661-.0471.07275-.1108.07274-.1771v-1.748h1v1.748c0 .0668.02655.1309.07381.1782s.11136.0738.17819.0738h.748v-6c-.00004-.07511.01684-.14926.04938-.21695.03255-.06769.07993-.12718.13862-.17405l1.812-1.609c0-.05-3.29-4.184997-3.29-4.184997zm-1.71 8.184997h-1v-1h1zm0-3h-1v-1h1zm2 3h-1v-1h1zm0-3h-1v-1h1z","town-hall":"M13,4H9l0-3L7.5,0L6,1v3H2L1,5v1h13V5L13,4z M7.5,1.5c0.4,0,0.7,0.3,0.7,0.8S7.9,3,7.5,3S6.7,2.7,6.7,2.2 C6.7,1.8,7.1,1.5,7.5,1.5z M13,7H2v4l-1,1.5V14h13v-1.5L13,11V7z M5,12.5H4V8h1V12.5z M8,12.5H7V8h1V12.5z M11,12.5h-1V8h1V12.5z",triangle:"m7.5385 1c-.2948 0-.4883.1772-.6154.3846l-5.8462 9.5385c-.0769.0769-.0769.2307-.0769.3846 0 .5385.3846.6923.6923.6923h11.6154c.3846 0 .6923-.1538.6923-.6923 0-.1538 0-.2308-.0769-.3846l-5.7693-9.5385c-.1258-.2081-.3656-.3846-.6153-.3846z","triangle-stroked":"m7.52427.500405c-.2814-.0091-.5456.1419-.6907.3948l-5.5 9.869195c-.3118.5434.0614 1.2355.6664 1.2356h11.00003c.605-.0001.9782-.6922.6664-1.2355l-5.50003-9.869195c-.1362-.2374-.378-.3861-.6421-.3949zm-.0243 2.398895 4.12673 7.4704h-8.25343z",tunnel:"M4 2C2.34315 2 1 3.32706 1 4.96406V12.012C1 12.5576 1.44772 13 2 13H3V8.55391C3 6.09839 5.01472 4.10781 7.5 4.10781C9.98528 4.10781 12 6.09842 12 8.55393V13H13C13.5523 13 14 12.5576 14 12.012V4.96406C14 3.32706 12.6569 2 11 2H4ZM11 10V9.04794C11 6.86526 9.43299 5.09583 7.5 5.09583C5.56701 5.09583 4.00001 6.86526 4 9.04794V13L11 10Z",veterinary:"M7.5,6c-2.5,0-3,2.28-3,3.47h0a6.149,6.149,0,0,0-1.7.89,2,2,0,0,0-.4,2.78,2.06,2.06,0,0,0,2.8.4,4,4,0,0,1,2.3-.69,4,4,0,0,1,2.3.69,2,2,0,0,0,2.8-.3,1.929,1.929,0,0,0-.226-2.72c-.024-.021-.049-.041-.074-.06l-.1-.1a8.992,8.992,0,0,0-1.7-.89h0C10.5,8.29,10,6,7.5,6ZM2.08,4.3a1.58,1.58,0,0,0-.76,2A1.52,1.52,0,0,0,2.93,7.7a1.58,1.58,0,0,0,.76-2A1.52,1.52,0,0,0,2.08,4.3Zm10.85,0a1.58,1.58,0,0,1,.76,2,1.52,1.52,0,0,1-1.61,1.4,1.58,1.58,0,0,1-.76-2A1.52,1.52,0,0,1,12.93,4.3Zm-7.85-3c-.68.09-1,.94-.76,1.87A1.77,1.77,0,0,0,5.93,4.7c.68-.09,1-.94.76-1.87A1.77,1.77,0,0,0,5.08,1.3Zm4.85,0c.68.09,1,.94.76,1.87A1.77,1.77,0,0,1,9.07,4.7c-.68-.08-1-.94-.76-1.87A1.769,1.769,0,0,1,9.93,1.3Z",viewpoint:"M6.02,8.425a2.3859,2.3859,0,0,0-.46.44l-4.55-3.5a7.9976,7.9976,0,0,1,1.51-1.51Zm6.46-4.56-3.5,4.55a2.3971,2.3971,0,0,1,.45.45l4.56-3.5A7.945,7.945,0,0,0,12.48,3.865ZM7.3042,10.0129a1.5,1.5,0,1,0,1.6829,1.2914h0A1.5,1.5,0,0,0,7.3042,10.0129ZM6.43,2.235a7.9329,7.9329,0,0,0-2.06.55l2.2,5.32a2.0438,2.0438,0,0,1,.61-.17Zm2.14.01-.75,5.69a2.49,2.49,0,0,1,.61.16l2.2-5.3A7.2129,7.2129,0,0,0,8.57,2.245Z",village:"M6.176 1.176a.249.249 0 0 0-.352 0l-4.4 4.4A.25.25 0 0 0 1.6 6H3v6.751a.25.25 0 0 0 .249.249h3.5A.248.248 0 0 0 7 12.753v-7.43c0-.066.026-.13.073-.176L8.5 3.5 6.176 1.176ZM6 11H5v-1h1v1Zm0-2H5V8h1v1Zm0-3v1H5V6h1Z M12.75 3h-.5a.25.25 0 0 0-.25.25V5l-1.324-1.824a.249.249 0 0 0-.352 0L8.056 5.932A.246.246 0 0 0 8 6.088v6.66a.249.249 0 0 0 .246.252h1.5a.253.253 0 0 0 .254-.252V11h1v1.747a.253.253 0 0 0 .253.253h1.5a.25.25 0 0 0 .247-.249V3.25a.25.25 0 0 0-.25-.25ZM10 8H9V7h1v1Zm2 0h-1V7h1v1Zm-2 2H9V9h1v1Zm2 0h-1V9h1v1Z",volcano:"M8.4844,1.0002 c-0.1464,0.005-0.2835,0.0731-0.375,0.1875L6.4492,3.2619L4.8438,1.7385C4.4079,1.3374,3.7599,1.893,4.0899,2.385l1.666,2.4004 C5.9472,5.061,6.3503,5.0737,6.5586,4.8108C6.7249,4.6009,7,4.133,7.5,4.133s0.7929,0.4907,0.9414,0.6777 c0.175,0.2204,0.4973,0.2531,0.7129,0.0723l1.668-1.4004c0.4408-0.3741,0.0006-1.0735-0.5273-0.8379L9,3.2268V1.5002 C9.0002,1.2179,8.7666,0.9915,8.4844,1.0002L8.4844,1.0002z M5,6.0002L2.0762,11.924C1.9993,12.0009,2,12.155,2,12.3088 c0,0.5385,0.3837,0.6914,0.6914,0.6914h9.6172c0.3846,0,0.6914-0.153,0.6914-0.6914c0-0.1538,0.0008-0.2309-0.0762-0.3848L10,6.0002 c-0.5,0-1,0.5-1,1v0.5c0,0.277-0.223,0.5-0.5,0.5S8,7.7772,8,7.5002v-0.5c0-0.2761-0.2238-0.5-0.5-0.5S7,6.7241,7,7.0002v2 c0,0.277-0.223,0.5-0.5,0.5S6,9.2772,6,9.0002v-2C6,6.5002,5.5,6.0002,5,6.0002z",volleyball:"M13.91,7.94a5.9086,5.9086,0,0,1-.13.94,8.8218,8.8218,0,0,0-2.17-1.49,8.89,8.89,0,0,0-1.4-.56,8.6142,8.6142,0,0,0-1.82-.35.221.221,0,0,0-.08-.01A7.32,7.32,0,0,1,7.5,4.59c-.01-.01-.01-.01,0-.02a7.7573,7.7573,0,0,1,1.52.15,7.0987,7.0987,0,0,1,1.56.5,6.8585,6.8585,0,0,1,1.4.78A7.4165,7.4165,0,0,1,13.91,7.94Zm-1.87-5a6.2232,6.2232,0,0,0-1.85-1.27,4.2725,4.2725,0,0,0-.98-.36,5.6412,5.6412,0,0,0-1.55-.23,1.2882,1.2882,0,0,0-.32,0A7.4263,7.4263,0,0,0,7.21,2.5c0,.2.01.39.02.58a2.28,2.28,0,0,1,.26-.01,2.6438,2.6438,0,0,1,.28.01,8.2865,8.2865,0,0,1,1.49.16,8.9879,8.9879,0,0,1,1.35.37,8.7922,8.7922,0,0,1,1.53.7,10.18,10.18,0,0,1,1.39.97A6.4588,6.4588,0,0,0,12.04,2.94ZM4.01,8.76a9.4084,9.4084,0,0,1-.62-1.37,9.1038,9.1038,0,0,1-.37-1.41,9.1748,9.1748,0,0,1-.16-1.67V4.28a8.455,8.455,0,0,1,.1-1.34A6.28,6.28,0,0,0,1.47,5.3a6.2222,6.2222,0,0,0-.4,2.2c0,.15.01.3.02.44a5.9086,5.9086,0,0,0,.13.94,5.7343,5.7343,0,0,0,.41,1.23c.22-.05.44-.11.65-.17a8.0188,8.0188,0,0,0,1.9-.88C4.12,8.96,4.06,8.86,4.01,8.76Zm2.6-2.28a9,9,0,0,1-.63-1.76,9.135,9.135,0,0,1-.24-1.48c-.02-.25-.03-.49-.03-.74a9.3777,9.3777,0,0,1,.08-1.19,4.2725,4.2725,0,0,0-.98.36,7.7038,7.7038,0,0,0-.42,1.94c-.02.22-.03.44-.03.67a7.2659,7.2659,0,0,0,.06.93,7.4258,7.4258,0,0,0,.37,1.63,6.4705,6.4705,0,0,0,.59,1.28A8.0174,8.0174,0,0,0,6.65,6.55.2522.2522,0,0,1,6.61,6.48ZM12.7,9.93s0-.01-.01,0a7.0128,7.0128,0,0,0-1.7-1.16c-.06.1-.11.19-.17.29a8.783,8.783,0,0,1-.88,1.22,8.9125,8.9125,0,0,1-1.06,1.07,10.4181,10.4181,0,0,1-1.38.98,8.9933,8.9933,0,0,1-2.64,1.02,6.2985,6.2985,0,0,0,5.28,0,5.9674,5.9674,0,0,0,2.42-1.89,4.8258,4.8258,0,0,0,.65-1.03A6.0315,6.0315,0,0,0,12.7,9.93Zm-5.17-2c-.01.01-.02.03-.03.04a9.26,9.26,0,0,1-1.25,1.4,9.5925,9.5925,0,0,1-1.19.91,9.2683,9.2683,0,0,1-2.62,1.18,6.0989,6.0989,0,0,0,.53.61,7.7353,7.7353,0,0,0,3.15-.72,7.3839,7.3839,0,0,0,1.38-.82A7.6429,7.6429,0,0,0,8.75,9.37a7.7441,7.7441,0,0,0,.82-1.15A7.3414,7.3414,0,0,0,7.53,7.93Z",warehouse:"M13.5,5c-0.0762,0.0003-0.1514-0.0168-0.22-0.05L7.5,2L1.72,4.93C1.4632,5.0515,1.1565,4.9418,1.035,4.685 S1.0232,4.1215,1.28,4L7.5,0.92L13.72,4c0.2761,0.0608,0.4508,0.3339,0.39,0.61C14.0492,4.8861,13.7761,5.0608,13.5,5z M5,10H2v3h3 V10z M9,10H6v3h3V10z M13,10h-3v3h3V10z M11,6H8v3h3V6z M7,6H4v3h3V6z","waste-basket":"M12.41,5.58l-1.34,8c-0.0433,0.2368-0.2493,0.4091-0.49,0.41H4.42c-0.2407-0.0009-0.4467-0.1732-0.49-0.41l-1.34-8 C2.5458,5.3074,2.731,5.0506,3.0035,5.0064C3.0288,5.0023,3.0544,5.0002,3.08,5h8.83c0.2761-0.0036,0.5028,0.2174,0.5064,0.4935 C12.4168,5.5225,12.4146,5.5514,12.41,5.58z M13,3.5C13,3.7761,12.7761,4,12.5,4h-10C2.2239,4,2,3.7761,2,3.5S2.2239,3,2.5,3H5V1.5 C5,1.2239,5.2239,1,5.5,1h4C9.7761,1,10,1.2239,10,1.5V3h2.5C12.7761,3,13,3.2239,13,3.5z M9,3V2H6v1H9z",watch:"M12.5,7H12a.426.426,0,0,0-.049.01A4.484,4.484,0,0,0,10,3.76V1.5A.5.5,0,0,0,9.5,1h-4a.5.5,0,0,0-.5.5V3.76a4.5,4.5,0,0,0,0,7.48V13.5a.5.5,0,0,0,.5.5h4a.5.5,0,0,0,.5-.5V11.24a4.486,4.486,0,0,0,1.951-3.25A.426.426,0,0,0,12,8h.5a.5.5,0,0,0,0-1Zm-5,4A3.5,3.5,0,1,1,11,7.5,3.5,3.5,0,0,1,7.5,11ZM9,7H8V5.5a.5.5,0,0,0-1,0v2a.5.5,0,0,0,.5.5H9A.5.5,0,0,0,9,7Z",water:"M7.5 14C9.57688 14 12 12.7117 12 9.43241C12 7.20724 8.53844 2.2883 7.5 1C6.57691 2.2883 3 7.09007 3 9.43241C3 12.7117 5.42312 14 7.5 14Z",waterfall:"M14 1H5C3.34315 1 2 2.34314 2 4V8.87918C1.39704 9.28261 1 9.96937 1 10.75C1 11.9927 2.00736 13 3.25 13C3.7127 13 4.14279 12.8599 4.5 12.6209C4.85721 12.8599 5.2873 13 5.75 13C6.28601 13 6.77826 12.812 7.16413 12.5H7.51743C8.01909 12.8165 8.61403 13 9.25 13C11.0449 13 12.5 11.5449 12.5 9.75002C12.5 8.39777 11.6747 7.23919 10.5 6.74934V5C10.5 3.89543 11.3954 3 12.5 3H14V1ZM11.5 9.75C11.5 10.9926 10.4926 12 9.25 12C8.71418 12 8.2221 11.8127 7.83567 11.5H6.75009C6.52204 11.8036 6.15895 12 5.75 12C5.34105 12 4.97796 11.8036 4.74991 11.5H4.25009C4.02204 11.8036 3.65895 12 3.25 12C2.55964 12 2 11.4404 2 10.75C2 10.1453 2.42944 9.64082 3 9.525V5.75C3 5.33579 3.33579 5 3.75 5C4.16421 5 4.5 5.33579 4.5 5.75V9C4.5 9.27614 4.72386 9.5 5 9.5C5.27614 9.5 5.5 9.27614 5.5 9V6.75C5.5 6.33579 5.83579 6 6.25 6C6.66421 6 7 6.33579 7 6.75V9C7 9.27614 7.22386 9.5 7.5 9.5C7.77614 9.5 8 9.27614 8 9V5.75C8 5.33579 8.33579 5 8.75 5C9.16421 5 9.5 5.33579 9.5 5.75V7.51373C10.625 7.63809 11.5 8.59186 11.5 9.75Z",watermill:"M2,10.2L4,9l2.5,1.5l1.4659-0.8788C7.6592,9.4698,7.3716,9.285,7.1231,9.0536l1.4131-1.4131 C8.7672,7.836,9.0557,7.9606,9.375,7.9874V9.224l0.25,0.1501V7.9874c0.3193-0.0268,0.6078-0.1514,0.8388-0.3469l1.4131,1.4131 c-0.4059,0.3781-0.9044,0.6492-1.4528,0.8003L11.5,10.5l0.6984-0.4191C13.2863,9.2595,14,7.9682,14,6.5C14,4.0147,11.9853,2,9.5,2 C8.1917,2,7.0241,2.5674,6.2018,3.4587L4.5,2L1,5h1V10.2z M12.0536,8.8769l-1.4131-1.4131c0.1954-0.231,0.3201-0.5196,0.3469-0.8388 h1.9999C12.956,7.4946,12.6089,8.2806,12.0536,8.8769z M12.9874,6.375h-1.9999c-0.0268-0.3193-0.1514-0.6078-0.3469-0.8388 l1.4131-1.4131C12.6089,4.7193,12.956,5.5054,12.9874,6.375z M9.625,3.0126c0.8696,0.0314,1.6557,0.3784,2.2519,0.9337 l-1.4131,1.4131c-0.231-0.1954-0.5196-0.32-0.8388-0.3468C9.625,5.0126,9.625,3.0126,9.625,3.0126z M9.375,3.0126v1.9999 C9.0558,5.0394,8.7672,5.164,8.5362,5.3594L7.1231,3.9463C7.7193,3.3911,8.5054,3.044,9.375,3.0126z M6.9464,4.1231l1.4131,1.4131 C8.164,5.7672,8.0394,6.0557,8.0126,6.375h-2C6.044,5.5054,6.3911,4.7193,6.9464,4.1231z M8.0126,6.625 c0.0268,0.3192,0.1515,0.6078,0.3469,0.8388L6.9464,8.8769C6.3911,8.2807,6.044,7.4946,6.0126,6.625H8.0126z M9.002,10L6.5,11.5 L4,10l-2.5,1.5V13L4,11.5L6.5,13l2.502-1.5L11.5,13l2.5-1.5V10l-2.5,1.5L9.002,10z",wetland:"M1.48,4.5C1.905,4.1467,2.4483,3.968,3,4c1.2273-0.0869,2.3154,0.7836,2.5,2l0.78,4.68c-0.6394-0.2893-1.3759-0.2709-2,0.05 L3.48,6C3.1874,5.1347,2.3926,4.5387,1.48,4.5z M7.48,11.24c0.3816-0.3076,0.825-0.5293,1.3-0.65L10,3 c0.2926-0.8653,1.0874-1.4613,2-1.5c-0.4198-0.3485-0.955-0.5269-1.5-0.5C9.2727,0.9131,8.1846,1.7836,8,3l-1.3,7.79 C6.9786,10.9052,7.2408,11.0565,7.48,11.24z M11.8,10.74L11.8,10.74c0.1565-0.1277,0.3238-0.2414,0.5-0.34L13,6 c0.2926-0.8653,1.0874-1.4613,2-1.5c-0.4198-0.3485-0.955-0.5269-1.5-0.5c-1.2273-0.0869-2.3154,0.7836-2.5,2l-0.67,4 C10.8731,10.123,11.3778,10.377,11.8,10.74z M14,12L14,12c-0.4346-0.01-0.8579,0.1394-1.19,0.42l-0.47,0.41 c-0.2847,0.2546-0.7153,0.2546-1,0c-0.15-0.12-0.29-0.26-0.44-0.39c-0.7076-0.5968-1.7424-0.5968-2.45,0 c-0.16,0.13-0.31,0.28-0.47,0.41c-0.2847,0.2546-0.7153,0.2546-1,0c-0.16-0.13-0.31-0.28-0.47-0.41 c-0.7059-0.5912-1.7341-0.5912-2.44,0c-0.15,0.13-0.29,0.27-0.44,0.39c-0.0892,0.0715-0.1909,0.1258-0.3,0.16 c-0.2922,0.0652-0.5969-0.0301-0.8-0.25c-0.2475-0.214-0.5117-0.4079-0.79-0.58C1.5336,12.0421,1.2974,11.9865,1.06,12H1 c-0.2761,0-0.5,0.2239-0.5,0.5S0.7239,13,1,13l0,0c0.246,0.0145,0.4762,0.126,0.64,0.31L2,13.57 c0.6717,0.55,1.6308,0.5747,2.33,0.06c0.19-0.14,0.36-0.32,0.55-0.47c0.2847-0.2546,0.7153-0.2546,1,0l0.39,0.35 c0.6937,0.6189,1.7322,0.6484,2.46,0.07c0.15-0.11,0.27-0.25,0.42-0.37c0.2976-0.3038,0.7851-0.3087,1.0889-0.0111 c0.0037,0.0037,0.0074,0.0074,0.0111,0.0111l0.39,0.35c0.4866,0.4124,1.1485,0.5516,1.76,0.37c0.3825-0.1036,0.7286-0.3113,1-0.6 c0.1549-0.1772,0.3674-0.294,0.6-0.33l0,0c0.2761,0,0.5-0.2239,0.5-0.5S14.2761,12,14,12z",wheelchair:"M12,1.5C12,2.3284,11.3284,3,10.5,3S9,2.3284,9,1.5S9.6716,0,10.5,0S12,0.6716,12,1.5z M2.82,4.87l1.74-1.71l1.85,1.29 L5.67,5.7c1.0747,0.3341,2.0207,0.9904,2.71,1.88l0.88-1.5c0.2295-0.4158,0.0785-0.939-0.3373-1.1685 C8.9218,4.911,8.9209,4.9105,8.92,4.91L8.3,4.54L4.79,2.1C4.5927,1.9594,4.3231,1.9805,4.15,2.15l-2,2 C1.9852,4.3716,2.0312,4.6848,2.2528,4.8496C2.4193,4.9735,2.645,4.9816,2.82,4.87z M8.13,10.94 c-0.0143,1.2308-0.5794,2.3904-1.54,3.16c-0.7118,0.5804-1.6016,0.8982-2.52,0.9C1.8261,15,0.0055,13.1839,0,10.94 c0.0023-0.9231,0.3238-1.8169,0.91-2.53c0.1868-0.232,0.398-0.4432,0.63-0.63c0.7131-0.5862,1.6069-0.9077,2.53-0.91 C6.3139,6.8755,8.13,8.6961,8.13,10.94z M6,12.21C6.7679,11.2051,6.5758,9.7679,5.5709,9C4.7501,8.3727,3.6109,8.3727,2.79,9 C2.5283,9.151,2.311,9.3683,2.16,9.63c-0.6923,1.0584-0.3956,2.4777,0.6628,3.17c0.7615,0.4981,1.7457,0.4981,2.5072,0 C5.5805,12.6365,5.8061,12.4378,6,12.21z M14.2,13.21l-2.49-5C11.5906,7.9251,11.3088,7.7425,11,7.75H8.51 c0.3293,0.4578,0.5856,0.9638,0.76,1.5h1.26l2.29,4.58c0.185,0.3728,0.6372,0.525,1.01,0.34c0.3728-0.185,0.525-0.6372,0.34-1.01 L14.2,13.21z",windmill:"M6,5L3.5,7.5l1,1L7,6V5.5L7.5,5L8,5.5V6l2.5,2.5l1-1L9,5H8.5L8,4.5L8.5,4H9l2.5-2.5l-1-1L8,3v0.5L7.5,4L7,3.5V3L4.5,0.5 l-1,1L6,4h0.5L7,4.5L6.5,5H6z M11.5,13h-1l-1-4l-2-2l-2,2l-1,4h-1C3.2239,13,3,13.2238,3,13.5C3,13.7761,3.2239,14,3.5,14h8 c0.2761,0,0.5-0.2239,0.5-0.5C12,13.2238,11.7761,13,11.5,13z M8,13H7v-1.5024C7,11.2228,7.2228,11,7.4976,11 C7.7751,11,8,11.2249,8,11.5024V13z",zoo:"M8.3879,3.8928C8.3879,3.8928,7.6818,5,7,5H4.5C3.8182,5,3.2016,5.4086,2.7273,5.8636L0.5,8C0.231,8.258,0.0072,8.7681,0,9 c-0.0156,0.5,0,1,0,1s1,0,1-1V8.5l1-1h0.5l0.158,0.2892c0,0-0.9535,1.8244-0.9535,3.5289C1.7046,12,2.3864,12,2.3864,12h0.6818 c0,0,0.3409,0,0-0.3409l-0.3409-0.3409C2.7273,10.6364,3.5002,9.6667,4,9c0,0,0.0168,1.1579,0,2c-0.008,0.4096,0.2721,1,0.6818,1 h0.6818c0,0,0.3409,0,0-0.3409l-0.3409-0.3409C4.7105,10.7495,5.5,8.5,5.5,8.5C6.7716,8.5,7,9,8.5,9l0.3636,2.3182 C8.975,12.0282,9.5,12,9.5,12H11c0.3409,0,0.9611-0.3115,0.3409-0.7736L11,11V9c1.2142-0.1722,2-1,2-2h1c0.3214,0,1,0,1-0.5v-1 l-1.7045-1.6818C12.5444,3.0772,12,2.5,11,2.5C9.5469,2.5,8.8636,3.0688,8.3879,3.8928z"},fr=Object.keys(Te);function j1(e,t){const n=Te[e];n||console.warn(`[MakiIcon] Unknown icon: "${e}", falling back to "marker"`);const r=n??Te.marker??"",o=(t==null?void 0:t.size)??32,l=(t==null?void 0:t.fill)??"#333",s=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" width="${o}" height="${o}"><path fill="${l}" d="${r}"/></svg>`;return`data:image/svg+xml,${encodeURIComponent(s)}`}function gr(e,t){const n={};for(const r of e)n[r]=j1(r,t);return n}const yr="M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 16 40 16 40C16 40 32 24.8366 32 16C32 7.16344 24.8366 0 16 0Z";function B1(e,t){const n=Te[e];n||console.warn(`[MakiIcon] Unknown icon: "${e}", falling back to "marker"`);const r=n??Te.marker??"",o=(t==null?void 0:t.size)??40,l=(t==null?void 0:t.fill)??"#2563eb",s=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 40" width="${o}" height="${Math.round(o*1.25)}"><path d="${yr}" fill="${l}" stroke="white" stroke-width="1.5"/>`+(r?`<svg x="8" y="8" viewBox="0 0 15 15" width="16" height="16"><path fill="white" d="${r}"/></svg>`:"")+"</svg>";return`data:image/svg+xml,${encodeURIComponent(s)}`}function W1(e,t){const n={};for(const r of e)n[r]=B1(r,t);return n}const nt={primary:{fill:"#2563eb",bg:"rgba(37, 99, 235, 0.2)",ring:"rgba(37, 99, 235, 0.2)"},success:{fill:"#00854d",bg:"rgba(0, 133, 77, 0.2)",ring:"rgba(0, 133, 77, 0.2)"},warning:{fill:"#943700",bg:"rgba(148, 55, 0, 0.2)",ring:"rgba(148, 55, 0, 0.2)"},error:{fill:"#ba1a1a",bg:"rgba(186, 26, 26, 0.2)",ring:"rgba(186, 26, 26, 0.2)"}};function mr(e){return typeof e=="string"&&/<[a-zA-Z][^>]*>/.test(e)}function U1({color:e="primary"}){const{fill:t}=nt[e];return i.jsxs("svg",{viewBox:"0 0 32 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"aimapui-marker-pin",style:{width:32,height:40,display:"block",filter:"drop-shadow(0 4px 3px rgba(0,0,0,0.07)) drop-shadow(0 2px 2px rgba(0,0,0,0.06))"},children:[i.jsx("path",{d:"M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 16 40 16 40C16 40 32 24.8366 32 16C32 7.16344 24.8366 0 16 0Z",fill:t,stroke:"white",strokeWidth:1.5}),i.jsx("circle",{cx:"16",cy:"16",r:"4",fill:"white"})]})}function Cr({icon:e,color:t="primary"}){const{fill:n}=nt[t],r=Te[e]??Te.marker??"";return i.jsxs("div",{className:"aimapui-marker-pin aimapui-marker-pin--icon",style:{position:"relative",display:"inline-flex",alignItems:"flex-start",justifyContent:"center",width:32,height:40,filter:"drop-shadow(0 4px 3px rgba(0,0,0,0.07)) drop-shadow(0 2px 2px rgba(0,0,0,0.06))"},children:[i.jsx("svg",{viewBox:"0 0 32 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{position:"absolute",inset:0,width:"100%",height:"100%"},children:i.jsx("path",{d:"M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 16 40 16 40C16 40 32 24.8366 32 16C32 7.16344 24.8366 0 16 0Z",fill:n,stroke:"white",strokeWidth:1.5})}),r&&i.jsx("svg",{viewBox:"0 0 15 15",xmlns:"http://www.w3.org/2000/svg",style:{position:"relative",zIndex:1,width:16,height:16,marginTop:8,fill:"white"},children:i.jsx("path",{d:r,style:{fill:"white"}})})]})}function vr({color:e="primary"}){const{fill:t,bg:n}=nt[e];return i.jsx("div",{className:"aimapui-marker-circle",style:{position:"relative",width:24,height:24,borderRadius:"50%",border:"1.5px solid white",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)",display:"flex",alignItems:"center",justifyContent:"center",background:n,borderColor:t},children:i.jsx("div",{className:"aimapui-marker-circle__inner",style:{width:6,height:6,borderRadius:"50%",background:t}})})}function br({color:e="primary"}){const{fill:t}=nt[e];return i.jsx("div",{className:"aimapui-marker-dot",style:{width:8,height:8,borderRadius:"50%",border:"1.5px solid white",boxShadow:"0 1px 3px rgba(0,0,0,0.3)",background:t}})}function Lr({text:e}){return i.jsx("div",{className:"aimapui-marker-label",style:{position:"absolute",top:"calc(100% + 4px)",left:"50%",transform:"translateX(-50%)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:12,lineHeight:"16px",fontWeight:450,color:"#1d1d1f",whiteSpace:"nowrap",pointerEvents:"none",textShadow:"-1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff, 0 0 2px #fff, 0 0 4px rgba(255,255,255,0.5)"},children:e})}const q1={center:"translate(-50%, -50%)",top:"translate(-50%, 0)",bottom:"translate(-50%, -100%)",left:"translate(0, -50%)",right:"translate(-100%, -50%)","top-left":"translate(0, 0)","top-right":"translate(-100%, 0)","bottom-left":"translate(0, -100%)","bottom-right":"translate(-100%, -100%)"},xr=[0,0];function wr(e,t,n,r){let o;switch(e){case"pin":o=i.jsx(U1,{color:t});break;case"circle":o=i.jsx(vr,{color:t});break;case"icon":o=i.jsx(Cr,{icon:n||"marker",color:t});break;case"dot":o=i.jsx(br,{color:t});break;default:o=i.jsx(U1,{color:t})}return r?i.jsxs("div",{style:{position:"relative",display:"inline-flex",flexDirection:"column",alignItems:"center"},children:[o,i.jsx(Lr,{text:r})]}):o}function Oe({longitude:e,latitude:t,variant:n="pin",color:r="primary",icon:o,label:l,content:s,children:a,draggable:c=!1,className:d,overlayContainer:h,onClick:f,onMouseEnter:p,onMouseLeave:g,onDoubleClick:y,onDragEnd:C,onDragging:b,onDragStart:x,selected:k=!1,inactive:L=!1,anchor:z="bottom",offsets:E=xr,overflowHide:T=!0}){const M=me(),H=u.useRef(null),N=u.useRef(null),V=u.useRef({lng:e,lat:t}),F=u.useRef({width:0,height:0}),A=E[0]??0,I=E[1]??0,m=u.useRef(null),w=u.useRef(f);w.current=f;const P=u.useRef(p);P.current=p;const $=u.useRef(g);$.current=g;const j=u.useRef(y);j.current=y;const O=u.useRef(x);O.current=x;const K=u.useRef(b);K.current=b;const ee=u.useRef(C);ee.current=C;const Y=u.useMemo(()=>{const _=["aimapui-marker"];return k&&_.push("aimapui-marker--selected"),L&&_.push("aimapui-marker--inactive"),_.push(`aimapui-marker--${r}`),d&&_.push(d),_.join(" ")},[k,L,r,d]),X=u.useMemo(()=>s||a||wr(n,r,o,l),[s,a,n,r,o,l]),te=_=>{const U=H.current;if(!U||!_)return;const{lng:ce,lat:ie}=V.current;if(isNaN(ce)||isNaN(ie))return;let Q;try{Q=_.lngLatToContainer([ce,ie])}catch{return}if(!Q||isNaN(Q.x)||isNaN(Q.y))return;const le=Q.x+A,Z=Q.y-I,v=q1[z]||q1.bottom,D=Math.round(le),S=Math.round(Z);if(U.style.left="0",U.style.top="0",U.style.transform=`translate3d(${D}px, ${S}px, 0) ${v}`,T){const{width:R,height:B}=F.current;U.style.visibility=le<0||le>R||Z<0||Z>B?"hidden":"visible"}};return u.useEffect(()=>{if(!M)return;let _=!1;const U=M.mapService;if(!U){console.error("[Marker] mapService not available");return}const ce=()=>{var D;const v=(D=U.getContainer)==null?void 0:D.call(U);v&&(F.current={width:v.scrollWidth||v.clientWidth||0,height:v.scrollHeight||v.clientHeight||0})},ie=()=>{H.current&&te(U)},Q=(v,D,S)=>{var R;try{(R=v==null?void 0:v.on)==null||R.call(v,D,S)}catch{}},le=(v,D,S)=>{var R;try{(R=v==null?void 0:v.off)==null||R.call(v,D,S)}catch{}};return ce(),Q(U,"camerachange",ie),Q(U,"viewchange",ie),Q(M,"resize",ce),(async()=>{var se;if(M.loaded||await new Promise(J=>{M.once("loaded",()=>J())}),_)return;const v=document.createElement("div");v.className=Y,v.style.position="absolute",v.style.left="0",v.style.top="0",v.style.whiteSpace="nowrap",v.style.pointerEvents="auto",H.current=v;const D=h??((se=U.getMarkerContainer)==null?void 0:se.call(U));if(D)D.appendChild(v);else{console.error("[Marker] getMarkerContainer not available");return}te(U);let S=!1,R={lng:0,lat:0};const B=J=>{var ae;if(!c)return;S=!0,U.setMapStatus({dragEnable:!1,zoomEnable:!1});const re=U.getContainer(),q=(ae=re==null?void 0:re.getClientRects())==null?void 0:ae[0];if(q){const he=q.left,de=q.top,Ce=J.x||J.clientX,xe=J.y||J.clientY;R=U.containerToLngLat([Ce-he,xe-de])}U.on("mousemove",G),document.addEventListener("mouseup",ne),O.current&&O.current(V.current.lng,V.current.lat)},G=J=>{if(!S)return;const re=J.lngLat||J.lnglat,{lng:q,lat:ae}=R,{lng:he,lat:de}=re,Ce={lng:V.current.lng+he-q,lat:V.current.lat+de-ae};V.current=Ce,R=re,te(U),K.current&&K.current(Ce.lng,Ce.lat)},ne=()=>{S&&(S=!1,U.setMapStatus({dragEnable:!0,zoomEnable:!0}),U.off("mousemove",G),document.removeEventListener("mouseup",ne),ee.current&&ee.current(V.current.lng,V.current.lat))};v.addEventListener("click",(J=>{var re;return(re=w.current)==null?void 0:re.call(w,J)})),v.addEventListener("mouseenter",(J=>{var re;return(re=P.current)==null?void 0:re.call(P,J)})),v.addEventListener("mouseleave",(J=>{var re;return(re=$.current)==null?void 0:re.call($,J)})),v.addEventListener("dblclick",(J=>{var re;return(re=j.current)==null?void 0:re.call(j,J)})),c&&v.addEventListener("mousedown",B),m.current={updatePosition:ie,handleDragStart:B,handleDragMove:G,handleDragEnd:ne}})(),()=>{if(_=!0,le(U,"camerachange",ie),le(U,"viewchange",ie),le(M,"resize",ce),m.current&&c&&U.setMapStatus({dragEnable:!0,zoomEnable:!0}),H.current){const D=N.current,S=H.current;N.current=null,H.current=null,queueMicrotask(()=>{D&&D.unmount(),S.parentNode&&S.parentNode.removeChild(S)})}m.current=null}},[M,z,A,I,T,c,h]),u.useEffect(()=>{if(!H.current)return;const _=H.current;mr(X)?_.innerHTML=X:(N.current||(N.current=k0.createRoot(_)),N.current.render(i.jsx(i.Fragment,{children:X})))},[X]),u.useEffect(()=>{H.current&&(H.current.className=Y)},[Y]),u.useEffect(()=>{if(V.current={lng:e,lat:t},M&&H.current){const _=M.mapService;_&&te(_)}},[e,t,M]),null}function Y1({interactions:e}){const t=me(),[n,r]=u.useState(null);u.useEffect(()=>{if(!t)return;const s=()=>{try{const c=t.mapService;if(c&&typeof c.getMarkerContainer=="function"){const d=c.getMarkerContainer();if(d){r(d);return}}}catch{}const a=setTimeout(()=>{try{const c=t.mapService;if(c&&typeof c.getMarkerContainer=="function"){const d=c.getMarkerContainer();d&&r(d)}}catch{}},100);return()=>clearTimeout(a)};return t.loaded?s():(t.on("loaded",s),()=>{t.off("loaded",s)})},[t]);const o=e.filter(s=>s.type==="marker"),l=e.filter(s=>s.type==="popup");return i.jsxs(i.Fragment,{children:[n&&o.map((s,a)=>i.jsx(Oe,{...s,overlayContainer:n},`marker-${a}`)),n&&l.map((s,a)=>i.jsx(qe,{...s,overlayContainer:n},`popup-${a}`))]})}function At({title:e,labels:t,colors:n,swatchShape:r="square",grid:o=!1,className:l,interaction:s}){const[a,c]=u.useState(-1),[d,h]=u.useState(new Set),f=y=>{var C;c(y),(C=s==null?void 0:s.onHover)==null||C.call(s,y)},p=()=>{var y;c(-1),(y=s==null?void 0:s.onHover)==null||y.call(s,-1)},g=y=>{var C;h(b=>{const x=new Set(b);return x.has(y)?x.delete(y):x.add(y),x}),(C=s==null?void 0:s.onToggle)==null||C.call(s,y)};return i.jsxs("div",{className:fe(l),children:[e&&i.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),i.jsx("div",{className:fe("flex flex-col gap-1",o&&"grid grid-cols-2 gap-x-3 gap-y-1"),children:t.map((y,C)=>{const b=a>=0?a!==C:d.has(C);return i.jsxs("div",{className:fe("flex items-center gap-2 rounded px-1 py-0.5 cursor-pointer select-none transition-[background,opacity] duration-150 hover:bg-primary/[0.06]",b&&"opacity-35"),onMouseEnter:()=>f(C),onMouseLeave:p,onClick:()=>g(C),children:[i.jsx("span",{className:fe("size-3 shrink-0 rounded-sm shadow-[inset_0_0_0_1px_rgba(0,0,0,0.08)] transition-opacity duration-150",r==="circle"&&"rounded-full"),style:{backgroundColor:n[C]??"#ccc"}}),i.jsx("span",{className:"text-xs leading-4 text-on-surface truncate",children:y})]},C)})})]})}function Zt({title:e,labels:t,colors:n,isContinuous:r=!1,showTicks:o=!1,brushable:l=!1,className:s,interaction:a}){const[c,d]=u.useState([0,100]),h=u.useRef(null),f=n.join(", "),p=u.useCallback(g=>y=>{y.stopPropagation(),y.preventDefault();const C=h.current;if(!C)return;const b=C.getBoundingClientRect().width,x=L=>{const z=C.getBoundingClientRect(),E=L.clientX-z.left,T=Math.max(0,Math.min(100,E/b*100));d(M=>{var N;let H;return g==="left"?H=[Math.min(T,M[1]-5),M[1]]:H=[M[0],Math.max(T,M[0]+5)],(N=a==null?void 0:a.onBrush)==null||N.call(a,H),H})},k=()=>{document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",k)};document.addEventListener("mousemove",x),document.addEventListener("mouseup",k)},[a,h]);return i.jsxs("div",{className:fe(s),children:[e&&i.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),i.jsxs("div",{className:"flex flex-col gap-1",ref:h,children:[i.jsx("div",{className:fe("flex h-3 rounded overflow-hidden shadow-[inset_0_0_0_1px_rgba(0,0,0,0.06)]",r&&"bg-[length:100%_100%]"),style:r?{background:`linear-gradient(to right, ${f})`}:void 0,children:!r&&n.map((g,y)=>i.jsx("div",{className:"flex-1 relative",style:{backgroundColor:g}},y))}),o&&i.jsx("div",{className:"flex justify-between h-1.5 mt-0.5",children:n.map((g,y)=>y===0?null:i.jsx("div",{className:"w-px h-full bg-outline-variant",style:{position:"absolute",left:`${y/(n.length-1)*100}%`}},y))}),i.jsxs("div",{className:"flex justify-between font-mono text-[11px] leading-3.5 font-[450] text-on-surface-variant",children:[i.jsx("span",{children:t[0]}),t.length>2&&i.jsx("span",{children:t[Math.floor(t.length/2)]}),i.jsx("span",{children:t[t.length-1]})]}),l&&i.jsxs("div",{className:"relative h-3 mt-1 cursor-ew-resize",children:[i.jsx("div",{className:"absolute top-0 h-full border-2 border-primary rounded-sm bg-primary/10 pointer-events-none",style:{left:`${c[0]}%`,width:`${c[1]-c[0]}%`}}),i.jsx("div",{className:"absolute top-1/2 w-2 h-4 bg-primary rounded-sm -translate-x-1/2 -translate-y-1/2 cursor-ew-resize shadow-sm hover:shadow-md hover:shadow-primary/30 transition-shadow duration-150",style:{left:`${c[0]}%`},onMouseDown:p("left")}),i.jsx("div",{className:"absolute top-1/2 w-2 h-4 bg-primary rounded-sm -translate-x-1/2 -translate-y-1/2 cursor-ew-resize shadow-sm hover:shadow-md hover:shadow-primary/30 transition-shadow duration-150",style:{left:`${c[1]}%`},onMouseDown:p("right")})]})]})]})}function Ft({title:e,colors:t,labels:n,middleLabel:r,className:o}){const l=t.join(", ");return i.jsxs("div",{className:fe(o),children:[e&&i.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsxs("div",{style:{position:"relative"},children:[i.jsx("div",{className:"flex h-3 rounded overflow-hidden shadow-[inset_0_0_0_1px_rgba(0,0,0,0.06)]",style:{background:`linear-gradient(to right, ${l})`}}),i.jsx("div",{style:{position:"absolute",top:-4,left:"50%",transform:"translateX(-50%)",width:1,height:20,background:"var(--color-outline-variant, #c3c6d7)"}}),r&&i.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 -bottom-[18px] font-mono text-[11px] text-on-surface-variant whitespace-nowrap",children:r})]}),i.jsxs("div",{className:"flex justify-between font-mono text-[11px] leading-3.5 font-[450] text-on-surface-variant",style:r?{marginBottom:12}:void 0,children:[i.jsx("span",{children:n[0]}),i.jsx("span",{children:n[1]})]})]})]})}function Tt({title:e,ranges:t,colors:n,className:r,interaction:o}){const[l,s]=u.useState(-1),[a,c]=u.useState(new Set),d=p=>{var g;s(p),(g=o==null?void 0:o.onHover)==null||g.call(o,p)},h=()=>{var p;s(-1),(p=o==null?void 0:o.onHover)==null||p.call(o,-1)},f=p=>{var g;c(y=>{const C=new Set(y);return C.has(p)?C.delete(p):C.add(p),C}),(g=o==null?void 0:o.onToggle)==null||g.call(o,p)};return i.jsxs("div",{className:fe(r),children:[e&&i.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),i.jsx("div",{className:"flex flex-col gap-1.5",children:t.map(([p,g],y)=>{const C=l>=0?l!==y:a.has(y);return i.jsxs("div",{className:fe("flex items-center gap-2 cursor-pointer select-none transition-opacity duration-150 hover:opacity-80",C&&"opacity-35"),onMouseEnter:()=>d(y),onMouseLeave:h,onClick:()=>f(y),children:[i.jsx("span",{className:"w-6 h-3 shrink-0 rounded-sm shadow-[inset_0_0_0_1px_rgba(0,0,0,0.06)]",style:{backgroundColor:n[y]??"#ccc"}}),i.jsxs("span",{className:"font-mono text-[11px] leading-3.5 text-on-surface-variant",children:["[",p,", ",g,")"]})]},y)})})]})}function Nt({title:e,fillColor:t="#4A90D9",items:n,className:r}){const o=Math.max(...n.map(l=>l.size),1);return i.jsxs("div",{className:fe(r),children:[e&&i.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsx("div",{className:"flex items-end gap-2 px-1",children:n.map((l,s)=>i.jsx("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-end",height:o},children:i.jsx("div",{className:"rounded-full shrink-0 shadow-[inset_0_0_0_1px_rgba(0,0,0,0.06)]",style:{width:l.size,height:l.size,backgroundColor:t,opacity:.85}})},s))}),i.jsx("div",{className:"flex items-end gap-2 mt-1",children:n.map((l,s)=>i.jsx("span",{className:"font-mono text-[11px] leading-3.5 text-on-surface-variant whitespace-nowrap",children:l.label},s))})]})]})}function It({title:e,color:t="#4A90D9",items:n,className:r,interaction:o}){const[l,s]=u.useState(-1),[a,c]=u.useState(new Set),d=p=>{var g;s(p),(g=o==null?void 0:o.onHover)==null||g.call(o,p)},h=()=>{var p;s(-1),(p=o==null?void 0:o.onHover)==null||p.call(o,-1)},f=p=>{var g;c(y=>{const C=new Set(y);return C.has(p)?C.delete(p):C.add(p),C}),(g=o==null?void 0:o.onToggle)==null||g.call(o,p)};return i.jsxs("div",{className:fe(r),children:[e&&i.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),i.jsx("div",{className:"flex flex-col gap-1.5",children:n.map((p,g)=>{const y=l>=0?l!==g:a.has(g);return i.jsxs("div",{className:fe("flex items-center gap-2.5 py-0.5 cursor-pointer select-none transition-opacity duration-150 hover:opacity-80",y&&"opacity-35"),onMouseEnter:()=>d(g),onMouseLeave:h,onClick:()=>f(g),children:[i.jsx("div",{className:"w-7 shrink-0 rounded-full shadow-[0_0_0_1px_rgba(0,0,0,0.06)]",style:{height:p.width,backgroundColor:t,opacity:.85}}),i.jsx("span",{className:"text-xs leading-4 text-on-surface whitespace-nowrap",children:p.label})]},g)})})]})}function Pt({title:e,labels:t,fillColor:n="#4A90D9",className:r}){return i.jsxs("div",{className:fe(r),children:[e&&i.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsx("div",{className:"flex items-end gap-2 px-1",children:t.map(([s,a],c)=>{const h=6+c/Math.max(t.length-1,1)*18;return i.jsx("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-end",height:24},children:i.jsx("div",{className:"rounded-full shrink-0 shadow-[inset_0_0_0_1px_rgba(0,0,0,0.06)]",style:{width:h,height:h,backgroundColor:n,opacity:.85}})},c)})}),i.jsx("div",{className:"flex items-end gap-2 mt-1",children:t.map(([s,a],c)=>i.jsxs("span",{className:"font-mono text-[11px] leading-3.5 text-on-surface-variant whitespace-nowrap",children:[s,"–",a]},c))})]})]})}function X1(e){return/^(https?:|\/\/|data:)/i.test(e)}function Dt({title:e,items:t,className:n,interaction:r}){const[o,l]=u.useState(-1),[s,a]=u.useState(new Set),c=f=>{var p;l(f),(p=r==null?void 0:r.onHover)==null||p.call(r,f)},d=()=>{var f;l(-1),(f=r==null?void 0:r.onHover)==null||f.call(r,-1)},h=f=>{var p;a(g=>{const y=new Set(g);return y.has(f)?y.delete(f):y.add(f),y}),(p=r==null?void 0:r.onToggle)==null||p.call(r,f)};return i.jsxs("div",{className:fe(n),children:[e&&i.jsx("div",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-on-surface-variant",children:e}),i.jsx("div",{className:"flex flex-col gap-1",children:t.map((f,p)=>{const g=o>=0?o!==p:s.has(p);return i.jsxs("div",{className:fe("flex items-center gap-2 px-1 py-0.5 rounded cursor-pointer select-none transition-[background,opacity] duration-150 hover:bg-primary/[0.06]",g&&"opacity-35"),onMouseEnter:()=>c(p),onMouseLeave:d,onClick:()=>h(p),children:[X1(f.icon)?i.jsx("img",{src:f.icon,alt:f.label,className:"size-5 object-contain shrink-0",onError:y=>{const C=y.target;C.style.display="none";const b=C.nextElementSibling;b&&(b.style.display="flex")}}):i.jsx("span",{className:"size-5 flex items-center justify-center shrink-0 text-base leading-none",children:f.icon}),X1(f.icon)&&i.jsx("span",{className:"size-5 hidden items-center justify-center shrink-0 text-base leading-none text-on-surface-variant",children:"□"}),i.jsx("span",{className:"text-xs leading-4 text-on-surface",children:f.label})]},p)})})]})}function G1({legends:e,className:t,style:n,interaction:r}){return e.length?i.jsx("div",{className:fe("absolute z-20 bottom-6 left-6 max-h-[40%] overflow-y-auto rounded-xl border border-outline-variant/30 bg-surface/80 backdrop-blur-md p-3 px-3.5 text-on-surface shadow-lg scrollbar-thin scrollbar-track-transparent scrollbar-thumb-outline-variant",t),style:n,children:i.jsx("div",{className:"flex flex-col gap-4 [&>*+*]:border-t [&>*+*]:border-outline-variant/20 [&>*+*]:pt-4",children:e.map((o,l)=>i.jsx(Mr,{legend:o,interaction:r},`legend-${l}`))})}):null}function Mr({legend:e,interaction:t}){switch(e.type){case"categories":return i.jsx(At,{...e,interaction:t});case"ramp":return i.jsx(Zt,{...e,interaction:t});case"diverging":return i.jsx(Ft,{...e,interaction:t});case"threshold":return i.jsx(Tt,{...e,interaction:t});case"size":return i.jsx(Nt,{...e,interaction:t});case"lineWidth":return i.jsx(It,{...e,interaction:t});case"proportion":return i.jsx(Pt,{...e,interaction:t});case"icon":return i.jsx(Dt,{...e,interaction:t});default:return null}}const J1=u.createContext({isMobile:!1,breakpoint:768,width:typeof window<"u"?window.innerWidth:1024,schema:void 0});function kr({responsive:e,children:t}){const[n,r]=u.useState(typeof window<"u"?window.innerWidth:1024);u.useEffect(()=>{const a=()=>r(window.innerWidth);return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);const o=(e==null?void 0:e.breakpoint)??768,l=n<o,s=u.useMemo(()=>({isMobile:l,breakpoint:o,width:n,schema:e}),[l,o,n,e]);return i.jsx(J1.Provider,{value:s,children:t})}function K1(){return u.useContext(J1)}function Q1({config:e,className:t}){const n=me(),{items:r,position:o="bottom"}=e,l=c=>{switch(c){case"zoomIn":n==null||n.zoomIn();break;case"zoomOut":n==null||n.zoomOut();break;case"locate":navigator.geolocation&&navigator.geolocation.getCurrentPosition(d=>{n==null||n.setCenter([d.coords.longitude,d.coords.latitude]),n==null||n.setZoom(14)});break;case"reset":n==null||n.setCenter([105,35]),n==null||n.setZoom(4);break}},s={zoomIn:i.jsx("svg",{viewBox:"0 0 24 24",className:"w-6 h-6",fill:"none",stroke:"currentColor",strokeWidth:2,children:i.jsx("path",{d:"M12 5v14m-7-7h14"})}),zoomOut:i.jsx("svg",{viewBox:"0 0 24 24",className:"w-6 h-6",fill:"none",stroke:"currentColor",strokeWidth:2,children:i.jsx("path",{d:"M5 12h14"})}),locate:i.jsxs("svg",{viewBox:"0 0 24 24",className:"w-6 h-6",fill:"none",stroke:"currentColor",strokeWidth:2,children:[i.jsx("circle",{cx:"12",cy:"12",r:"3"}),i.jsx("path",{d:"M12 2v4m0 12v4m10-10h-4M6 12H2"})]}),reset:i.jsxs("svg",{viewBox:"0 0 24 24",className:"w-6 h-6",fill:"none",stroke:"currentColor",strokeWidth:2,children:[i.jsx("path",{d:"M3 12a9 9 0 1 1 3.3 6.9"}),i.jsx("path",{d:"M3 22v-7h7"})]}),layers:i.jsx("svg",{viewBox:"0 0 24 24",className:"w-6 h-6",fill:"none",stroke:"currentColor",strokeWidth:2,children:i.jsx("path",{d:"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"})})},a={zoomIn:"放大",zoomOut:"缩小",locate:"定位",reset:"复位",layers:"图层"};return i.jsx("div",{className:fe("aimapui-mobile-toolbar pointer-events-none",o==="bottom"?"aimapui-mobile-toolbar--bottom":"aimapui-mobile-toolbar--top",t),children:i.jsx("div",{className:"aimapui-mobile-toolbar__bar pointer-events-auto",children:r.map((c,d)=>i.jsxs("button",{onClick:()=>l(c),className:"aimapui-mobile-toolbar__button group",style:{background:"none",border:"none",cursor:"pointer"},"aria-label":a[c]??c,title:a[c]??c,children:[i.jsx("span",{className:"aimapui-mobile-toolbar__icon",children:s[c]}),i.jsx("span",{className:"aimapui-mobile-toolbar__label",children:a[c]??c})]},`${c}-${d}`))})})}function R1({legends:e,className:t,interaction:n}){const[r,o]=u.useState(!1);return e.length?i.jsx("div",{className:fe("aimapui-mobile-sheet-legend",t),children:i.jsxs("div",{className:"aimapui-mobile-sheet-legend__panel",children:[i.jsx("div",{className:"aimapui-mobile-sheet-legend__handle","aria-hidden":"true"}),i.jsxs("button",{onClick:()=>o(!r),className:"aimapui-mobile-sheet-legend__toggle",style:{background:"none",border:"none",cursor:"pointer"},children:[i.jsxs("span",{className:"aimapui-mobile-sheet-legend__toggle-copy",children:[i.jsx("span",{className:"aimapui-mobile-sheet-legend__eyebrow",children:"Legend Panel"}),i.jsxs("span",{className:"aimapui-mobile-sheet-legend__title-row",children:[i.jsx("span",{className:"aimapui-mobile-sheet-legend__title",children:"图例"}),i.jsxs("span",{className:"aimapui-mobile-sheet-legend__badge",children:[e.length," 项"]})]})]}),i.jsx("span",{className:"aimapui-mobile-sheet-legend__chevron-shell","aria-hidden":"true",children:i.jsx("svg",{viewBox:"0 0 24 24",className:fe("aimapui-mobile-sheet-legend__chevron",r&&"aimapui-mobile-sheet-legend__chevron--expanded"),fill:"none",stroke:"currentColor",strokeWidth:2,children:i.jsx("path",{d:"M6 9l6 6 6-6"})})})]}),i.jsx("div",{className:fe("aimapui-mobile-sheet-legend__content custom-scrollbar",r?"aimapui-mobile-sheet-legend__content--expanded":"aimapui-mobile-sheet-legend__content--collapsed"),children:e.map((l,s)=>i.jsx("div",{className:"aimapui-mobile-sheet-legend__section",children:i.jsx(Sr,{legend:l,interaction:n})},`mobile-legend-${s}`))})]})}):null}function Sr({legend:e,interaction:t}){switch(e.type){case"categories":return i.jsx(At,{...e,interaction:t});case"ramp":return i.jsx(Zt,{...e,interaction:t});case"diverging":return i.jsx(Ft,{...e,interaction:t});case"threshold":return i.jsx(Tt,{...e,interaction:t});case"size":return i.jsx(Nt,{...e,interaction:t});case"lineWidth":return i.jsx(It,{...e,interaction:t});case"proportion":return i.jsx(Pt,{...e,interaction:t});case"icon":return i.jsx(Dt,{...e,interaction:t});default:return null}}function zr({map:e,schema:t,theme:n="light",onSceneReady:r,onLayerClick:o,onLayerMouseMove:l,onLayerMouseEnter:s,onLayerMouseLeave:a,onMapMove:c,onMapZoom:d,autoFit:h,events:f,children:p,className:g,style:y}){const C=u.useRef(null),b=u.useMemo(()=>{if(t)return it(Xt(t));const E=e??{basemap:"gaode"};return!E.basemap&&!E.engine&&(E.basemap="gaode"),{map:Vr(E),layers:[],controls:[],interactions:[],legends:[]}},[t,e]),x=!t&&!!e,k=u.useMemo(()=>({onClick:o,onMouseMove:l,onMouseEnter:s,onMouseLeave:a}),[o,l,s,a]),L=u.useMemo(()=>({onMove:c,onZoom:d}),[c,d]),z=u.useCallback(E=>{r==null||r(E)},[r]);return i.jsx(n1,{defaultTheme:n,target:"container",children:i.jsx(Jt,{schema:b,children:i.jsx(e1,{events:f,children:i.jsx(D0,{responsive:b.responsive,children:i.jsx(Er,{schema:b,isComposableMode:x,autoFit:h,onSceneReady:z,layerEventHandlers:k,mapEventHandlers:L,containerRef:C,className:g,style:y,children:p})})})})})}function Hr(){const e=me();return u.useEffect(()=>{if(!e)return;let t=!1,n=null,r=null;const o=new Set,l=()=>{var b,x;if(t)return;const h=((b=e.getLayers)==null?void 0:b.call(e))??[];if(h.length===0)return;let f=1/0,p=1/0,g=-1/0,y=-1/0,C=!1;for(const k of h)try{const L=(x=k.getSource)==null?void 0:x.call(k),z=L==null?void 0:L.extent;if(!z||!Array.isArray(z)||z.length<4)continue;const[E,T,M,H]=z;if(!isFinite(E)||!isFinite(T)||!isFinite(M)||!isFinite(H)||E>=M||T>=H)continue;f=Math.min(f,E),p=Math.min(p,T),g=Math.max(g,M),y=Math.max(y,H),C=!0}catch{}if(!(!C||f>=g||p>=y))try{e.fitBounds([[f,p],[g,y]]),t=!0}catch{}},s=()=>{t||(n&&clearTimeout(n),n=setTimeout(l,200))};let a=0;const c=50,d=()=>{var f;if(t)return;a+=1;const h=((f=e.getLayers)==null?void 0:f.call(e))??[];for(const p of h)o.has(p)||(o.add(p),p.inited&&s(),typeof p.on=="function"&&p.on("inited",s));!t&&a<c&&(r=setTimeout(d,100))};return r=setTimeout(d,100),()=>{n&&clearTimeout(n),r&&clearTimeout(r)}},[e]),null}function Vr(e){return{basemap:e.basemap??(e.engine?void 0:"gaode"),engine:e.engine,token:e.token,style:e.style,center:e.center??[105,35],zoom:e.zoom??4,pitch:e.pitch??0,rotation:e.rotation??0,minZoom:e.minZoom,maxZoom:e.maxZoom,bounds:e.bounds,gestureConfig:e.gestureConfig}}function Er({schema:e,isComposableMode:t,autoFit:n,onSceneReady:r,layerEventHandlers:o,mapEventHandlers:l,containerRef:s,className:a,style:c,children:d}){var b,x;const{isMobile:h}=K1(),[f,p]=u.useState(e.layers??[]),g=u.useMemo(()=>{var L,z;if(t||!h||!((z=(L=e.responsive)==null?void 0:L.mobile)!=null&&z.layers))return e.layers;const k=e.responsive.mobile.layers;if("*"in k){const E=k["*"];return e.layers.map(T=>({...T,...E,id:T.id}))}return e.layers.map(E=>E.id&&k[E.id]?{...E,...k[E.id],id:E.id}:E)},[e.layers,e.responsive,h,t]),y=u.useMemo(()=>{var z,E;const k=e.controls??[];if(!h||!((E=(z=e.responsive)==null?void 0:z.mobile)!=null&&E.controls))return k;const L=e.responsive.mobile.controls;return L.hide?k.filter(T=>!L.hide.includes(T.type)):k},[e.controls,e.responsive,h]),C=u.useCallback((k,L)=>{p(z=>z.map(E=>E.id===k?{...E,visible:L}:E))},[]);return i.jsx("div",{ref:s,className:a??"aimapui-container",style:c??{width:"100%",height:"100%"},children:i.jsxs(l1,{mapSchema:e.map,onSceneReady:r,mapEventHandlers:l,events:e.events,style:{width:"100%",height:"100%"},children:[n&&i.jsx(Hr,{}),!t&&g.length>0&&i.jsx(y1,{layers:g,eventHandlers:o}),!t&&i.jsx(O1,{controls:y,layers:g,onLayerToggle:C,containerRef:s}),!t&&e.interactions&&e.interactions.length>0&&i.jsx(Y1,{interactions:e.interactions}),!t&&(h?e.legends&&e.legends.length>0&&i.jsx(R1,{legends:e.legends}):i.jsx(G1,{legends:e.legends??[]})),!t&&h&&((x=(b=e.responsive)==null?void 0:b.mobile)==null?void 0:x.toolbar)&&i.jsx(Q1,{config:e.responsive.mobile.toolbar}),t?i.jsx(Ar,{children:d}):null]})})}function Ar({children:e}){const{controls:t,others:n}=u.useMemo(()=>{const r=[],o=[];return u.Children.forEach(e,(l,s)=>{u.isValidElement(l)&&we.check(l)?r.push(l):o.push(l)}),{controls:r,others:o}},[e]);return i.jsxs(i.Fragment,{children:[t.length>0&&i.jsx(gt,{children:t}),n]})}function Ye(e,t){if(e===t)return!1;if(e==null||t==null||typeof e!=typeof t||typeof e!="object")return!0;try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return!0}}function Zr(e,t){const n=Ye(e.map,t.map),r=new Map;(e.layers??[]).forEach(b=>{b.id&&r.set(b.id,b)});const o=new Map;(t.layers??[]).forEach(b=>{b.id&&o.set(b.id,b)});const l=[],s=[],a=[];(t.layers??[]).forEach((b,x)=>{const k=b.id??`__index_${x}`;if(!r.has(k))l.push(b);else{const L=r.get(k);Ye(L,b)&&a.push({id:k,prev:L,next:b})}}),(e.layers??[]).forEach((b,x)=>{const k=b.id??`__index_${x}`;o.has(k)||s.push(k)});const c=e.controls??[],d=t.controls??[],h=[],f=[],p=[],g=Math.max(c.length,d.length);for(let b=0;b<g;b++)b>=c.length?h.push(d[b]):b>=d.length?f.push(c[b]):Ye(c[b],d[b])&&p.push({index:b,prev:c[b],next:d[b]});const y=Ye(e.interactions,t.interactions),C=Ye(e.legends,t.legends);return{mapChanged:n,layersAdded:l,layersRemoved:s,layersUpdated:a,controlsAdded:h,controlsRemoved:f,controlsUpdated:p,interactionsChanged:y,legendsChanged:C}}function Fr(e){const t=[];return e.map?t.push(...Tr(e.map)):t.push({path:"map",message:"map is required",severity:"error"}),!e.layers||!Array.isArray(e.layers)?t.push({path:"layers",message:"layers must be an array",severity:"error"}):e.layers.forEach((n,r)=>{t.push(...Nr(n,r))}),e.controls&&(Array.isArray(e.controls)?e.controls.forEach((n,r)=>{n.type||t.push({path:`controls[${r}].type`,message:"control type is required",severity:"error"})}):t.push({path:"controls",message:"controls must be an array",severity:"error"})),e.interactions&&(Array.isArray(e.interactions)?e.interactions.forEach((n,r)=>{(n.type==="marker"||n.type==="popup")&&(typeof n.longitude!="number"||typeof n.latitude!="number")&&t.push({path:`interactions[${r}]`,message:"marker/popup requires longitude and latitude as numbers",severity:"error"})}):t.push({path:"interactions",message:"interactions must be an array",severity:"error"})),e.legends&&(Array.isArray(e.legends)?e.legends.forEach((n,r)=>{n.type||t.push({path:`legends[${r}].type`,message:"legend type is required",severity:"error"})}):t.push({path:"legends",message:"legends must be an array",severity:"error"})),t}function Tr(e){const t=[],n=["gaode","mapbox","maplibre","tianditu","tencent","baidu","google","map"];if(e.basemap&&!n.includes(e.basemap)&&t.push({path:"map.basemap",message:`Invalid basemap "${e.basemap}". Valid values: ${n.join(", ")}`,severity:"error"}),e.center){const[r,o]=e.center;(r<-180||r>180)&&t.push({path:"map.center[0]",message:"Longitude must be between -180 and 180",severity:"error"}),(o<-90||o>90)&&t.push({path:"map.center[1]",message:"Latitude must be between -90 and 90",severity:"error"})}return e.zoom!==void 0&&(e.zoom<0||e.zoom>22)&&t.push({path:"map.zoom",message:"Zoom must be between 0 and 22",severity:"warning"}),e.basemap&&["gaode","mapbox","tianditu","tencent","baidu","google"].includes(e.basemap)&&!e.token&&t.push({path:"map.token",message:`basemap "${e.basemap}" requires a token`,severity:"warning"}),t}function Nr(e,t){const n=[],r=`layers[${t}]`,o=["point","line","polygon","heatmap","raster","image"];return e.type?o.includes(e.type)||n.push({path:`${r}.type`,message:`Invalid layer type "${e.type}". Valid values: ${o.join(", ")}`,severity:"error"}):n.push({path:`${r}.type`,message:"layer type is required",severity:"error"}),e.source===void 0&&e.source,e.colorField&&!e.colorValues&&!e.color&&n.push({path:`${r}.colorValues`,message:"colorField is set but colorValues is not. L7 will use default scale.",severity:"warning"}),e.sizeField&&!e.sizeValues&&e.size===void 0&&n.push({path:`${r}.sizeValues`,message:"sizeField is set but sizeValues is not. L7 will use default scale.",severity:"warning"}),n}const Ir={$schema:"http://json-schema.org/draft-07/schema#",title:"AiMapSchema",description:"Schema-driven React map visualization component configuration",type:"object",required:["map","layers"],properties:{map:{type:"object",required:["basemap"],properties:{basemap:{type:"string",enum:["gaode","mapbox","maplibre","tianditu","tencent","baidu","google","map"],description:"Map base tile provider"},token:{type:"string",description:"API token for the map service"},style:{type:"string",description:"Map style preset (light/dark/normal/darkblue/satellite) or custom URL"},center:{type:"array",items:{type:"number"},minItems:2,maxItems:2,description:"Map center [longitude, latitude], default [105, 35]"},zoom:{type:"number",description:"Map zoom level, default 4"},pitch:{type:"number",description:"Map pitch in degrees, default 0"},rotation:{type:"number",description:"Map rotation in degrees, default 0"},minZoom:{type:"number",description:"Minimum zoom level"},maxZoom:{type:"number",description:"Maximum zoom level"},bounds:{type:"array",items:{type:"array",items:{type:"number"},minItems:2,maxItems:2},minItems:2,maxItems:2,description:"Initial bounds [[swLng, swLat], [neLng, neLat]]"},gestureConfig:{type:"object",properties:{dragPan:{type:"boolean"},pinchZoom:{type:"boolean"},dragRotate:{type:"boolean"}}}}},layers:{type:"array",description:"Array of map layers",items:{type:"object",required:["type","source"],properties:{id:{type:"string",description:"Unique layer ID (auto-generated if omitted)"},type:{type:"string",enum:["point","line","polygon","heatmap","raster","image"],description:"Layer visualization type"},name:{type:"string",description:"Human-readable layer name"},visible:{type:"boolean",default:!0},zIndex:{type:"number",default:0},minZoom:{type:"number"},maxZoom:{type:"number"},autoFit:{type:"boolean",default:!1},source:{description:"GeoJSON, JSON array, or URL string"},sourceType:{type:"string",enum:["geojson","json","csv"]},sourceConfig:{type:"object",properties:{x:{type:"string",description:"Longitude field name"},y:{type:"string",description:"Latitude field name"},x1:{type:"string",description:"End longitude field (for arc lines)"},y1:{type:"string",description:"End latitude field (for arc lines)"},coordinates:{type:"string",description:"Coordinates field"}}},color:{type:"string",description:"Fixed color"},colorField:{type:"string",description:"Field to map color to"},colorValues:{oneOf:[{type:"string",description:"Color palette name"},{type:"array",items:{type:"string"},description:"Array of color values"}]},size:{type:"number",description:"Fixed size"},sizeField:{type:"string",description:"Field to map size to"},sizeValues:{type:"array",items:{type:"number"},description:"Size range [min, max]"},shape:{type:"string",description:"Fixed shape"},shapeField:{type:"string",description:"Field to map shape to"},shapeValues:{type:"array",items:{type:"string"}},style:{type:"object",description:"Additional style properties"},filterField:{type:"string"},filterValues:{type:"array"},animate:{type:"object",properties:{enable:{type:"boolean"},speed:{type:"number"},duration:{type:"number"},trailLength:{type:"number"},repeat:{type:"number"}}},active:{oneOf:[{type:"boolean"},{type:"object",properties:{color:{type:"string"}}}]},select:{oneOf:[{type:"boolean"},{type:"object",properties:{color:{type:"string"}}}]},events:{type:"object",description:"Layer event configuration",properties:{click:{type:"string",description:"Event identifier emitted on click (via EventBus)"},mousemove:{type:"string",description:"Event identifier emitted on mousemove"},mouseenter:{type:"string",description:"Event identifier emitted on mouseenter"},mouseleave:{type:"string",description:"Event identifier emitted on mouseleave"},enablePopup:{type:"boolean",description:"Auto-show popup on click"},popupFields:{type:"array",items:{type:"string"},description:"Fields to show in popup"},popupTemplate:{type:"string",description:"HTML template with {{field}} interpolation"}}}}}},controls:{type:"array",description:"Map control widgets",items:{type:"object",required:["type"],properties:{type:{type:"string",enum:["zoom","scale","fullscreen","geoLocate","mapTheme","mouseLocation","exportImage","layerSwitch"]},position:{type:"string",enum:["topleft","topright","bottomleft","bottomright","topcenter","bottomcenter"]},options:{type:"object"}}}},interactions:{type:"array",description:"Interactive elements (markers, popups, tooltips)",items:{oneOf:[{type:"object",required:["type","longitude","latitude"],properties:{type:{type:"string",const:"marker"},longitude:{type:"number"},latitude:{type:"number"},content:{type:"string"},draggable:{type:"boolean"}}},{type:"object",required:["type","longitude","latitude","content"],properties:{type:{type:"string",const:"popup"},longitude:{type:"number"},latitude:{type:"number"},content:{type:"string"},closeButton:{type:"boolean"}}},{type:"object",required:["type","content"],properties:{type:{type:"string",const:"tooltip"},content:{type:"string"},trigger:{type:"string",enum:["hover","click"]}}}]}},legends:{type:"array",description:"Legend configurations",items:{oneOf:[{type:"object",required:["type","labels","colors"],properties:{type:{type:"string",const:"categories"},title:{type:"string"},labels:{type:"array",items:{type:"string"}},colors:{type:"array",items:{type:"string"}}}},{type:"object",required:["type","labels","colors"],properties:{type:{type:"string",const:"ramp"},title:{type:"string"},labels:{type:"array",items:{type:"string"}},colors:{type:"array",items:{type:"string"}},isContinuous:{type:"boolean"}}},{type:"object",required:["type","labels"],properties:{type:{type:"string",const:"proportion"},title:{type:"string"},labels:{type:"array",items:{type:"array",items:{type:"number"}}},fillColor:{type:"string"}}},{type:"object",required:["type","items"],properties:{type:{type:"string",const:"icon"},title:{type:"string"},items:{type:"array",items:{type:"object",properties:{icon:{type:"string"},label:{type:"string"}}}}}}]}},responsive:{type:"object",properties:{breakpoint:{type:"number",default:768},mobile:{type:"object",properties:{controls:{type:"object",properties:{position:{type:"string"},scale:{type:"number"},hide:{type:"array",items:{type:"string"}}}},legends:{type:"object",properties:{compact:{type:"boolean"},position:{type:"string"}}},toolbar:{type:"object",required:["items","position"],properties:{items:{type:"array",items:{type:"string"}},position:{type:"string",enum:["bottom","top"]}}}}}}},events:{type:"object",description:"Global event identifier mappings for map and interactions",properties:{mapMove:{type:"string",description:"Event identifier for map move"},mapZoom:{type:"string",description:"Event identifier for map zoom"},markerDragEnd:{type:"string",description:"Event identifier for marker drag end"}}}}};function Se({source:e,sourceType:t,sourceConfig:n,onClick:r,onMouseMove:o,onMouseEnter:l,onMouseLeave:s,onLayerCreated:a,...c}){const d=me();if(!d)return null;const h={...c,type:"point",source:e,sourceType:t??"json",sourceConfig:n},f=r||o||l||s?{onClick:r,onMouseMove:o,onMouseEnter:l,onMouseLeave:s}:void 0;return i.jsx(Pe,{schema:h,scene:d,eventHandlers:f,onLayerCreated:a})}function Ve({source:e,sourceType:t,sourceConfig:n,onClick:r,onMouseMove:o,onMouseEnter:l,onMouseLeave:s,onLayerCreated:a,...c}){const d=me();if(!d)return null;const h={...c,type:"line",source:e,sourceType:t??"json",sourceConfig:n},f=r||o||l||s?{onClick:r,onMouseMove:o,onMouseEnter:l,onMouseLeave:s}:void 0;return i.jsx(Pe,{schema:h,scene:d,eventHandlers:f,onLayerCreated:a})}function rt({source:e,sourceType:t,sourceConfig:n,onClick:r,onMouseMove:o,onMouseEnter:l,onMouseLeave:s,onLayerCreated:a,...c}){const d=me();if(!d)return null;const h={...c,type:"polygon",source:e,sourceType:t??"geojson",sourceConfig:n},f=r||o||l||s?{onClick:r,onMouseMove:o,onMouseEnter:l,onMouseLeave:s}:void 0;return i.jsx(Pe,{schema:h,scene:d,eventHandlers:f,onLayerCreated:a})}function e0({source:e,sourceType:t,sourceConfig:n,onClick:r,onMouseMove:o,onMouseEnter:l,onMouseLeave:s,onLayerCreated:a,...c}){const d=me();if(!d)return null;const h={...c,type:"heatmap",source:e,sourceType:t??"json",sourceConfig:n},f=r||o||l||s?{onClick:r,onMouseMove:o,onMouseEnter:l,onMouseLeave:s}:void 0;return i.jsx(Pe,{schema:h,scene:d,eventHandlers:f,onLayerCreated:a})}function t0({source:e,sourceType:t="json",sourceConfig:n,hexSize:r=100,weightField:o="h12",weightMethod:l="sum",onClick:s,onMouseMove:a,style:c,...d}){const h=[{type:"hexagon",size:r,field:o,method:l}];return i.jsx(e0,{...d,source:e,sourceType:t,sourceConfig:{...n,transforms:h},shape:"hexagonColumn",style:{coverage:.8,angle:0,...c??{}},onClick:s,onMouseMove:a})}function n0({source:e,sourceType:t,sourceConfig:n,onClick:r,...o}){const l=me();if(!l)return null;const s={...o,type:"raster",source:e,sourceType:t??"raster",sourceConfig:n},a=r?{onClick:r}:void 0;return i.jsx(Pe,{schema:s,scene:l,eventHandlers:a})}function Pr({source:e,sourceType:t,sourceConfig:n,onClick:r,...o}){const l=me();if(!l)return null;const s={...o,type:"image",source:e,sourceType:t??"image",sourceConfig:n},a=r?{onClick:r}:void 0;return i.jsx(Pe,{schema:s,scene:l,eventHandlers:a})}const Dr=[8,16,32,48,64],ot={primary:"#2563eb",warning:"#f59e0b",error:"#ef4444",success:"#10b981"};function $r({source:e,sourceType:t="geojson",sourceConfig:n,labelField:r="name",labelColor:o="#0b3b8c",labelSize:l=12,showLabel:s=!0,labelOffset:a,sizeDomain:c,bubbleAnchor:d="bottom",labelAnchor:h="top",hoverEffect:f=!0,clickEffect:p=!0,tooltipEffect:g=!0,tooltipFields:y,tooltipTemplate:C,semanticColorField:b,color:x="#2563eb",size:k=16,sizeField:L,sizeValues:z,style:E,active:T,select:M,onClick:H,onMouseMove:N,onMouseEnter:V,onMouseLeave:F,...A}){const I=b??A.colorField,m=A.colorValues??(b?[ot.primary,ot.warning,ot.error,ot.success]:void 0),w=L?z??[...Dr]:z,P={color:"#60a5fa"},$={color:"#1d4ed8"},j=(()=>{const X=A.events;return g?{...X,enablePopup:(X==null?void 0:X.enablePopup)??!0,popupFields:(X==null?void 0:X.popupFields)??y,popupTemplate:(X==null?void 0:X.popupTemplate)??C}:X})(),[O,K]=u.useState(!1);u.useEffect(()=>{const X=requestAnimationFrame(()=>K(!0));return()=>cancelAnimationFrame(X)},[]);const ee=s&&O,Y=L?{sizeField:L,sizeValues:w}:{size:k};return i.jsxs(i.Fragment,{children:[i.jsx(Se,{source:e,sourceType:t,sourceConfig:n,shape:"circle",color:x,colorField:I,colorValues:m,...Y,opacity:.75,active:f?T??P:T,select:p?M??$:M,events:j,zIndex:A.zIndex??0,autoFit:A.autoFit,visible:A.visible,name:A.name??"bubble-circle",onClick:H,onMouseMove:N,onMouseEnter:V,onMouseLeave:F,style:{stroke:x??"#004ac6",strokeWidth:2,strokeOpacity:1,...E??{}}}),ee&&i.jsx(Se,{source:e,sourceType:t,sourceConfig:n,shapeField:r,shapeValues:"text",color:o,size:l,zIndex:(A.zIndex??0)+1,style:{textAnchor:h,textOffset:a??[0,0],stroke:"#fff",strokeWidth:2,textAllowOverlap:!0}})]})}function _r({source:e,sourceType:t="geojson",sourceConfig:n,gridSize:r=60,minClusterSize:o=2,animationDuration:l=300,easing:s="cubic-bezier(0.4, 0, 0.2, 1)",onPointClick:a,onClusterClick:c}){const d=me(),[h,f]=u.useState([]),[p,g]=u.useState(null),[y,C]=u.useState(null),b=u.useRef(null),x=u.useRef(-1),k=u.useMemo(()=>Br(e,t,n),[e,t,n]);u.useEffect(()=>{if(k.length===0){b.current=null,f([]),x.current=-1;return}const M=new S0({radius:r,minPoints:o,maxZoom:20,minZoom:0}),H=k.map(N=>({type:"Feature",properties:{id:N.id,...N.properties},geometry:{type:"Point",coordinates:[N.lng,N.lat]}}));M.load(H),b.current=M,x.current=-1},[k,r,o]);const L=u.useCallback((M,H)=>{try{const N=Math.floor(H.getZoom());if(N===x.current)return;x.current=N;let V=[-180,-90,180,90];try{const I=H.getBounds();I&&(V=[I[0][0],I[0][1],I[1][0],I[1][1]])}catch{}const A=M.getClusters(V,N).map(I=>{const m=I.geometry.coordinates,w=m[0],P=m[1];return I.properties.cluster?{id:`cluster-${I.properties.cluster_id}`,clusterId:I.properties.cluster_id,lng:w,lat:P,pointCount:I.properties.point_count,isCluster:!0,properties:{}}:{id:`point-${I.properties.id}`,clusterId:-1,lng:w,lat:P,pointCount:1,isCluster:!1,properties:I.properties}});f(A),g(null)}catch{}},[]);u.useEffect(()=>{var V,F;if(!d)return;const M=d.mapService,H=()=>{requestAnimationFrame(()=>{const A=b.current;A&&d.loaded&&L(A,d)})};d.loaded?H():d.once("loaded",H);const N=()=>{const A=b.current;A&&L(A,d)};return(V=M==null?void 0:M.on)==null||V.call(M,"camerachange",N),(F=M==null?void 0:M.on)==null||F.call(M,"viewchange",N),()=>{var A,I;d.off("loaded",H),(A=M==null?void 0:M.off)==null||A.call(M,"camerachange",N),(I=M==null?void 0:M.off)==null||I.call(M,"viewchange",N)}},[d,L]);const z=u.useCallback(M=>{if(!d||!M.isCluster)return;let H=[];const N=b.current;N&&(H=N.getLeaves(M.clusterId,1/0)),c==null||c(M,H);try{if(d.getZoom()>=20-.5){g(A=>A===M.id?null:M.id);return}if(H.length>0){const A=H.map($=>$.geometry.coordinates),I=A.map($=>$[0]),m=A.map($=>$[1]),w=[Math.min(...I),Math.min(...m)],P=[Math.max(...I),Math.max(...m)];d.fitBounds([w,P],{padding:[40,40,40,40],duration:l})}}catch{}},[d,c,l]),E=u.useMemo(()=>{if(!d||!p||!b.current)return[];const M=h.find(H=>H.id===p&&H.isCluster);if(!M)return[];try{const H=b.current.getLeaves(M.clusterId,1/0),N=d.mapService;if(!N)return[];const V=N.lngLatToContainer([M.lng,M.lat]);if(!V)return[];const F=H.length,A=Math.max(24,Math.min(72,18+F*2));return H.map((I,m)=>{var O,K;const w=Math.PI*2*m/F-Math.PI/2,P=V.x+Math.cos(w)*A,$=V.y+Math.sin(w)*A,j=N.containerToLngLat([P,$]);return{id:`spider-${M.id}-${((O=I.properties)==null?void 0:O.id)??m}`,lng:j.lng,lat:j.lat,point:{id:String(((K=I.properties)==null?void 0:K.id)??m),lng:I.geometry.coordinates[0],lat:I.geometry.coordinates[1],properties:I.properties??{}}}})}catch{return[]}},[d,p,h]),T=u.useMemo(()=>p?h.find(M=>M.id===p&&M.isCluster)??null:null,[p,h]);return i.jsxs(i.Fragment,{children:[p&&T&&E.map(M=>i.jsx(Oe,{longitude:M.lng,latitude:M.lat,anchor:"center",content:i.jsx(Or,{centerLng:T.lng,centerLat:T.lat,lineLng:M.lng,lineLat:M.lat})},`line-${M.id}`)),h.map(M=>{var F;if(!M.isCluster)return i.jsx(Oe,{longitude:M.lng,latitude:M.lat,anchor:"center",content:i.jsx("div",{title:String(((F=M.properties)==null?void 0:F.name)??"单点"),onClick:()=>{var A;return a==null?void 0:a({id:String(((A=M.properties)==null?void 0:A.id)??""),lng:M.lng,lat:M.lat,properties:M.properties})},style:{width:14,height:14,borderRadius:9999,background:"#2563eb",border:"2px solid #fff",boxShadow:"0 2px 10px rgba(37,99,235,.5), 0 0 0 3px rgba(37,99,235,.15)",transition:"transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.15s cubic-bezier(0.4, 0, 0.2, 1)",cursor:"pointer"}})},M.id);const H=M.pointCount,N=jr(H),V=y===M.id;return i.jsx(Oe,{longitude:M.lng,latitude:M.lat,anchor:"center",content:i.jsxs("div",{title:`包含 ${H} 个要素`,onClick:()=>z(M),onMouseEnter:()=>C(M.id),onMouseLeave:()=>C(A=>A===M.id?null:A),style:{width:N.size,height:N.size,borderRadius:9999,display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontWeight:N.fontWeight,fontSize:N.fontSize,background:N.background,border:N.border,boxShadow:N.shadow,position:"relative",cursor:"pointer",transition:"transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.15s cubic-bezier(0.4, 0, 0.2, 1)",transform:V?"scale(1.1)":"scale(1)"},children:[N.pulse&&i.jsx("span",{style:{position:"absolute",inset:-6,borderRadius:9999,background:"rgba(37,99,235,0.25)",animation:"aimapui-cluster-pulse 1.6s ease-out infinite"}}),i.jsx("span",{style:{position:"relative",zIndex:1},children:H})]})},M.id)}),E.map(M=>{var H;return i.jsx(Oe,{longitude:M.lng,latitude:M.lat,anchor:"center",content:i.jsx("div",{title:String(((H=M.point.properties)==null?void 0:H.name)??M.point.id),onClick:()=>a==null?void 0:a(M.point),style:{width:10,height:10,borderRadius:9999,background:"#fff",border:"2px solid #2563eb",boxShadow:"0 2px 8px rgba(0,0,0,.2)",cursor:"pointer"}})},M.id)})]})}function Or({centerLng:e,centerLat:t,lineLng:n,lineLat:r}){const o=me(),l=u.useRef(null);return u.useEffect(()=>{if(!o)return;const s=o.mapService;if(!s)return;const a=()=>{const h=l.current;if(h)try{const f=s.lngLatToContainer([e,t]),p=s.lngLatToContainer([n,r]);if(!f||!p)return;const g=p.x-f.x,y=p.y-f.y,C=Math.sqrt(g*g+y*y),b=Math.atan2(y,g)*180/Math.PI;h.style.width=`${C}px`,h.style.transform=`rotate(${b}deg)`}catch{}};a();const c=(h,f,p)=>{var g;try{(g=h==null?void 0:h.on)==null||g.call(h,f,p)}catch{}},d=(h,f,p)=>{var g;try{(g=h==null?void 0:h.off)==null||g.call(h,f,p)}catch{}};return c(s,"camerachange",a),c(s,"viewchange",a),()=>{d(s,"camerachange",a),d(s,"viewchange",a)}},[o,e,t,n,r]),i.jsx("div",{ref:l,style:{position:"absolute",left:0,top:0,height:1,background:"rgba(195, 198, 215, 0.5)",transformOrigin:"0 50%",pointerEvents:"none"}})}function jr(e){return e>=1e3?{size:48,fontSize:14,fontWeight:700,background:"linear-gradient(135deg, #2563eb 0%, #1e3a8a 100%)",border:"2px solid rgba(255,255,255,0.55)",shadow:"0 10px 24px rgba(37,99,235,.45)",pulse:!0}:e>=100?{size:40,fontSize:13,fontWeight:700,background:"rgba(37,99,235,0.30)",border:"2px solid rgba(255,255,255,0.5)",shadow:"0 6px 16px rgba(37,99,235,.25)",pulse:!1}:{size:32,fontSize:12,fontWeight:600,background:"radial-gradient(circle, #2563eb 60%, rgba(37,99,235,0.20) 61%)",border:"1px solid rgba(255,255,255,0.55)",shadow:"0 4px 12px rgba(37,99,235,.2)",pulse:!1}}function Br(e,t,n){if(!e)return[];if(t==="geojson"&&typeof e=="object"&&e!==null){const r=e;return(Array.isArray(r.features)?r.features:[]).map((l,s)=>{var d,h,f;const a=l,c=(d=a==null?void 0:a.geometry)==null?void 0:d.coordinates;return!Array.isArray(c)||c.length<2?null:{id:String(((h=a==null?void 0:a.properties)==null?void 0:h.id)??((f=a==null?void 0:a.properties)==null?void 0:f.Id)??s),lng:Number(c[0]),lat:Number(c[1]),properties:(a==null?void 0:a.properties)??{}}}).filter(Boolean)}if(Array.isArray(e)){const r=(n==null?void 0:n.x)??"lng",o=(n==null?void 0:n.y)??"lat";return e.map((l,s)=>{const a=l,c=Number(a[r]),d=Number(a[o]);return Number.isNaN(c)||Number.isNaN(d)?null:{id:String(a.id??s),lng:c,lat:d,properties:a}}).filter(Boolean)}return[]}const Wr=["#dbeafe","#93c5fd","#60a5fa","#3b82f6","#2563eb"],Ur=["#dc2626","#fca5a5","#e5e7eb","#86efac","#16a34a"],qr=["#2563eb","#f59e0b","#ef4444","#10b981","#8b5cf6","#14b8a6","#f97316","#64748b"];function Yr({source:e,sourceType:t="geojson",colorMapping:n="sequential",showStroke:r=!0,strokeColor:o="rgba(255,255,255,0.30)",strokeWidth:l=.5,hoverEffect:s=!0,clickEffect:a=!0,stickySelection:c=!0,tooltipEffect:d=!0,tooltipFields:h,tooltipTemplate:f,regionIdField:p="name",highlightStrokeColor:g="#2563eb",highlightStrokeWidth:y=2,zoomToRegionOnClick:C=!0,clickZoomPadding:b=40,clickZoomDelta:x=1.2,onRegionClick:k,onDrilldown:L,onLayerCreated:z,showLabel:E=!1,labelField:T="name",labelColor:M="#0f172a",labelSize:H=11,labelAreaThreshold:N=5e-5,labelHaloWidth:V=2,minLabelZoom:F,valueField:A,percentageField:I,nameField:m,color:w,colorField:P,colorValues:$,active:j,select:O,events:K,style:ee,...Y}){const X=me(),[te,_]=u.useState(null),[U,ce]=u.useState(null),[ie,Q]=u.useState(()=>{if(!X)return 0;try{return X.getZoom()}catch{return 0}});u.useEffect(()=>{if(!X)return;const q=()=>{try{Q(X.getZoom())}catch{}};return q(),X.on("zoomchange",q),()=>{X.off("zoomchange",q)}},[X]);const le=F===void 0||ie>=F,Z=u.useMemo(()=>{if($)return $;switch(n){case"diverging":return[...Ur];case"categorical":return[...qr];case"sequential":default:return[...Wr]}},[$,n]),v=A??P??"value",D=m??T,S=u.useMemo(()=>f??Xr(D,v,I),[f,D,v,I]),R={color:"#ffffff"},B={color:"#0f172a"},G=u.useMemo(()=>Gr(e,t,T,p,N),[e,t,T,p,N]),ne=u.useCallback(q=>{k==null||k(q);const ae=o0(q.feature,p);if(ae!==null&&a&&ce(de=>!c&&de===ae?null:ae),q.feature&&(L==null||L(q.feature)),!X||!C)return;const he=Number.isFinite(q.lng)&&Number.isFinite(q.lat)?[q.lng,q.lat]:Kr(q.originalEvent);if(he)try{const de=X.getZoom(),Ce=Math.abs(x);X.setCenter(he),X.setZoom(de+Ce)}catch{}},[k,p,a,c,L,X,C,x]),se=u.useCallback(q=>{if(!s)return;const ae=o0(q.feature,p);_(ae)},[s,p]),J=u.useCallback(()=>{s&&_(null)},[s]),re=u.useMemo(()=>{const q=K;return d?{...q,enablePopup:(q==null?void 0:q.enablePopup)??!0,popupTrigger:(q==null?void 0:q.popupTrigger)??"hover",popupFields:(q==null?void 0:q.popupFields)??h,popupTemplate:(q==null?void 0:q.popupTemplate)??S}:q},[K,d,h,S]);return i.jsxs(i.Fragment,{children:[i.jsx(rt,{...Y,source:e,sourceType:t,shape:Y.shape??"fill",color:w??"#2563eb",colorField:P,colorValues:Z,active:s?j??R:j,select:a?O??B:O,events:re,onClick:ne,onMouseEnter:se,onMouseLeave:J,onLayerCreated:z,style:{opacity:.8,...ee??{}}}),r&&i.jsx(Ve,{source:e,sourceType:t,color:o,size:l,zIndex:2}),s&&te!==null&&i.jsxs(i.Fragment,{children:[i.jsx(Ve,{source:e,sourceType:t,color:r0(g,.35),size:y+2,filterField:p,filterValues:[te],zIndex:3}),i.jsx(Ve,{source:e,sourceType:t,color:g,size:y,filterField:p,filterValues:[te],zIndex:4})]}),a&&U!==null&&i.jsx(Ve,{source:e,sourceType:t,color:r0(g,.9),size:Math.max(1.5,y),filterField:p,filterValues:[U],zIndex:5}),E&&le&&i.jsx(Se,{source:G.data,sourceType:G.sourceType,sourceConfig:G.sourceConfig,shapeField:T,shapeValues:"text",color:M,size:H,style:{textAllowOverlap:!1,stroke:"#ffffff",strokeWidth:V,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace"}})]})}function Xr(e,t,n){const r=n?`<tr><td style="padding-right:8px;color:#64748b">占比</td><td style="font-weight:600">{{${n}}}%</td></tr>`:"";return['<div style="min-width:160px">',`<div style="font-weight:700;margin-bottom:6px">{{${e}}}</div>`,'<table style="font-size:12px;line-height:1.4">',`<tr><td style="padding-right:8px;color:#64748b">指标</td><td style="font-weight:600">{{${t}}}</td></tr>`,r,"</table>","</div>"].join("")}function r0(e,t){if(e.startsWith("#")){const n=e.replace("#",""),r=n.length===3?`${n[0]}${n[0]}${n[1]}${n[1]}${n[2]}${n[2]}`:n;if(r.length===6){const o=parseInt(r.slice(0,2),16),l=parseInt(r.slice(2,4),16),s=parseInt(r.slice(4,6),16);return`rgba(${o},${l},${s},${t})`}}return e}function o0(e,t){if(!e)return null;const n=e[t]??e.id??e.name;return typeof n=="string"||typeof n=="number"?n:null}function Gr(e,t,n,r,o){return t!=="geojson"||!Jr(e)?{data:e,sourceType:t}:{data:e.features.map(s=>{if(!s||!s.geometry||!s.properties)return null;const a=s0(s.geometry),c=Rr(s.geometry);if(!a||c<o)return null;const d=s.properties;return{lng:a[0],lat:a[1],[n]:d[n],[r]:d[r]}}).filter(s=>s!==null),sourceType:"json",sourceConfig:{x:"lng",y:"lat"}}}function Jr(e){if(!e||typeof e!="object")return!1;const t=e;return t.type==="FeatureCollection"&&Array.isArray(t.features)}function Kr(e){const t=Qr(e);return t?s0(t):null}function Qr(e){var n,r;const t=e;return((n=t==null?void 0:t.feature)==null?void 0:n.geometry)??((r=t==null?void 0:t.data)==null?void 0:r.geometry)??null}function s0(e){if(e.type==="Polygon")return i0(e.coordinates[0]);if(e.type==="MultiPolygon"){let t=0,n=null;return e.coordinates.forEach(r=>{const o=r[0],l=Math.abs($t(o));l>t&&(t=l,n=i0(o))}),n}return null}function Rr(e){return e.type==="Polygon"?Math.abs($t(e.coordinates[0])):e.type==="MultiPolygon"?e.coordinates.reduce((t,n)=>t+Math.abs($t(n[0])),0):0}function i0(e){if(!e||e.length<3)return null;let t=0,n=0,r=0;for(let l=0;l<e.length-1;l+=1){const[s,a]=e[l],[c,d]=e[l+1],h=s*d-c*a;t+=h,n+=(s+c)*h,r+=(a+d)*h}const o=t/2;if(Math.abs(o)<1e-12){const l=e[0];return l?[l[0],l[1]]:null}return[n/(6*o),r/(6*o)]}function $t(e){if(!e||e.length<3)return 0;let t=0;for(let n=0;n<e.length-1;n+=1){const[r,o]=e[n],[l,s]=e[n+1];t+=r*s-l*o}return t/2}const l0=["#eff6ff","#bfdbfe","#60a5fa","#2563eb","#1d4ed8","#1e3a8a"],a0="https://mdn.alipayobjects.com/antforest/afts/file/A*T2OJQ7XZzeEAAAAAgCAAAAgAerd2AQ/original_中国_省.json",c0="https://mdn.alipayobjects.com/antforest/afts/file/A*Xd8TQoduwj8AAAAAgEAAAAgAerd2AQ/original_中国_市.json",u0="https://mdn.alipayobjects.com/portal_moelhz/afts/file/A*Rb96Tac1p8EAAAAAgKAAAAgAegAAAQ",eo=u.forwardRef(function(t,n){const{provinceSource:r=a0,citySource:o=c0,districtSource:l=u0,level:s="province",drillEnabled:a=!0,drillPath:c,onDrill:d,onDrillUp:h,autoFitOnDrill:f=!0,data:p,joinField:g="name",dataJoinField:y="name",valueField:C="value",colors:b=[...l0],fillOpacity:x=.8,strokeColor:k="rgba(255,255,255,0.5)",strokeWidth:L=1.5,dimOpacity:z=.12,showLabel:E=!0,labelField:T="name",labelSize:M=12,hoverHighlight:H=!0,clickSelect:N=!0,showTooltip:V=!0,tooltipFields:F,onRegionClick:A,zIndex:I=0}=t,m=me(),[w,P]=u.useState(null),[$,j]=u.useState(null),[O,K]=u.useState(null),[ee,Y]=u.useState(null),[X,te]=u.useState([{level:"province",name:"中国"}]),_=c??X,U=a?no(_):s,ce=u.useCallback(()=>{if(_.length<=1)return;const J=_.slice(0,-1);c?h==null||h(J):(te(J),h==null||h(J),d==null||d(J)),le(null)},[_,c,h,d]),ie=u.useCallback(J=>{if(J<0||J>=_.length-1)return;const re=_.slice(0,J+1);c?h==null||h(re):(te(re),h==null||h(re),d==null||d(re)),le(null)},[_,c,h,d]),[Q,le]=u.useState(null);u.useImperativeHandle(n,()=>({drillUp:ce,drillUpTo:ie,getDrillPath:()=>_}),[ce,ie,_]);const Z=u.useRef(_.length);u.useEffect(()=>{_t(r,P,Y)},[r]),u.useEffect(()=>{o&&_t(o,j)},[o]),u.useEffect(()=>{l&&_t(l,K)},[l]);const v=u.useMemo(()=>{switch(U){case"city":return $;case"district":return O;default:return w}},[U,w,$,O]),D=u.useMemo(()=>!v||!p||p.length===0?v:lo(v,p,g,y,C),[v,p,g,y,C]),S=u.useMemo(()=>{if(!a||_.length<=1)return D;if(!D)return null;const J=_[_.length-1];return!J.adcode&&!J.name?D:co(D,J)},[a,_,D,g]),R=u.useMemo(()=>!a||_.length<=1?null:(_.length===2?w:$)??null,[a,_,w,$]);u.useMemo(()=>`<div style="min-width:140px"><table style="font-size:12px;line-height:1.6">${(F??[T,C]).map(q=>`<tr><td style="padding-right:8px;color:#64748b">${q}</td><td style="font-weight:600">{{${q}}}</td></tr>`).join("")}</table></div>`,[F,T,C]);const B=!!(p&&p.length>0),G=u.useMemo(()=>D?S??D:null,[S,D]),ne=U==="province"?L:L*.6;u.useEffect(()=>{if(!(!f||!m||!G||Z.current===_.length)){Z.current=_.length;try{const re=fo(G);re&&m.fitBounds(re,{padding:[40,40,40,40]})}catch{}}},[f,m,G,_.length]);const se=u.useCallback(J=>{const re=J.feature;if(!re)return;const q=String(re[T]??re.name??""),ae=re.adcode??re.gb;if(A==null||A(re,U),N&&le(he=>he===q?null:q),a&&ro(U)){const he=[..._,{level:U,name:q,adcode:ae}];c||te(he),d==null||d(he),le(null)}},[T,U,N,a,_,c,d,A]);return!m||!G?null:i.jsxs(i.Fragment,{children:[a&&R&&_.length>1&&i.jsxs(i.Fragment,{children:[i.jsx(rt,{source:R,sourceType:"geojson",shape:"fill",color:"#94a3b8",style:{opacity:z},zIndex:I}),i.jsx(Ve,{source:R,sourceType:"geojson",color:"rgba(148,163,184,0.2)",size:.5,zIndex:I+1})]}),i.jsx(rt,{source:G,sourceType:"geojson",shape:"fill",...B?{colorField:C,colorValues:b}:{color:b[2]??"#3b82f6"},active:H?{color:"#ffffff"}:void 0,select:N?{color:"#0f172a"}:void 0,style:{opacity:x},onClick:se,zIndex:I+2}),i.jsx(Ve,{source:G,sourceType:"geojson",color:k,size:ne,zIndex:I+3}),ee&&U==="province"&&_.length<=1&&i.jsx(Ve,{source:ee,sourceType:"geojson",color:"#94a3b8",size:1,zIndex:I+3}),E&&G&&i.jsx(to,{geoData:G,labelField:T,labelSize:M,zIndex:I+4})]})});function to({geoData:e,labelField:t,labelSize:n,zIndex:r}){const o=u.useMemo(()=>uo(e,t),[e,t]);return!o||o.data.length===0?null:i.jsx(Se,{source:o.data,sourceType:o.sourceType,sourceConfig:o.sourceConfig,shapeField:t,shapeValues:"text",color:"#0f172a",size:n,style:{textAllowOverlap:!1,stroke:"#ffffff",strokeWidth:2,fontFamily:"PingFang SC, Microsoft YaHei, sans-serif"},zIndex:r})}function no(e){return e.length<=1?"province":e.length===2?"city":"district"}function ro(e){return e!=="district"}const oo=new Set(["境界线","边界线","九段线","十段线"]);function so(e){var n,r,o;const t=(n=e.properties)==null?void 0:n.name;if(typeof t!="string")return!1;if(t==="九段线"||t==="十段线")return!0;if(t==="境界线"){const l=(r=e.geometry)==null?void 0:r.type;if(l!=="MultiLineString"&&l!=="LineString")return!1;const s=(o=e.geometry)==null?void 0:o.coordinates;if(!s)return!1;const a=l==="MultiLineString"?s.flat():s;if(Math.min(...a.map(d=>d[1]))<10)return!0}return!1}function io(e){var r,o;const t=(r=e.properties)==null?void 0:r.name;if(!t||typeof t!="string"||oo.has(t))return!1;const n=(o=e.geometry)==null?void 0:o.type;return!(n==="LineString"||n==="MultiLineString")}function d0(e){const t=[],n=[];for(const r of e.features)so(r)?n.push(r):io(r)&&t.push(r);return{admin:{type:"FeatureCollection",features:t},dashLine:n.length>0?{type:"FeatureCollection",features:n}:null}}function _t(e,t,n){if(typeof e=="string")fetch(e).then(r=>r.json()).then(r=>{if(r&&r.type==="FeatureCollection"){const o=d0(r);t(o.admin),n==null||n(o.dashLine)}}).catch(()=>{});else if(e&&e.type==="FeatureCollection"){const r=d0(e);t(r.admin),n==null||n(r.dashLine)}}function lo(e,t,n,r,o){const l=new Map;for(const a of t){const c=String(a[r]??"");c&&l.set(c,a)}return{type:"FeatureCollection",features:e.features.map(a=>{const c=String(a.properties[n]??""),d=l.get(c),h=d?d[o]??d.value??0:0;return{...a,properties:{...a.properties,...d??{},[o]:h}}})}}function h0(e){const t=String(e);return t.startsWith("156")&&t.length>=9?t.slice(3):t}const ao=["省","市","自治区","特别行政区","壮族","回族","维吾尔","藏族","彝族","苗","侗","瑶","白","哈尼","傣","傈僳","佤","畲","拉祜","水","景颇","土家","羌","毛南","仫佬","布朗","撒拉","裕固","塔吉克","柯尔克孜","锡伯","达斡尔","鄂温克","鄂伦春","赫哲","德昂","门巴","珞巴","基诺","怒","保安","京","独龙","仡佬","阿昌","普米"];function Ot(e){let t=e;for(const n of ao)if(t.endsWith(n)){t=t.slice(0,-n.length);break}return t}function co(e,t,n){const r=t.name,o=t.adcode,s=t.level==="province"?2:4;return{type:"FeatureCollection",features:e.features.filter(c=>{const d=c.properties;if(d.parent&&String(d.parent)===r||d.parentName&&String(d.parentName)===r)return!0;const h=d.adcode??d.gb;if(o&&h){const p=h0(String(o)),g=h0(String(h));if(g.length>=s&&g.slice(0,s)===p.slice(0,s)&&g!==p)return!0}const f=Ot(r);return!!(d.province&&(String(d.province)===r||Ot(String(d.province))===f)||d.city&&(String(d.city)===r||Ot(String(d.city))===f))})}}function uo(e,t){const n=[];for(const r of e.features){if(!r.geometry||!r.properties)continue;const o=ho(r.geometry);o&&n.push({lng:o[0],lat:o[1],[t]:r.properties[t]??r.properties.name??""})}return n.length===0?null:{data:n,sourceType:"json",sourceConfig:{x:"lng",y:"lat"}}}function ho(e){const t=e.type,n=e.coordinates;if(!n)return null;if(t==="Point")return n;if(t==="Polygon")return p0(n);if(t==="MultiPolygon"){const r=n;let o=0,l=null;for(const s of r){const a=Math.abs(po(s[0]));a>o&&(o=a,l=p0(s))}return l}return null}function p0(e){const t=e[0];if(!t||t.length===0)return null;let n=0,r=0;const o=t.length;for(const l of t)n+=l[0],r+=l[1];return[n/o,r/o]}function po(e){let t=0;const n=e.length;for(let r=0;r<n;r++){const o=(r+1)%n;t+=e[r][0]*e[o][1],t-=e[o][0]*e[r][1]}return t/2}function fo(e){let t=1/0,n=1/0,r=-1/0,o=-1/0;for(const l of e.features)go(l.geometry,(s,a)=>{s<t&&(t=s),a<n&&(n=a),s>r&&(r=s),a>o&&(o=a)});return!isFinite(t)||!isFinite(n)?null:[[t,n],[r,o]]}function go(e,t){const n=e.type,r=e.coordinates;if(r){if(n==="Point"){const[o,l]=r;t(o,l)}else if(n==="LineString"||n==="MultiPoint")for(const[o,l]of r)t(o,l);else if(n==="Polygon"||n==="MultiLineString")for(const o of r)for(const[l,s]of o)t(l,s);else if(n==="MultiPolygon")for(const o of r)for(const l of o)for(const[s,a]of l)t(s,a)}}const yo=[["sunny","&#xe81a;"],["cloud","&#xf15c;"],["cloudy","&#xf15c;"],["partly_cloudy_day","&#xf172;"],["partly_cloudy_night","&#xf174;"],["rainy","&#xf176;"],["rainy_heavy","&#xf61f;"],["rainy_light","&#xf61e;"],["rainy_snow","&#xf61d;"],["thunderstorm","&#xebdb;"],["foggy","&#xe818;"],["air","&#xefd8;"],["water_drop","&#xe798;"],["ac_unit","&#xeb3b;"],["filter_drama","&#xe3dd;"],["cloudy_snowing","&#xe810;"],["snowing","&#xe80f;"],["snowflake","&#xed5b;"],["severe_cold","&#xebd3;"],["umbrella","&#xf1ad;"],["storm","&#xf070;"],["tornado","&#xe199;"],["thermostat","&#xf076;"],["heat","&#xf537;"],["hot","&#xef23;"],["flight","&#xe539;"],["flight_takeoff","&#xe905;"],["flight_land","&#xe904;"],["train","&#xe570;"],["directions_transit","&#xeffa;"],["directions_railway","&#xeff8;"],["directions_bus","&#xeff6;"],["directions_car","&#xeff7;"],["directions_boat","&#xeff5;"],["directions_bike","&#xe52f;"],["directions_walk","&#xe536;"],["directions_run","&#xe566;"],["taxi","&#xe559;"],["local_taxi","&#xe559;"],["local_airport","&#xe53d;"],["connecting_airports","&#xe7c9;"],["two_wheeler","&#xe9f9;"],["tram","&#xe571;"],["subway","&#xe56f;"],["ferry","&#xe572;"],["cable_car","&#xf479;"],["ev_station","&#xe56d;"],["local_gas_station","&#xe546;"],["location_on","&#xf1db;"],["place","&#xf1db;"],["room","&#xf1db;"],["pin","&#xf045;"],["pin_drop","&#xe55e;"],["near_me","&#xe569;"],["my_location","&#xe55c;"],["gps_fixed","&#xe55c;"],["navigation","&#xe55d;"],["explore","&#xe87a;"],["map","&#xe55b;"],["restaurant","&#xe56c;"],["local_cafe","&#xeb44;"],["coffee","&#xefef;"],["local_bar","&#xe540;"],["hotel","&#xe549;"],["local_hospital","&#xe548;"],["local_pharmacy","&#xe550;"],["local_atm","&#xe53e;"],["local_police","&#xef56;"],["local_fire_department","&#xef55;"],["local_post_office","&#xe554;"],["local_library","&#xe54b;"],["local_mall","&#xe54c;"],["local_grocery_store","&#xe8cc;"],["store","&#xe8d1;"],["school","&#xe80c;"],["church","&#xeaae;"],["mosque","&#xeab2;"],["synagogue","&#xeab0;"],["temple_buddhist","&#xeab3;"],["temple_hindu","&#xeaaf;"],["museum","&#xea36;"],["castle","&#xeab1;"],["stadium","&#xeb90;"],["theater_comedy","&#xea66;"],["pool","&#xeb48;"],["fitness_center","&#xeb43;"],["spa","&#xeb4c;"],["park","&#xea63;"],["forest","&#xea99;"],["attractions","&#xea52;"],["celebration","&#xea65;"],["festival","&#xea68;"],["nightlife","&#xea62;"],["sports","&#xea30;"],["sports_soccer","&#xea2f;"],["sports_basketball","&#xea26;"],["sports_football","&#xea29;"],["sports_tennis","&#xea32;"],["sports_golf","&#xea2a;"],["layers","&#xe53b;"],["layers_clear","&#xe53c;"],["terrain","&#xe564;"],["landscape","&#xe564;"],["share","&#xe80d;"],["favorite","&#xe87e;"],["star","&#xf09a;"],["home","&#xe9b2;"],["work","&#xe943;"],["person","&#xf0d3;"],["people","&#xea21;"],["trip","&#xe6fb;"],["warning","&#xf083;"],["emergency","&#xe1eb;"],["photo_camera","&#xe412;"],["shopping_bag","&#xf1cc;"],["search","&#xe8b6;"],["settings","&#xe8b8;"],["info","&#xe88e;"],["help","&#xe8fd;"],["close","&#xe5cd;"],["check","&#xe876;"],["add","&#xe145;"],["remove","&#xe15b;"],["edit","&#xe254;"],["delete","&#xe872;"],["refresh","&#xe5d5;"],["download","&#xe2c4;"],["upload","&#xe2c3;"],["visibility","&#xe8f4;"],["visibility_off","&#xe8f6;"]],f0="Material Symbols Outlined",mo="https://fonts.gstatic.com/s/materialsymbolsoutlined/v261/kJEhBvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oFsI.woff2",Co="M16 0C7.16344 0 0 7.16344 0 16C0 24.8366 16 40 16 40C16 40 32 24.8366 32 16C32 7.16344 24.8366 0 16 0Z";function vo(e){const t=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 40"><path d="${Co}" fill="${e}" stroke="white" stroke-width="1.5"/></svg>`;return`data:image/svg+xml,${encodeURIComponent(t)}`}function bo({source:e,sourceType:t="json",sourceConfig:n,iconField:r,iconFontFamily:o="material-symbols",iconFontPath:l,iconFontMap:s,iconColor:a="#3b82f6",iconSize:c=20,iconHaloColor:d="#fff",iconHaloWidth:h=1,iconStyle:f,iconAnchor:p="center",iconBgShape:g="pin",iconBgShapeColor:y,iconBgShapeSize:C=24,iconBgStrokeColor:b,iconBgStrokeWidth:x=0,iconBgPadding:k=0,iconBgCornerRadius:L=0,showLabel:z=!0,labelField:E,labelColor:T="#333",labelSize:M=11,labelAnchor:H="top",labelOffset:N=[0,0],labelHaloColor:V="#fff",labelHaloWidth:F=2,labelStyle:A,textAllowOverlap:I=!1,iconAllowOverlap:m=!0,zoomAdaption:w=!0,zoomShowLabel:P=14,zoomDegradeToPoint:$=10,onClick:j,onMouseEnter:O,onMouseLeave:K,...ee}){const Y=me(),[X,te]=u.useState(!1),[_,U]=u.useState(!1),[ce,ie]=u.useState(!1),[Q,le]=u.useState(14),Z=u.useRef(!1);u.useEffect(()=>{if(!Y||g!=="pin"||!y)return;const ne=vo(y);Y.addImage("glyph-pin-bg",ne),ie(!0)},[Y,g,y]);const{fontFamily:v,fontPath:D,iconMappings:S}=u.useMemo(()=>{switch(o){case"material-symbols":return{fontFamily:f0,fontPath:mo,iconMappings:yo};default:return{fontFamily:o,fontPath:l??null,iconMappings:s??[]}}},[o,l,s]);if(u.useEffect(()=>{if(!Y||Z.current)return;Z.current=!0;let ne=!1;return(async()=>{D&&Y.addFontFace(v,D),S.length>0&&Y.addIconFonts(S);try{if(v===f0){const J=S.slice(0,10).map(([,re])=>String.fromCharCode(parseInt(re.replace("&#x","").replace(";",""),16))).join("");await document.fonts.load(`${c}px "${v}"`,J)}else D&&await new Promise(J=>{const re=setTimeout(()=>{J()},3e3),q=()=>{clearTimeout(re),Y.off("fontloaded",q),J()};Y.on("fontloaded",q),document.fonts.load(`${c}px "${v}"`).then(()=>{clearTimeout(re),Y.off("fontloaded",q),J()}).catch(()=>{clearTimeout(re),Y.off("fontloaded",q),J()})})}catch{console.warn(`[GlyphLayer] 字体 "${v}" 加载超时,尝试继续渲染`)}try{const re=`${c}px "${v}"`;document.fonts.check(re,"X")||await document.fonts.ready}catch{}ne||te(!0)})(),()=>{ne=!0}},[Y,v,D,S,c]),u.useEffect(()=>{if(!Y)return;const ne=()=>U(!0);return Y.loaded?ne():Y.on("loaded",ne),()=>{Y.off("loaded",ne)}},[Y]),u.useEffect(()=>{if(!Y||!w)return;const ne=()=>{le(Y.getZoom())};return ne(),Y.on("zoomchange",ne),()=>{Y.off("zoomchange",ne)}},[Y,w]),!X||!_||g==="pin"&&y&&!ce)return null;const R=E??r,B=!w||Q>=P;return w&&Q<$?i.jsx(Se,{source:e,sourceType:t,sourceConfig:n,shape:"circle",color:typeof a=="string"?a:"#3b82f6",size:4,style:{opacity:.7}}):i.jsxs(i.Fragment,{children:[i.jsx(Se,{...ee,source:e,sourceType:t,sourceConfig:n,shapeField:r,shapeValues:"text",color:a,size:c,style:{fontFamily:v,iconfont:!0,textAllowOverlap:m,textAnchor:p,backgroundColor:y,backgroundPadding:k,backgroundRadius:L,backgroundShape:g==="pin"?void 0:"circle",stroke:b,strokeWidth:x,...f??{}},onClick:j,onMouseEnter:O,onMouseLeave:K}),z&&B&&i.jsx(Se,{source:e,sourceType:t,sourceConfig:n,shapeField:R,shapeValues:"text",color:T,size:M,style:{textAnchor:H,textOffset:N,stroke:V,strokeWidth:F,fontWeight:"500",textAllowOverlap:I,...A??{}}})]})}function g0({source:e,sourceType:t="json",sourceConfig:n,iconField:r,iconMap:o,iconSize:l=24,iconAnchor:s="bottom",size:a,showLabel:c=!0,labelField:d,labelColor:h="#333",labelSize:f=12,labelAnchor:p="top",labelOffset:g=[0,0],labelHaloColor:y="#fff",labelHaloWidth:C=2,labelStyle:b,textAllowOverlap:x=!1,iconAllowOverlap:k=!0,zoomAdaption:L=!0,zoomShowLabel:z=15,zoomDegradeToPoint:E=10,onClick:T,onMouseEnter:M,onMouseLeave:H,...N}){const V=me(),[F,A]=u.useState(!1),[I,m]=u.useState(15),w=u.useMemo(()=>Object.keys(o),[o]),P=a??l,$=d??r;if(u.useEffect(()=>{V&&(w.forEach(K=>{V.addImage(K,o[K])}),A(!0))},[V,w,o]),u.useEffect(()=>{if(!V||!L)return;const K=()=>{m(V.getZoom())};return K(),V.on("zoomchange",K),()=>{V.off("zoomchange",K)}},[V,L]),!F)return null;const j=!L||I>=z;return L&&I<E?i.jsx(Se,{source:e,sourceType:t,sourceConfig:n,shape:"circle",color:N.color??"#3b82f6",size:6,style:{opacity:.8}}):i.jsxs(i.Fragment,{children:[i.jsx(Se,{source:e,sourceType:t,sourceConfig:n,shapeField:r,shapeValues:w,size:P,style:{...N.style??{},anchor:s,allowOverlap:k},onClick:T,onMouseEnter:M,onMouseLeave:H}),c&&j&&i.jsx(Se,{source:e,sourceType:t,sourceConfig:n,shapeField:$,shapeValues:"text",color:h,size:f,style:{textAnchor:p,textOffset:g,stroke:y,strokeWidth:C,fontWeight:"500",textAllowOverlap:x,...b??{}}})]})}const Lo={gaode:()=>"https://webst0{1-4}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",google:()=>"https://gwxc.shipxy.com/tile.g?z={z}&x={x}&y={y}",tianditu:(e="4043dde46add842282bacc412299311d")=>`https://t{0-7}.tianditu.gov.cn/DataServer?T=img_w&X={x}&Y={y}&L={z}&tk=${e}`},xo={gaode:"高德卫星",tianditu:"天地图卫星",google:"谷歌卫星"};function wo({provider:e="gaode",zIndex:t=0,opacity:n=1,tiandituToken:r,visible:o=!0}){if(!o)return null;const l=Lo[e](r);return i.jsx(n0,{source:l,sourceType:"rasterTile",sourceConfig:{parser:{type:"rasterTile",tileSize:256,zoomOffset:1}},zIndex:t,opacity:n})}function Mo({source:e,sourceType:t="json",sourceConfig:n,shape:r="arc",color:o="#2563EB",gradientColors:l,colorMode:s="single",colorField:a,colorValues:c,lineWidth:d=1.5,lineWidthRange:h,weightField:f="weight",opacity:p=.8,blur:g=.6,animate:y=!1,animateSpeed:C=1,animateTrailLength:b=.3,animateDuration:x=2e3,showNodes:k=!0,nodeColor:L,nodeSize:z=4,nodeSizeRange:E,nodePulse:T=!1,showTooltip:M=!0,showNodePopup:H=!0,activeColor:N="#FFD93D",onArcHover:V,onArcClick:F,onNodeClick:A,style:I}){const m=u.useMemo(()=>n??{x:"fromLng",y:"fromLat",x1:"toLng",y1:"toLat"},[n]),w=u.useMemo(()=>s==="gradient"&&l?l:o,[s,l,o]),P=u.useMemo(()=>d,[d,h]),$=u.useMemo(()=>{if(y)return{enable:!0,speed:C,duration:x,trailLength:b}},[y,C,x,b]),j=u.useMemo(()=>({opacity:p,blur:g,...I}),[p,g,I]),O=u.useMemo(()=>{if(!k||typeof e=="string")return[];const ie=new Map,Q=m.x??"fromLng",le=m.y??"fromLat",Z=m.x1??"toLng",v=m.y1??"toLat";return e.forEach(D=>{const S=`${D[Q]}_${D[le]}`,R=`${D[Z]}_${D[v]}`;ie.has(S)||ie.set(S,{lng:Number(D[Q]),lat:Number(D[le]),degree:0,name:D.fromName}),ie.has(R)||ie.set(R,{lng:Number(D[Z]),lat:Number(D[v]),degree:0,name:D.toName}),ie.get(S).degree++,ie.get(R).degree++}),Array.from(ie.values())},[e,k,m]),K=L??o,[ee,Y]=u.useState({visible:!1,lng:0,lat:0,from:"",to:"",weight:0}),X=u.useCallback(ie=>{if(V==null||V(ie),!M)return;const Q=ie.feature;Q&&Y({visible:!0,lng:ie.lng,lat:ie.lat,from:String(Q.fromName??""),to:String(Q.toName??""),weight:Number(Q[f]??0)})},[V,M,f]),te=u.useCallback(()=>{Y(ie=>({...ie,visible:!1}))},[]),[_,U]=u.useState({visible:!1,lng:0,lat:0,name:"",degree:0}),ce=u.useCallback(ie=>{if(A==null||A(ie),!H)return;const Q=ie.feature;Q&&U({visible:!0,lng:ie.lng,lat:ie.lat,name:String(Q.name??""),degree:Number(Q.degree??0)})},[A,H]);return i.jsxs(i.Fragment,{children:[i.jsx(Ve,{source:e,sourceType:t,sourceConfig:m,shape:r,color:w,colorField:s==="field"?a:void 0,colorValues:s==="field"?c:void 0,size:P,sizeField:h?f:void 0,sizeValues:h||void 0,animate:$,active:N?{color:N}:!1,style:j,onMouseMove:X,onMouseLeave:te,onClick:F}),k&&O.length>0&&i.jsx(Se,{source:O,sourceConfig:{x:"lng",y:"lat"},color:K,size:z,sizeField:E?"degree":void 0,sizeValues:E,shape:"circle",style:{opacity:.9,strokeWidth:1,stroke:"#fff"},animate:T?{enable:!0,speed:.6}:void 0,active:N?{color:N}:!1,onClick:ce}),M&&ee.visible&&i.jsx(ht,{longitude:ee.lng,latitude:ee.lat,visible:!0,variant:"dark",items:[{label:"起点",value:ee.from},{label:"终点",value:ee.to},{label:"流量",value:ee.weight}]}),H&&_.visible&&i.jsx(qe,{longitude:_.lng,latitude:_.lat,content:`<div style="min-width:80px"><div style="font-weight:700;font-size:13px;margin-bottom:4px">${_.name||"节点"}</div><div style="font-size:12px;color:#64748b">连接数: ${_.degree}</div></div>`,closeButton:!0,size:"compact",onClose:()=>U(ie=>({...ie,visible:!1}))})]})}function ko({path:e,segments:t,stops:n=[],routeType:r="straight",onRouteQuery:o,onRouteResult:l,color:s="#2563eb",lineWidth:a=4,opacity:c=.9,glow:d=!0,animate:h=!1,animateSpeed:f=1,stopSize:p=14,stopColor:g,endColor:y="#10b981",showStopIndex:C=!0,stopRenderer:b="point",stopMarkerVariant:x="circle",stopIconMap:k,stopIconField:L="iconValue",stopIconSize:z=16,stopIconAnchor:E="bottom",showStopPopup:T=!0,activeColor:M="#fbbf24",onPathClick:H,onStopClick:N}){const[V,F]=u.useState(null),A=u.useRef(0),I=r==="walking"||r==="cycling"||r==="driving"||r==="transit";u.useEffect(()=>{if(!I||!o||n.length<2){F(null);return}const _=[n[0].lng,n[0].lat],U=[n[n.length-1].lng,n[n.length-1].lat],ce=n.length>2?n.slice(1,-1).map(Q=>[Q.lng,Q.lat]):[],ie=++A.current;o({origin:_,destination:U,waypoints:ce.length>0?ce:void 0,routeType:r}).then(Q=>{A.current===ie&&(F(Q),l==null||l(Q))}).catch(()=>{A.current===ie&&F(null)})},[I,o,n,r]);const m=I&&V?V.path:e,w=I&&(V!=null&&V.segments)?V.segments:t,P=I&&(V!=null&&V.stops)?V.stops:[],$=r==="arc"?"arc":"line",j=u.useMemo(()=>w&&w.length>0?{type:"FeatureCollection",features:w.map((_,U)=>({type:"Feature",properties:{color:_.color||s,width:_.width||a,index:U},geometry:{type:"LineString",coordinates:_.coordinates}}))}:m&&m.length>1?{type:"FeatureCollection",features:[{type:"Feature",properties:{color:s,width:a},geometry:{type:"LineString",coordinates:m}}]}:null,[m,w,s,a]),O=w&&w.some(_=>_.color),K=u.useMemo(()=>{const _=m??(w&&w.length>0?[...w[0].coordinates.slice(0,1),...w[w.length-1].coordinates.slice(-1)]:null);let U=[...n,...P];if(_&&_.length>=2){const[ce,ie]=_[0],[Q,le]=_[_.length-1],Z=n.some(D=>Math.abs(D.lng-ce)<1e-6&&Math.abs(D.lat-ie)<1e-6),v=n.some(D=>Math.abs(D.lng-Q)<1e-6&&Math.abs(D.lat-le)<1e-6);Z||(U=[{lng:ce,lat:ie,name:"起点",type:"start"},...U]),v||(U=[...U,{lng:Q,lat:le,name:"终点",type:"end"}])}return U.map((ce,ie)=>({...ce,index:ce.index??ie+1,type:ce.type??(ie===0?"start":ie===U.length-1?"end":"waypoint"),stopColor:ce.type==="end"||!ce.type&&ie===U.length-1?y:g??s,iconValue:ce.icon??"marker",indexLabel:String(ce.index??ie+1),markerColorValue:ce.markerColor??So(ce.type??(ie===0?"start":ie===U.length-1?"end":"waypoint"))}))},[n,P,m,w,s,g,y]),ee=u.useMemo(()=>{if(b!=="icon")return;if(k)return k;const _=[...new Set(K.map(U=>U.iconValue).filter(Boolean))];if(_.length)return W1(_,{fill:g??s,size:Math.max(24,z+8)})},[b,k,K,g,s,z]),[Y,X]=u.useState({visible:!1,lng:0,lat:0,name:"",index:""}),te=u.useCallback(_=>{if(N==null||N(_),!T)return;const U=_.feature;U&&X({visible:!0,lng:_.lng,lat:_.lat,name:String(U.name??""),index:String(U.indexLabel??U.index??"")})},[N,T]);return j?i.jsxs(i.Fragment,{children:[d&&i.jsx(Ve,{source:j,sourceType:"geojson",shape:$,color:O?void 0:s,colorField:O?"color":void 0,colorValues:O?w.map(_=>_.color||s):void 0,size:a*2.5,style:{opacity:.15}}),i.jsx(Ve,{source:j,sourceType:"geojson",shape:$,color:O?void 0:s,colorField:O?"color":void 0,colorValues:O?w.map(_=>_.color||s):void 0,size:O?void 0:a,sizeField:O?"width":void 0,sizeValues:O?w.map(_=>_.width||a):void 0,style:{opacity:c},active:M?{color:M}:!1,onClick:H}),h&&i.jsx(Ve,{source:j,sourceType:"geojson",shape:"line",color:"#ffffff",size:Math.max(1.5,a*.5),style:{opacity:.6,lineType:"dash",lineDash:[8,16]},animate:{enable:!0,speed:f,duration:1500},zIndex:10}),K.length>0&&b==="point"&&i.jsx(Se,{source:K,sourceConfig:{x:"lng",y:"lat"},colorField:"stopColor",colorValues:[...new Set(K.map(_=>_.stopColor))],size:p,shape:"circle",style:{opacity:1,strokeWidth:2,stroke:"#ffffff"},active:M?{color:M}:!1,onClick:te}),K.length>0&&b==="point"&&C&&i.jsx(Se,{source:K,sourceConfig:{x:"lng",y:"lat"},shapeField:"indexLabel",shapeValues:"text",color:"#ffffff",size:Math.max(10,Math.round(p*.75)),style:{textAnchor:"center",stroke:"rgba(18, 28, 42, 0.28)",strokeWidth:1.5,fontWeight:"700",textAllowOverlap:!0}}),K.length>0&&b==="icon"&&ee&&i.jsx(g0,{source:K,sourceType:"json",sourceConfig:{x:"lng",y:"lat"},iconField:L,iconMap:ee,iconSize:z,iconAnchor:E,showLabel:C,labelField:"indexLabel",labelColor:"#ffffff",labelSize:11,labelAnchor:"top",labelOffset:[0,E==="bottom"?Math.max(10,Math.round(z*.6)):0],labelHaloColor:"rgba(18, 28, 42, 0.35)",labelHaloWidth:2,onClick:te}),K.length>0&&b==="marker"&&K.map((_,U)=>{const ce=_.markerVariant??x,ie=_.markerColorValue,Q=zo(_.indexLabel,_.stopColor,C,ce);return i.jsx(Oe,{longitude:_.lng,latitude:_.lat,variant:ce,color:ie,icon:_.icon,content:Q,label:Q?void 0:C?_.indexLabel:void 0,onClick:le=>{te({layerId:"route-stop-marker",layerType:"point",originalEvent:le,lng:_.lng,lat:_.lat,feature:_})}},`route-stop-marker-${U}`)}),T&&Y.visible&&i.jsx(qe,{longitude:Y.lng,latitude:Y.lat,content:`<div style="min-width:100px"><div style="font-weight:700;font-size:13px;margin-bottom:4px">${Y.name}</div><div style="font-size:12px;color:#64748b">第 ${Y.index} 站</div></div>`,closeButton:!0,size:"compact",onClose:()=>X(_=>({..._,visible:!1}))})]}):null}function So(e){switch(e){case"start":return"success";case"end":return"error";default:return"primary"}}function zo(e,t,n,r){if(!n||r!=="circle"&&r!=="dot")return;const o=r==="circle"?24:18,l=r==="circle"?11:10;return i.jsx("div",{style:{width:o,height:o,borderRadius:"9999px",border:"2px solid #ffffff",background:t,color:"#ffffff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:l,lineHeight:1,fontWeight:700,boxShadow:"0 6px 12px rgba(0,0,0,0.14)"},children:e})}const y0=[73.482190241,3.8150178409999995,135.106618732,57.630045996],Ho={type:"linear",colors:["rgba(92,58,16,0)","rgba(92,58,16,0)","#fabd08","#f1e93f","#f1ff8f","#fcfff7"],positions:[0,3,9,22.5,45,90]};function m0(e){const t=e[0]/2003750834e-2*180;let n=e[1]/2003750834e-2*180;return n=180/Math.PI*(2*Math.atan(Math.exp(n*Math.PI/180))-Math.PI/2),[t,n]}function Vo({url:e,extent:t=y0,renderMode:n="raster",bandIndex:r=0,domain:o=[0,90],noDataValue:l=0,rampColors:s=Ho,clampLow:a=!1,clampHigh:c=!1,bands:d=[0,1,2],countCut:h,rMinMax:f,gMinMax:p,bMinMax:g,opacity:y=.8,mask:C=!1,maskData:b}){const[x,k]=u.useState(null),[L,z]=u.useState(null),[E,T]=u.useState(null);u.useEffect(()=>{let m=!1;async function w(){try{const P=await import("geotiff"),$=await fetch(e);if(!$.ok)throw new Error(`Fetch failed: ${$.status}`);const j=await $.arrayBuffer(),K=await(await P.fromArrayBuffer(j)).getImage(),ee=K.getWidth(),Y=K.getHeight(),X=await K.readRasters();let te;try{const _=K.getBoundingBox();_&&_.length===4&&(te=_)}catch{}m||(k({rasters:X,width:ee,height:Y,tiffExtent:te}),T(null))}catch(P){m||(T(P instanceof Error?P.message:"Failed to load TIFF"),console.error("[TiffRasterLayer] Load error:",P))}}return w(),()=>{m=!0}},[e]),u.useEffect(()=>{if(!C||!b)return;let m=!1;return typeof b=="string"?fetch(b).then(w=>w.json()).then(w=>{m||z(w)}).catch(w=>console.error("[TiffRasterLayer] Mask load error:",w)):z(b),()=>{m=!0}},[C,b]);const M=u.useMemo(()=>{if(t!==y0)return t;if(x!=null&&x.tiffExtent){const[m,w,P,$]=x.tiffExtent;if(Math.abs(m)>180||Math.abs(P)>180){const j=m0([m,w]),O=m0([P,$]);return[j[0],j[1],O[0],O[1]]}return x.tiffExtent}return t},[t,x==null?void 0:x.tiffExtent]),H=u.useMemo(()=>{if(!x)return null;if(n==="rgb"){const m={type:"rgb",width:x.width,height:x.height,bands:d,extent:M};return f&&(m.RMinMax=f),p&&(m.GMinMax=p),g&&(m.BMinMax=g),h&&(m.countCut=h),{parser:m}}return n==="ndi"?{parser:{type:"ndi",width:x.width,height:x.height,bands:d,extent:M}}:{parser:{type:"raster",width:x.width,height:x.height,extent:M}}},[x,n,d,M]),N=u.useMemo(()=>n==="rgb"?{opacity:y}:n==="ndi"?{domain:o,rampColors:s,opacity:y}:{clampLow:a,clampHigh:c,domain:o,noDataValue:l,rampColors:s,opacity:y},[n,a,c,o,l,s,y]),V=u.useMemo(()=>x?n==="rgb"||n==="ndi"?x.rasters:x.rasters[r]:null,[x,n,r]),F=me(),A=u.useRef(null);u.useRef(!1);const I=!C||!!L;return u.useEffect(()=>{if(!F||!H||!V||!I)return;A.current&&(F.removeLayer(A.current),A.current=null);const m={zIndex:10};C&&L&&(m.mask=!0,m.maskfence=L);const w=new ge.RasterLayer(m);return w.source(V,{parser:H.parser}),w.style(N),F.addLayer(w),A.current=w,()=>{A.current&&F&&(F.removeLayer(A.current),A.current=null)}},[F,H,V,I,L]),null}function C0({position:e="bottomleft",className:t,style:n,children:r}){const{positionClassName:o}=ke(e),l=Me();if(!r)return null;const s=i.jsx("div",{className:`l7-control l7-control-legend l7-control--glass${t?` ${t}`:""}`,style:{padding:"12px 14px",borderRadius:8,maxHeight:"40%",overflowY:"auto",...n},children:r});return l?s:i.jsx("div",{className:`l7-control-anchor ${o}`,children:s})}we.mark(C0);function Eo(e){return{mode:"select",features:e?[...e]:[],selectedFeatureId:null,isDrawing:!1,currentStrokeVertices:[],editingFeatureId:null}}let Ao=0;function v0(){return`annotation-${Date.now()}-${++Ao}`}function jt(e,t){if(e.length<=2)return e;let n=0,r=0;const o=e[0],l=e[e.length-1];for(let s=1;s<e.length-1;s++){const a=Zo(e[s],o,l);a>n&&(n=a,r=s)}if(n>t){const s=jt(e.slice(0,r+1),t),a=jt(e.slice(r),t);return s.slice(0,-1).concat(a)}return[o,l]}function Zo(e,t,n){const r=n[0]-t[0],o=n[1]-t[1],l=r*r+o*o;if(l===0){const f=e[0]-t[0],p=e[1]-t[1];return Math.sqrt(f*f+p*p)}const s=((e[0]-t[0])*r+(e[1]-t[1])*o)/l,a=t[0]+s*r,c=t[1]+s*o,d=e[0]-a,h=e[1]-c;return Math.sqrt(d*d+h*h)}function Fo(e){const{scene:t,mapsService:n,defaultFeatures:r,features:o,onAnnotationCreate:l,onAnnotationUpdate:s,onAnnotationDelete:a,onAnnotationSelect:c,onModeChange:d,onChange:h,activeColor:f,activeOpacity:p,activeStrokeWidth:g,activeFontSize:y}=e,C=u.useRef(Eo(r)),[,b]=u.useState(0),x=u.useCallback(()=>b(m=>m+1),[]);u.useEffect(()=>{o!==void 0&&(C.current.features=o,x())},[o,x]);const k=u.useCallback(()=>o??C.current.features,[o]),L=u.useCallback(m=>{o===void 0&&(C.current.features=m),h==null||h(m),x()},[o,h,x]),z=u.useCallback(m=>{var P;const w=C.current.mode;w!==m&&(w==="highlighter"&&C.current.isDrawing&&(C.current.isDrawing=!1,C.current.currentStrokeVertices=[],(P=n==null?void 0:n.setMapStatus)==null||P.call(n,{dragEnable:!0})),C.current.mode=m,C.current.editingFeatureId=null,m!=="select"&&(C.current.selectedFeatureId=null,c==null||c(null)),d==null||d(m),x())},[n,d,c,x]),E=u.useCallback(m=>{const w=[...k(),m];L(w),l==null||l(m)},[k,L,l]),T=u.useCallback((m,w)=>{const P=k().map($=>{if($.id!==m)return $;const j={...$,properties:{...$.properties,...w,updatedAt:new Date().toISOString()}};return s==null||s(j),j});L(P)},[k,L,s]),M=u.useCallback(m=>{const w=k().find($=>$.id===m);if(!w)return;const P=k().filter($=>$.id!==m);C.current.selectedFeatureId===m&&(C.current.selectedFeatureId=null,c==null||c(null)),C.current.editingFeatureId===m&&(C.current.editingFeatureId=null),L(P),a==null||a(w)},[k,L,a,c]),H=u.useCallback(m=>{C.current.selectedFeatureId=m;const w=m?k().find(P=>P.id===m)??null:null;c==null||c(w),x()},[k,c,x]),N=u.useCallback(()=>{C.current.selectedFeatureId=null,C.current.editingFeatureId=null,L([]),c==null||c(null)},[L,c]),V=u.useCallback((m,w,P)=>{const $=k().map(j=>{if(j.id!==m)return j;const O={...j,geometry:{type:"Point",coordinates:[w,P]},properties:{...j.properties,updatedAt:new Date().toISOString()}};return s==null||s(O),O});L($)},[k,L,s]),F=u.useCallback(m=>{C.current.editingFeatureId=m,x()},[x]),A=u.useCallback(()=>{C.current.editingFeatureId=null,x()},[x]),I=u.useCallback((m,w,P)=>{const $=new Date().toISOString(),j={type:"Feature",id:v0(),geometry:{type:"Point",coordinates:[m,w]}};switch(P){case"marker":return{...j,properties:{annotationType:"marker",color:f,createdAt:$}};case"text":return{...j,properties:{annotationType:"text",text:"",color:f,fontSize:y,createdAt:$}};case"note":return{...j,properties:{annotationType:"note",title:"",body:"",color:f,createdAt:$}};case"link":return{...j,properties:{annotationType:"link",url:"",title:"",color:f,createdAt:$}};case"image":return{...j,properties:{annotationType:"image",src:"",createdAt:$}};case"video":return{...j,properties:{annotationType:"video",url:"",createdAt:$}};default:return{...j,properties:{annotationType:"marker",color:f,createdAt:$}}}},[f,y]);return u.useEffect(()=>{if(!t||!n)return;const m=j=>{const O=C.current,K=De(j);if(!K)return;const[ee,Y]=K,X=O.mode;if(!(X==="select"||X==="none")&&X!=="highlighter"&&(X==="marker"||X==="text"||X==="note"||X==="link"||X==="image"||X==="video")){const te=I(ee,Y,X);E(te),C.current.mode=X,C.current.selectedFeatureId=te.id,c==null||c(te),X!=="marker"&&(C.current.editingFeatureId=te.id),X!=="marker"&&(C.current.mode="select",d==null||d("select")),x()}},w=j=>{var ee;const O=C.current;if(O.mode!=="highlighter")return;const K=De(j);K&&(O.isDrawing=!0,O.currentStrokeVertices=[K],(ee=n.setMapStatus)==null||ee.call(n,{dragEnable:!1}),x())},P=j=>{var Y,X;const O=C.current;if(!O.isDrawing||O.mode!=="highlighter")return;const K=De(j);if(!K)return;const ee=O.currentStrokeVertices;if(ee.length>0){const te=ee[ee.length-1],_=((Y=n.lngLatToContainer)==null?void 0:Y.call(n,te))??{x:0,y:0},U=((X=n.lngLatToContainer)==null?void 0:X.call(n,K))??{x:0,y:0};if(w1(_,U)<4)return}O.currentStrokeVertices=[...ee,K],x()},$=()=>{var Y;const j=C.current;if(!j.isDrawing||j.mode!=="highlighter")return;j.isDrawing=!1,(Y=n.setMapStatus)==null||Y.call(n,{dragEnable:!0});const O=j.currentStrokeVertices;if(O.length<2){j.currentStrokeVertices=[],x();return}const K=jt(O,5e-5);j.currentStrokeVertices=[];const ee={type:"Feature",id:v0(),geometry:{type:"LineString",coordinates:K},properties:{annotationType:"highlighter",color:f,strokeWidth:g,strokeOpacity:p,createdAt:new Date().toISOString()}};E(ee),x()};return t.on("click",m),t.on("mousedown",w),t.on("mousemove",P),t.on("mouseup",$),()=>{t.off("click",m),t.off("mousedown",w),t.off("mousemove",P),t.off("mouseup",$)}},[t,n,E,I,c,d,x]),u.useEffect(()=>{const m=w=>{var O,K;const P=(O=w.target)==null?void 0:O.tagName;if(P==="INPUT"||P==="TEXTAREA"||(K=w.target)!=null&&K.isContentEditable)return;if(w.key==="Escape"){z("select");return}if(w.key==="Delete"||w.key==="Backspace"){const ee=C.current.selectedFeatureId;ee&&M(ee);return}const j={m:"marker",h:"highlighter",t:"text",n:"note",k:"link",i:"image",v:"video"}[w.key.toLowerCase()];j&&z(j)};return document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)},[z,M]),{mode:C.current.mode,features:k(),selectedFeatureId:C.current.selectedFeatureId,editingFeatureId:C.current.editingFeatureId,isDrawing:C.current.isDrawing,currentStrokeVertices:C.current.currentStrokeVertices,setMode:z,addFeature:E,updateFeature:T,deleteFeature:M,selectFeature:H,clearAll:N,getFeatures:k,openEditor:F,closeEditor:A,moveFeature:V}}const b0=[{mode:"select",icon:"pan_tool",title:"选择 — 点击标注选中/拖拽移动",shortcut:"Esc"},{mode:"marker",icon:"location_on",title:"标记 — 单击放置地图钉",shortcut:"M"},{mode:"highlighter",icon:"ink_highlighter",title:"高亮 — 按住拖拽手绘",shortcut:"H"},{mode:"text",icon:"title",title:"文字 — 单击放置文字标签",shortcut:"T"},{mode:"note",icon:"sticky_note_2",title:"笔记 — 单击放置富文本笔记",shortcut:"N"},{mode:"link",icon:"link",title:"链接 — 单击放置链接",shortcut:"K"},{mode:"image",icon:"image",title:"图片 — 单击放置图片",shortcut:"I"},{mode:"video",icon:"videocam",title:"视频 — 单击放置视频",shortcut:"V"}];function To(){const e=u.useRef(null),t=u.useCallback((r,o,l)=>{var x;if(!e.current){const k=document.createElement("div");k.style.cssText=["position:fixed","pointer-events:none","z-index:9999","padding:5px 10px","border-radius:4px","background:rgba(26,27,34,0.92)","color:#f2eff9",'font:500 11px/16px "JetBrains Mono",monospace',"white-space:nowrap","box-shadow:0 2px 8px rgba(0,0,0,0.3)"].join(";"),document.body.appendChild(k),e.current=k}const s=e.current;s.textContent=`${o} ${l}`,s.style.display="block";const a=s.getBoundingClientRect(),c=r.currentTarget.getBoundingClientRect(),h=((x=r.currentTarget.closest('.l7-map-container, [id*="map"]'))==null?void 0:x.getBoundingClientRect())??{left:0,top:0,right:window.innerWidth,bottom:window.innerHeight},f="right"in h?h.right:window.innerWidth,p="bottom"in h?h.bottom:window.innerHeight,g=h.left,y=h.top;let C=c.left-a.width-8,b=c.top+c.height/2-a.height/2;C<g+4&&(C=c.right+8),C+a.width>f-4&&(C=c.left+c.width/2-a.width/2,b=c.top-a.height-8),b<y+4&&(b=c.bottom+8),b+a.height>p-4&&(b=c.top-a.height-8),s.style.left=`${Math.max(g+4,Math.min(C,f-a.width-4))}px`,s.style.top=`${Math.max(y+4,Math.min(b,p-a.height-4))}px`},[]),n=u.useCallback(()=>{e.current&&(e.current.style.display="none")},[]);return u.useEffect(()=>()=>{var r;e.current&&((r=e.current.parentElement)==null||r.removeChild(e.current),e.current=null)},[]),{showTooltip:t,hideTooltip:n}}const No=({activeMode:e,onModeChange:t,tools:n,hasSelection:r=!1,hasFeatures:o=!1,onDeleteSelected:l,onClearAll:s,className:a,style:c})=>{const{showTooltip:d,hideTooltip:h}=To(),f=u.useMemo(()=>n?b0.filter(g=>n.includes(g.mode)):b0,[n]),p=u.useCallback(g=>{t(g==="select"||e===g?"select":g)},[e,t]);return i.jsxs("div",{className:`l7-control l7-control-annotation l7-control--glass${a?` ${a}`:""}`,style:c,role:"toolbar","aria-label":"标注工具",children:[f.map(g=>i.jsx("button",{className:`l7-button-control l7-annotation-tool-btn${e===g.mode?" l7-button-control--active":""}`,onClick:()=>p(g.mode),onMouseEnter:y=>d(y,g.title,g.shortcut),onMouseLeave:h,"aria-label":g.title,"aria-pressed":e===g.mode,children:i.jsx("span",{className:"material-symbols-outlined",children:g.icon})},g.mode)),r&&l&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"l7-draw-separator"}),i.jsx("button",{className:"l7-button-control l7-annotation-action-btn",onClick:l,onMouseEnter:g=>d(g,"删除选中标注","Del"),onMouseLeave:h,"aria-label":"删除选中标注",children:i.jsx("span",{className:"material-symbols-outlined",children:"delete"})})]}),o&&s&&i.jsx("button",{className:"l7-button-control l7-annotation-action-btn",onClick:s,onMouseEnter:g=>d(g,"清除所有标注",""),onMouseLeave:h,"aria-label":"清除所有标注",children:i.jsx("span",{className:"material-symbols-outlined",children:"delete_sweep"})})]})},Ne={marker:{color:"#3f51b5",size:32},highlighter:{color:"#ffeb3b",width:8,opacity:.5},text:{color:"#1a1a2e",fontSize:14,fontFamily:"inherit"},note:{color:"#3f51b5",maxWidth:240},link:{color:"#3f51b5"},image:{maxWidth:200,borderRadius:8},video:{maxWidth:200}},Io=["#3f51b5","#e53935","#43a047","#fb8c00","#8e24aa","#00897b","#5c6bc0","#d81b60"];function Po(e){return e?{marker:{...Ne.marker,...e.marker},highlighter:{...Ne.highlighter,...e.highlighter},text:{...Ne.text,...e.text},note:{...Ne.note,...e.note},link:{...Ne.link,...e.link},image:{...Ne.image,...e.image},video:{...Ne.video,...e.video}}:Ne}const Do={marker:"translate(-50%, -100%)",text:"translate(-50%, -50%)",note:"translate(-50%, -100%)",link:"translate(-50%, -100%)",image:"translate(-50%, -100%)",video:"translate(-50%, -100%)"};function $o(e,t){const{annotationType:n}=e.properties;switch(n){case"marker":{const r=e.properties,o=r.color||t.marker.color;return`
2
+ <div class="aimapui-annotation-marker" style="color:${o}">
3
+ <span class="material-symbols-outlined" style="font-size:${t.marker.size}px;color:${o}">location_on</span>
4
+ ${r.label?`<div class="aimapui-annotation-marker-label">${We(r.label)}</div>`:""}
5
+ </div>
6
+ `}case"text":{const r=e.properties,o=r.color||t.text.color,l=r.fontSize||t.text.fontSize,s=r.text||"(空文字)";return`
7
+ <div class="aimapui-annotation-text" style="color:${o};font-size:${l}px">
8
+ ${We(s)}
9
+ </div>
10
+ `}case"note":{const r=e.properties;return`
11
+ <div class="aimapui-annotation-note" style="border-left-color:${r.color||t.note.color};max-width:${t.note.maxWidth}px">
12
+ <div class="aimapui-annotation-note-title">${We(r.title||"无标题")}</div>
13
+ ${r.body?`<div class="aimapui-annotation-note-body">${We(r.body)}</div>`:""}
14
+ </div>
15
+ `}case"link":{const r=e.properties;return`
16
+ <div class="aimapui-annotation-link" style="--link-color:${r.color||t.link.color}">
17
+ <span class="material-symbols-outlined" style="font-size:16px">link</span>
18
+ <span class="aimapui-annotation-link-title">${We(r.title||r.url||"未设置链接")}</span>
19
+ </div>
20
+ `}case"image":{const r=e.properties,o=r.width||t.image.maxWidth,l=r.height;return r.src?`
21
+ <div class="aimapui-annotation-image" style="width:${o}px"
22
+ data-annotation-image-id="${e.id}">
23
+ <img src="${st(r.src)}" alt="${st(r.alt||"")}"
24
+ style="border-radius:${t.image.borderRadius}px;width:100%;display:block;${l?`height:${l}px;object-fit:cover;`:""}" />
25
+ <div class="aimapui-annotation-image-resize-handle" data-resize-id="${e.id}"></div>
26
+ </div>
27
+ `:`
28
+ <div class="aimapui-annotation-image-placeholder" style="width:80px;height:60px">
29
+ <span class="material-symbols-outlined" style="font-size:32px;color:#999">image</span>
30
+ </div>
31
+ `}case"video":{const r=e.properties;return`
32
+ <div class="aimapui-annotation-video" style="max-width:${t.video.maxWidth}px">
33
+ ${r.thumbnailUrl?`<img src="${st(r.thumbnailUrl)}" class="aimapui-annotation-video-thumb" />`:'<div class="aimapui-annotation-video-placeholder"><span class="material-symbols-outlined" style="font-size:32px">videocam</span></div>'}
34
+ <div class="aimapui-annotation-video-play">
35
+ <span class="material-symbols-outlined">play_arrow</span>
36
+ </div>
37
+ ${r.title?`<div class="aimapui-annotation-video-title">${We(r.title)}</div>`:""}
38
+ </div>
39
+ `}default:return""}}function We(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function st(e){return e.replace(/"/g,"&quot;").replace(/'/g,"&#39;")}const _o=({features:e,selectedId:t,editingId:n,scene:r,mapsService:o,styles:l,onSelect:s,onDoubleClick:a,onMove:c,onInlineCommit:d,onInlineCancel:h,onResize:f})=>{const p=u.useRef(null),g=u.useRef(new Map),y=u.useRef(null),C=u.useRef(null),b=Po(l),x=u.useCallback(()=>{if(!o)return;const k=g.current;for(const L of e){if(L.properties.annotationType==="highlighter")continue;const z=k.get(L.id);if(!z)continue;const E=L.geometry.coordinates;try{const T=o.lngLatToContainer(E);if(!T||isNaN(T.x)||isNaN(T.y))continue;const M=Do[L.properties.annotationType]||"translate(-50%, -100%)",H=Math.round(T.x),N=Math.round(T.y);z.style.transform=`translate3d(${H}px, ${N}px, 0) ${M}`}catch{}}},[e,o]);return u.useEffect(()=>{if(!o)return;const k=()=>x();return o.on("camerachange",k),()=>{o.off("camerachange",k)}},[o,x]),u.useEffect(()=>{var M;if(!o)return;const k=(M=o.getMarkerContainer)==null?void 0:M.call(o);if(!k)return;if(!p.current){const H=document.createElement("div");H.className="aimapui-annotation-container",H.style.cssText="position:absolute;top:0;left:0;width:0;height:0;z-index:10;",k.appendChild(H),p.current=H}const L=p.current,z=g.current,E=new Map,T=e.filter(H=>H.properties.annotationType!=="highlighter");for(const H of T){let N=z.get(H.id);if(N||(N=document.createElement("div"),N.className="aimapui-annotation-item",N.style.cssText="position:absolute;left:0;top:0;pointer-events:auto;cursor:pointer;user-select:none;",N.dataset.annotationId=H.id,N.addEventListener("click",A=>{A.stopPropagation(),s(H.id)}),N.addEventListener("dblclick",A=>{A.stopPropagation(),a(H.id)}),N.addEventListener("mousedown",A=>{if(A.button!==0)return;const I=H.geometry.coordinates;y.current={id:H.id,startLng:I[0],startLat:I[1],startX:A.clientX,startY:A.clientY,isDragging:!1}}),L.appendChild(N)),H.id===n&&(H.properties.annotationType==="text"||H.properties.annotationType==="link")){const A=H.properties.annotationType,I=A==="text"?H.properties.text||"":H.properties.url||"",m=A==="text"?"Add text...":"https://...",w=H.properties.color||(A==="text"?b.text.color:b.link.color),P=A==="text"?H.properties.fontSize||b.text.fontSize:14;N.innerHTML=`
40
+ <input
41
+ class="aimapui-annotation-inline-input"
42
+ type="text"
43
+ value="${st(I)}"
44
+ placeholder="${m}"
45
+ style="color:${w};font-size:${P}px"
46
+ data-annotation-inline="${H.id}"
47
+ data-annotation-type="${A}"
48
+ />
49
+ `;const $=N.querySelector("input");$&&document.activeElement!==$&&requestAnimationFrame(()=>{$==null||$.focus(),$==null||$.select()}),N.dataset.inlineBound||(N.dataset.inlineBound="1",N.addEventListener("keydown",j=>{var ee;const O=j,K=O.target;if((ee=K==null?void 0:K.dataset)!=null&&ee.annotationInline){if(O.key==="Enter"){O.preventDefault(),O.stopPropagation();const Y=K.dataset.annotationInline,X=K.dataset.annotationType,te=K.value.trim();if(te){const _=X==="text"?{text:te}:{url:te,title:te};d==null||d(Y,_)}else h==null||h(Y)}else if(O.key==="Escape"){O.preventDefault(),O.stopPropagation();const Y=K.dataset.annotationInline;h==null||h(Y)}}}),N.addEventListener("blur",j=>{var X;const O=j.target;if(!((X=O==null?void 0:O.dataset)!=null&&X.annotationInline))return;const K=O.dataset.annotationInline,ee=O.dataset.annotationType,Y=O.value.trim();setTimeout(()=>{if(Y){const te=ee==="text"?{text:Y}:{url:Y,title:Y};d==null||d(K,te)}else h==null||h(K)},100)},!0))}else N.dataset.inlineBound="",N.innerHTML=$o(H,b);const F=N.querySelector("[data-resize-id]");F&&(F.onmousedown=A=>{A.stopPropagation(),A.preventDefault();const I=F.parentElement;C.current={id:H.id,startX:A.clientX,startY:A.clientY,startWidth:(I==null?void 0:I.offsetWidth)??200,startHeight:(I==null?void 0:I.offsetHeight)??150}}),H.id===t?N.classList.add("aimapui-annotation-item--selected"):N.classList.remove("aimapui-annotation-item--selected"),H.id===n?N.classList.add("aimapui-annotation-item--editing"):N.classList.remove("aimapui-annotation-item--editing"),E.set(H.id,N),z.delete(H.id)}for(const[,H]of z)L.removeChild(H);g.current=E,x()},[e,t,n,o,b,s,a,x]),u.useEffect(()=>{const k=z=>{var N;const E=C.current;if(E){const V=z.clientX-E.startX,F=z.clientY-E.startY,A=Math.max(60,E.startWidth+V),I=Math.max(40,E.startHeight+F),m=document.querySelector(`[data-annotation-image-id="${E.id}"]`);if(m){m.style.width=`${A}px`;const w=m.querySelector("img");w&&(w.style.height=`${I}px`,w.style.objectFit="cover")}return}const T=y.current;if(!T||!o)return;const M=z.clientX-T.startX,H=z.clientY-T.startY;if(!(!T.isDragging&&Math.abs(M)+Math.abs(H)<4)){T.isDragging=!0;try{const V=(N=o.getMapContainer)==null?void 0:N.call(o),F=V==null?void 0:V.getBoundingClientRect(),A=F?z.clientX-F.left:z.clientX,I=F?z.clientY-F.top:z.clientY,m=o.containerToLngLat({x:A,y:I});m&&c(T.id,m.lng,m.lat)}catch{}}},L=z=>{const E=C.current;if(E&&f){const T=z.clientX-E.startX,M=z.clientY-E.startY,H=Math.max(60,E.startWidth+T),N=Math.max(40,E.startHeight+M);f(E.id,H,N)}C.current=null,y.current=null};return document.addEventListener("mousemove",k),document.addEventListener("mouseup",L),()=>{document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",L)}},[o,c,f]),u.useEffect(()=>()=>{var k;p.current&&((k=p.current.parentElement)==null||k.removeChild(p.current),p.current=null),g.current.clear()},[]),null};function Oo(e,t,n){u.useEffect(()=>{if(!e||!t||!n.current)return;const r=()=>{if(!n.current||e.properties.annotationType==="highlighter")return;const l=e.geometry.coordinates;try{const s=t.lngLatToContainer(l);if(!s||isNaN(s.x)||isNaN(s.y))return;const a=document.querySelector(`[data-annotation-id="${e.id}"]`),h=((a==null?void 0:a.offsetHeight)??40)+8;n.current.style.transform=`translate3d(${Math.round(s.x)}px, ${Math.round(s.y-h)}px, 0) translate(-50%, -100%)`}catch{}};r();const o=requestAnimationFrame(r);return t.on("camerachange",r),()=>{cancelAnimationFrame(o),t.off("camerachange",r)}},[e,t,n])}const jo=({feature:e,onSave:t,onCancel:n,onDelete:r})=>{const[o,l]=u.useState(e.properties.text||""),s=u.useRef(null);u.useEffect(()=>{var c;(c=s.current)==null||c.focus()},[]);const a=()=>{o.trim()?t(e.id,{text:o.trim()}):r(e.id),n()};return i.jsxs("div",{className:"aimapui-annotation-editor-form",children:[i.jsx("input",{ref:s,className:"aimapui-annotation-editor-input",value:o,onChange:c=>l(c.target.value),onKeyDown:c=>{c.key==="Enter"&&a(),c.key==="Escape"&&n()},placeholder:"输入文字..."}),i.jsxs("div",{className:"aimapui-annotation-editor-actions",children:[i.jsx("button",{className:"aimapui-annotation-editor-btn aimapui-annotation-editor-btn--primary",onClick:a,children:"确定"}),i.jsx("button",{className:"aimapui-annotation-editor-btn",onClick:n,children:"取消"})]})]})},Bo=({feature:e,onSave:t,onCancel:n,onDelete:r})=>{const o=e.properties,[l,s]=u.useState(o.title||""),[a,c]=u.useState(o.body||""),d=u.useRef(null);u.useEffect(()=>{var f;(f=d.current)==null||f.focus()},[]);const h=()=>{l.trim()||a.trim()?t(e.id,{title:l.trim(),body:a.trim()}):r(e.id),n()};return i.jsxs("div",{className:"aimapui-annotation-editor-form",children:[i.jsx("input",{ref:d,className:"aimapui-annotation-editor-input",value:l,onChange:f=>s(f.target.value),placeholder:"标题...",onKeyDown:f=>{f.key==="Escape"&&n()}}),i.jsx("textarea",{className:"aimapui-annotation-editor-textarea",value:a,onChange:f=>c(f.target.value),placeholder:"正文内容...",rows:4,onKeyDown:f=>{f.key==="Escape"&&n()}}),i.jsxs("div",{className:"aimapui-annotation-editor-actions",children:[i.jsx("button",{className:"aimapui-annotation-editor-btn aimapui-annotation-editor-btn--primary",onClick:h,children:"确定"}),i.jsx("button",{className:"aimapui-annotation-editor-btn",onClick:n,children:"取消"})]})]})},Wo=({feature:e,onSave:t,onCancel:n,onDelete:r})=>{const o=e.properties,[l,s]=u.useState(o.url||""),[a,c]=u.useState(o.title||""),d=u.useRef(null);u.useEffect(()=>{var f;(f=d.current)==null||f.focus()},[]);const h=()=>{l.trim()?t(e.id,{url:l.trim(),title:a.trim()||l.trim()}):r(e.id),n()};return i.jsxs("div",{className:"aimapui-annotation-editor-form",children:[i.jsx("input",{ref:d,className:"aimapui-annotation-editor-input",value:l,onChange:f=>s(f.target.value),placeholder:"https://...",onKeyDown:f=>{f.key==="Enter"&&h(),f.key==="Escape"&&n()}}),i.jsx("input",{className:"aimapui-annotation-editor-input",value:a,onChange:f=>c(f.target.value),placeholder:"链接标题(可选)...",onKeyDown:f=>{f.key==="Enter"&&h(),f.key==="Escape"&&n()}}),i.jsxs("div",{className:"aimapui-annotation-editor-actions",children:[i.jsx("button",{className:"aimapui-annotation-editor-btn aimapui-annotation-editor-btn--primary",onClick:h,children:"确定"}),i.jsx("button",{className:"aimapui-annotation-editor-btn",onClick:n,children:"取消"})]})]})},Uo=({feature:e,onSave:t,onCancel:n,onDelete:r,onUpload:o})=>{const l=e.properties,[s,a]=u.useState(l.src||""),[c,d]=u.useState(l.alt||""),[h,f]=u.useState(!1),p=u.useRef(null);u.useEffect(()=>{!l.src&&o&&requestAnimationFrame(()=>{var C;return(C=p.current)==null?void 0:C.click()})},[]);const g=u.useCallback(async C=>{var x;const b=(x=C.target.files)==null?void 0:x[0];if(!b){l.src||(r(e.id),n());return}if(o){f(!0);try{const k=await o(b,"image");a(k),t(e.id,{src:k,alt:c.trim()}),n()}catch(k){console.error("[AnnotationEditor] Image upload failed:",k)}finally{f(!1)}}},[o,e.id,c,t,n,r,l.src]),y=()=>{s.trim()?t(e.id,{src:s.trim(),alt:c.trim()}):r(e.id),n()};return i.jsxs("div",{className:"aimapui-annotation-editor-form",children:[o&&i.jsxs("div",{className:"aimapui-annotation-editor-upload",children:[i.jsxs("button",{className:"aimapui-annotation-editor-btn",onClick:()=>{var C;return(C=p.current)==null?void 0:C.click()},disabled:h,children:[i.jsx("span",{className:"material-symbols-outlined",style:{fontSize:16,marginRight:4},children:"upload"}),h?"上传中...":"选择图片"]}),i.jsx("input",{ref:p,type:"file",accept:"image/*",onChange:g,style:{display:"none"}})]}),i.jsx("input",{className:"aimapui-annotation-editor-input",value:s,onChange:C=>a(C.target.value),placeholder:"或输入图片 URL...",onKeyDown:C=>{C.key==="Enter"&&y(),C.key==="Escape"&&n()}}),i.jsx("input",{className:"aimapui-annotation-editor-input",value:c,onChange:C=>d(C.target.value),placeholder:"图片描述(可选)...",onKeyDown:C=>{C.key==="Enter"&&y(),C.key==="Escape"&&n()}}),s&&i.jsx("div",{className:"aimapui-annotation-editor-preview",children:i.jsx("img",{src:s,alt:c,style:{maxWidth:"100%",maxHeight:120,borderRadius:4}})}),i.jsxs("div",{className:"aimapui-annotation-editor-actions",children:[i.jsx("button",{className:"aimapui-annotation-editor-btn aimapui-annotation-editor-btn--primary",onClick:y,children:"确定"}),i.jsx("button",{className:"aimapui-annotation-editor-btn",onClick:n,children:"取消"})]})]})},qo=({feature:e,onSave:t,onCancel:n,onDelete:r})=>{const o=e.properties,[l,s]=u.useState(o.url||""),[a,c]=u.useState(o.title||""),d=u.useRef(null);u.useEffect(()=>{var f;(f=d.current)==null||f.focus()},[]);const h=()=>{l.trim()?t(e.id,{url:l.trim(),title:a.trim()}):r(e.id),n()};return i.jsxs("div",{className:"aimapui-annotation-editor-form",children:[i.jsx("input",{ref:d,className:"aimapui-annotation-editor-input",value:l,onChange:f=>s(f.target.value),placeholder:"视频 URL...",onKeyDown:f=>{f.key==="Enter"&&h(),f.key==="Escape"&&n()}}),i.jsx("input",{className:"aimapui-annotation-editor-input",value:a,onChange:f=>c(f.target.value),placeholder:"视频标题(可选)...",onKeyDown:f=>{f.key==="Enter"&&h(),f.key==="Escape"&&n()}}),i.jsxs("div",{className:"aimapui-annotation-editor-actions",children:[i.jsx("button",{className:"aimapui-annotation-editor-btn aimapui-annotation-editor-btn--primary",onClick:h,children:"确定"}),i.jsx("button",{className:"aimapui-annotation-editor-btn",onClick:n,children:"取消"})]})]})},Yo=({feature:e,scene:t,mapsService:n,onSave:r,onCancel:o,onDelete:l,onUpload:s})=>{const a=u.useRef(null),c=u.useRef(null);if(Oo(e,n,a),u.useEffect(()=>{var g;if(!n)return;const f=(g=n.getMarkerContainer)==null?void 0:g.call(n);if(!f)return;const p=document.createElement("div");return p.className="aimapui-annotation-editor-container",p.style.cssText="position:absolute;top:0;left:0;width:0;height:0;z-index:20;pointer-events:none;",f.appendChild(p),c.current=p,()=>{var y;(y=p.parentElement)==null||y.removeChild(p),c.current=null}},[n]),!e||!c.current)return null;const{annotationType:d}=e.properties;if(d==="marker"||d==="highlighter")return null;const h=i.jsxs("div",{ref:a,className:"aimapui-annotation-editor",style:{position:"absolute",left:0,top:0,pointerEvents:"auto"},onClick:f=>f.stopPropagation(),children:[i.jsxs("div",{className:"aimapui-annotation-editor-header",children:[i.jsx("span",{className:"material-symbols-outlined",style:{fontSize:16},children:d==="text"?"title":d==="note"?"sticky_note_2":d==="link"?"link":d==="image"?"image":"videocam"}),i.jsx("span",{style:{marginLeft:6,fontSize:12},children:d==="text"?"编辑文字":d==="note"?"编辑笔记":d==="link"?"编辑链接":d==="image"?"编辑图片":"编辑视频"})]}),d==="text"&&i.jsx(jo,{feature:e,onSave:r,onCancel:o,onDelete:l}),d==="note"&&i.jsx(Bo,{feature:e,onSave:r,onCancel:o,onDelete:l}),d==="link"&&i.jsx(Wo,{feature:e,onSave:r,onCancel:o,onDelete:l}),d==="image"&&i.jsx(Uo,{feature:e,onSave:r,onCancel:o,onDelete:l,onUpload:s}),d==="video"&&i.jsx(qo,{feature:e,onSave:r,onCancel:o,onDelete:l})]});return Ie.createPortal(h,c.current)},Xo=({value:e,onChange:t})=>i.jsxs("div",{className:"aimapui-style-panel-row",children:[i.jsx("span",{className:"aimapui-style-panel-label",children:"颜色"}),i.jsx("div",{className:"aimapui-style-panel-swatches",children:Io.map(n=>i.jsx("button",{className:`aimapui-style-panel-swatch${e===n?" aimapui-style-panel-swatch--active":""}`,style:{background:n},onClick:()=>t(n),"aria-label":n},n))})]}),Bt=({label:e,value:t,min:n,max:r,step:o,unit:l="",onChange:s})=>i.jsxs("div",{className:"aimapui-style-panel-row",children:[i.jsx("span",{className:"aimapui-style-panel-label",children:e}),i.jsx("input",{type:"range",className:"aimapui-style-panel-slider",min:n,max:r,step:o,value:t,onChange:a=>s(Number(a.target.value))}),i.jsxs("span",{className:"aimapui-style-panel-value",children:[t,l]})]});function Go(e,t){return t?t.properties.annotationType:e==="select"||e==="none"?null:e}const Jo=({mode:e,selectedFeature:t,activeColor:n,activeOpacity:r,activeStrokeWidth:o,activeFontSize:l,onColorChange:s,onOpacityChange:a,onStrokeWidthChange:c,onFontSizeChange:d,onUpdateFeature:h})=>{const f=Go(e,t),p=u.useCallback(z=>{s(z),t&&h&&h(t.id,{color:z})},[s,t,h]),g=u.useCallback(z=>{a(z),(t==null?void 0:t.properties.annotationType)==="highlighter"&&h&&h(t.id,{strokeOpacity:z})},[a,t,h]),y=u.useCallback(z=>{c(z),(t==null?void 0:t.properties.annotationType)==="highlighter"&&h&&h(t.id,{strokeWidth:z})},[c,t,h]),C=u.useCallback(z=>{d(z),(t==null?void 0:t.properties.annotationType)==="text"&&h&&h(t.id,{fontSize:z})},[d,t,h]);if(!f)return null;const b=["marker","highlighter","text","note","link"].includes(f),x=f==="highlighter",k=f==="highlighter",L=f==="text";return!b&&!x&&!k&&!L?null:i.jsxs("div",{className:"aimapui-style-panel l7-control--glass",children:[b&&i.jsx(Xo,{value:n,onChange:p}),x&&i.jsx(Bt,{label:"透明度",value:r,min:.1,max:1,step:.1,onChange:g}),k&&i.jsx(Bt,{label:"线宽",value:o,min:2,max:24,step:1,unit:"px",onChange:y}),L&&i.jsx(Bt,{label:"字号",value:l,min:10,max:48,step:1,unit:"px",onChange:C})]})},L0="aimapui-annotation-highlighter-";class Ko{constructor(t){this.completedLayer=null,this.drawingLayer=null,this.scene=t}removeAndDestroy(t){var n;if(t){try{this.scene.removeLayer(t)}catch{}try{(n=t.destroy)==null||n.call(t)}catch{}}}addLayerWithRender(t){t.once("inited",()=>{try{this.scene.render()}catch{}}),this.scene.addLayer(t)}updateCompleted(t){const r={type:"FeatureCollection",features:t.filter(o=>o.properties.annotationType==="highlighter").map(o=>({type:"Feature",geometry:o.geometry,properties:{id:o.id,color:o.properties.color||"#ffeb3b",width:o.properties.strokeWidth||8,opacity:o.properties.strokeOpacity||.5}}))};this.completedLayer?this.completedLayer.setData(r):(this.completedLayer=new ge.LineLayer({name:`${L0}completed`,zIndex:8}).source(r).color("color",o=>o).size("width",o=>o).style({opacity:.5,lineType:"solid",lineCap:"round",lineJoin:"round"}).shape("line"),this.addLayerWithRender(this.completedLayer))}updateDrawing(t){if(t.length<2){this.drawingLayer&&(this.removeAndDestroy(this.drawingLayer),this.drawingLayer=null);return}const n={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:t},properties:{color:"#ffeb3b",width:8,opacity:.5}}]};this.drawingLayer?this.drawingLayer.setData(n):(this.drawingLayer=new ge.LineLayer({name:`${L0}drawing`,zIndex:9}).source(n).color("#ffeb3b").size(8).style({opacity:.5,lineType:"solid",lineCap:"round",lineJoin:"round"}).shape("line"),this.addLayerWithRender(this.drawingLayer))}destroy(){this.removeAndDestroy(this.completedLayer),this.removeAndDestroy(this.drawingLayer),this.completedLayer=null,this.drawingLayer=null}}const x0=u.forwardRef(function({position:t="topright",defaultFeatures:n,features:r,tools:o,styles:l,onUpload:s,className:a,style:c,onAnnotationCreate:d,onAnnotationUpdate:h,onAnnotationDelete:f,onAnnotationSelect:p,onModeChange:g,onChange:y},C){const{scene:b,mapsService:x,positionClassName:k}=ke(t),L=Me(),z=u.useRef(null),E=u.useRef(null),[T,M]=u.useState("#3f51b5"),[H,N]=u.useState(.5),[V,F]=u.useState(8),[A,I]=u.useState(14),m=Fo({scene:b,mapsService:x,defaultFeatures:n,features:r,onAnnotationCreate:d,onAnnotationUpdate:h,onAnnotationDelete:f,onAnnotationSelect:p,onModeChange:g,onChange:y,activeColor:T,activeOpacity:H,activeStrokeWidth:V,activeFontSize:A});u.useImperativeHandle(C,()=>({setMode:m.setMode,addAnnotation:m.addFeature,updateAnnotation:m.updateFeature,deleteAnnotation:m.deleteFeature,clearAll:m.clearAll,getAnnotations:m.getFeatures,selectAnnotation:m.selectFeature}),[m]);const w=u.useCallback(Q=>{m.setMode(Q)},[m]),P=u.useCallback(()=>{m.selectedFeatureId&&m.deleteFeature(m.selectedFeatureId)},[m]),$=u.useCallback(()=>{m.clearAll()},[m]),j=u.useCallback((Q,le)=>{m.updateFeature(Q,le),m.closeEditor()},[m]),O=u.useCallback(Q=>{const le=m.getFeatures().find(Z=>Z.id===Q);le&&(le.properties.annotationType==="text"?!le.properties.text:!le.properties.url)&&m.deleteFeature(Q),m.closeEditor()},[m]),K=u.useCallback((Q,le,Z)=>{m.updateFeature(Q,{width:le,height:Z})},[m]);u.useEffect(()=>{if(b)return z.current=new Ko(b),()=>{var Q;(Q=z.current)==null||Q.destroy(),z.current=null}},[b]),u.useEffect(()=>{z.current&&z.current.updateCompleted(m.features)},[m.features]),u.useEffect(()=>{z.current&&z.current.updateDrawing(m.currentStrokeVertices)},[m.currentStrokeVertices]),u.useEffect(()=>{var Z;if(!x)return;const Q=(Z=x.getMapContainer)==null?void 0:Z.call(x);if(!Q)return;const le=m.mode;return le!=="select"&&le!=="none"?Q.style.cursor="crosshair":Q.style.cursor="",()=>{Q.style.cursor=""}},[m.mode,x]),u.useEffect(()=>{var Z;if(!x)return;const Q=(Z=x.getMapContainer)==null?void 0:Z.call(x);if(!Q)return;const le=document.createElement("div");return le.className="aimapui-style-panel-anchor",le.style.cssText="position:absolute;top:10px;left:10px;z-index:10;pointer-events:auto;",Q.appendChild(le),E.current=le,()=>{var v;(v=le.parentElement)==null||v.removeChild(le),E.current=null}},[x]);const ee=m.selectedFeatureId!==null,Y=m.features.length>0,X=m.selectedFeatureId?m.features.find(Q=>Q.id===m.selectedFeatureId)??null:null,te=m.editingFeatureId?m.features.find(Q=>Q.id===m.editingFeatureId):void 0,_=te&&(te.properties.annotationType==="text"||te.properties.annotationType==="link"),U=te&&!_,ce=i.jsxs(i.Fragment,{children:[i.jsx(No,{activeMode:m.mode,onModeChange:w,tools:o,hasSelection:ee,hasFeatures:Y,onDeleteSelected:P,onClearAll:$}),i.jsx(_o,{features:m.features,selectedId:m.selectedFeatureId,editingId:m.editingFeatureId,scene:b,mapsService:x,styles:l,onSelect:m.selectFeature,onDoubleClick:m.openEditor,onMove:m.moveFeature,onInlineCommit:j,onInlineCancel:O,onResize:K}),U&&i.jsx(Yo,{feature:te,scene:b,mapsService:x,onSave:m.updateFeature,onCancel:m.closeEditor,onDelete:m.deleteFeature,onUpload:s})]}),ie=E.current?Ie.createPortal(i.jsx(Jo,{mode:m.mode,selectedFeature:X,activeColor:T,activeOpacity:H,activeStrokeWidth:V,activeFontSize:A,onColorChange:M,onOpacityChange:N,onStrokeWidthChange:F,onFontSizeChange:I,onUpdateFeature:m.updateFeature}),E.current):null;return L?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:a,style:c,children:ce}),ie]}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:`l7-control-anchor ${k}`,children:ce}),ie]})});we.mark(x0);function w0({logos:e,position:t="bottomleft",className:n,style:r}){const{positionClassName:o}=ke(t),l=Me(),s=i.jsx("div",{className:`l7-control l7-control-logo${n?` ${n}`:""}`,style:r,children:e.map((a,c)=>{const d=i.jsx("img",{src:a.src,alt:a.alt??"logo",width:a.width??24,height:a.width??24,style:{objectFit:"contain",display:"block"}},c);return a.href?i.jsx("a",{href:a.href,target:"_blank",rel:"noopener noreferrer",className:"l7-control-logo-link",children:d},c):i.jsx("div",{className:"l7-control-logo-link",children:d},c)})});return l?s:i.jsx("div",{className:`l7-control-anchor ${o}`,children:s})}we.mark(w0);function Qo({children:e,defaultSnap:t="collapsed",collapsedHeight:n=80,halfRatio:r=.45,expandedRatio:o=.85,onSnapChange:l,className:s,showHandle:a=!0,borderRadius:c=32}){const d=u.useRef(null),h=u.useRef(0),f=u.useRef(0),p=u.useRef(!1),[g,y]=u.useState(0),[C,b]=u.useState(t),[x,k]=u.useState(!1),L=u.useCallback(()=>{var F;const V=(F=d.current)==null?void 0:F.offsetParent;return V?V.clientHeight:window.innerHeight},[]),z=u.useCallback(V=>{const F=L();switch(V){case"collapsed":return n;case"half":return F*r;case"expanded":return F*o}},[n,r,o,L]);u.useEffect(()=>{y(z(t))},[t,z]);const E=u.useCallback((V,F)=>{const A=z("collapsed"),I=z("half"),m=z("expanded");let w;if(Math.abs(F)>.5)F>0?w=V>I?"expanded":"half":w=V<I?"collapsed":"half";else{const P=Math.abs(V-A),$=Math.abs(V-I),j=Math.abs(V-m),O=Math.min(P,$,j);O===P?w="collapsed":O===$?w="half":w="expanded"}k(!0),b(w),y(z(w)),l==null||l(w),setTimeout(()=>k(!1),300)},[z,l]),T=u.useCallback(V=>{p.current=!0,h.current=V.touches[0].clientY,f.current=g,k(!1)},[g]),M=u.useCallback(V=>{if(!p.current)return;const F=h.current-V.touches[0].clientY,A=L()*o,I=Math.max(n,Math.min(A,f.current+F));y(I)},[n,o,L]),H=u.useCallback(V=>{if(!p.current)return;p.current=!1;const A=(h.current-V.changedTouches[0].clientY)/100;E(g,A)},[g,E]),N=u.useCallback(V=>{p.current=!0,h.current=V.clientY,f.current=g,k(!1);const F=I=>{if(!p.current)return;const m=h.current-I.clientY,w=L()*o,P=Math.max(n,Math.min(w,f.current+m));y(P)},A=I=>{p.current=!1;const w=(h.current-I.clientY)/100,P=L()*o;E(Math.max(n,Math.min(P,f.current+(h.current-I.clientY))),w),document.removeEventListener("mousemove",F),document.removeEventListener("mouseup",A)};document.addEventListener("mousemove",F),document.addEventListener("mouseup",A)},[g,n,o,E,L]);return u.useCallback(V=>{k(!0),b(V),y(z(V)),l==null||l(V),setTimeout(()=>k(!1),300)},[z,l]),i.jsx("div",{ref:d,className:s,style:{position:"absolute",bottom:0,left:0,width:"100%",height:g,zIndex:1e3,pointerEvents:"auto",transition:x?"height 0.3s cubic-bezier(0.4, 0, 0.2, 1)":"none",willChange:"height",touchAction:"none"},children:i.jsxs("div",{style:{width:"100%",height:"100%",background:"var(--color-surface, #f8f9ff)",borderTopLeftRadius:c,borderTopRightRadius:c,boxShadow:"0 -10px 40px rgba(0, 0, 0, 0.15)",borderTop:"1px solid rgba(195, 198, 215, 0.2)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[i.jsx("div",{onTouchStart:T,onTouchMove:M,onTouchEnd:H,onMouseDown:N,style:{padding:"12px 0 16px",cursor:"grab",userSelect:"none",flexShrink:0},children:a&&i.jsx("div",{style:{width:48,height:6,borderRadius:3,background:"rgba(195, 198, 215, 0.5)",margin:"0 auto"}})}),i.jsx("div",{style:{flex:1,overflowY:C==="collapsed"?"hidden":"auto",overflowX:"hidden",padding:"0 16px",WebkitOverflowScrolling:"touch",msOverflowStyle:"none",scrollbarWidth:"none"},children:e})]})})}function Ro({placeholder:e="搜索地点...",onSearch:t,onFilter:n,className:r,trailing:o}){const[l,s]=u.useState(""),a=u.useCallback(d=>{const h=d.target.value;s(h),t==null||t(h)},[t]),c=u.useCallback(()=>{s(""),t==null||t("")},[t]);return i.jsxs("div",{className:`glass-panel ${r??""}`,style:{display:"flex",alignItems:"center",padding:"12px 16px",borderRadius:16,boxShadow:"0 2px 8px rgba(0, 0, 0, 0.08)",border:"1px solid rgba(195, 198, 215, 0.3)"},children:[i.jsx("span",{className:"material-symbols-outlined",style:{color:"var(--color-primary, #004ac6)",marginRight:12,fontSize:22},children:"search"}),i.jsx("input",{type:"text",value:l,onChange:a,placeholder:e,style:{flex:1,border:"none",background:"transparent",outline:"none",fontSize:14,lineHeight:"20px",color:"var(--color-on-surface, #121c2a)"}}),l&&i.jsx("button",{onClick:c,style:{background:"none",border:"none",cursor:"pointer",padding:4,borderRadius:999,display:"flex",alignItems:"center",justifyContent:"center"},children:i.jsx("span",{className:"material-symbols-outlined",style:{fontSize:18,color:"var(--color-on-surface-variant, #434655)"},children:"close"})}),n&&i.jsx("button",{onClick:n,style:{background:"none",border:"none",cursor:"pointer",padding:4,borderRadius:999,display:"flex",alignItems:"center",justifyContent:"center",marginLeft:4},children:i.jsx("span",{className:"material-symbols-outlined",style:{fontSize:22,color:"var(--color-on-surface-variant, #434655)"},children:"tune"})}),o]})}function Wt(e,t){if(!t)return e;const n={...e};for(const r of Object.keys(t)){const o=t[r],l=n[r];o!==null&&typeof o=="object"&&!Array.isArray(o)&&l!==null&&typeof l=="object"&&!Array.isArray(l)?n[r]=Wt(l,o):o!==void 0&&(n[r]=o)}return n}function e5(e,t){return t?Wt(e,t):e}class t5 extends u.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){var r,o;(o=(r=this.props).onError)==null||o.call(r,t,n)}render(){if(this.state.hasError){const{fallback:t}=this.props,{error:n}=this.state;return typeof t=="function"?t(n):t||i.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",height:"100%",padding:32,color:"#666",fontFamily:"system-ui, sans-serif"},children:[i.jsx("span",{className:"material-symbols-outlined",style:{fontSize:48,marginBottom:16,color:"#e53e3e"},children:"error"}),i.jsx("p",{style:{fontSize:16,fontWeight:600,marginBottom:8},children:"地图加载失败"}),i.jsx("p",{style:{fontSize:13,color:"#999"},children:(n==null?void 0:n.message)??"未知错误"})]})}return this.props.children}}return W.ADMIN_SEQUENTIAL_COLORS=l0,W.AiMap=zr,W.AiMapJSONSchema=Ir,W.AnnotationControl=x0,W.ArcFlowLayer=Mo,W.BottomSheet=Qo,W.BubbleLayer=$r,W.ChinaDistrict=eo,W.ControlContainer=gt,W.ControlRegistry=we,W.ControlRenderer=O1,W.DEFAULT_CITY_SOURCE=c0,W.DEFAULT_DISTRICT_SOURCE=u0,W.DEFAULT_PROVINCE_SOURCE=a0,W.DrawControl=Vt,W.ErrorBoundary=t5,W.EventBus=Kt,W.EventBusProvider=e1,W.ExportImageControl=St,W.FillLayer=Yr,W.FullscreenControl=vt,W.GAODE_THEME_PRESETS=wt,W.GeoLocateControl=bt,W.GlyphLayer=bo,W.HeatmapHexagonLayer=t0,W.HeatmapLayer=e0,W.HexagonLayer=t0,W.INDEPENDENT_MAP_THEME_PRESETS=kn,W.IconLayer=g0,W.ImageCalibrationControl=Et,W.ImageLayer=Pr,W.InteractionRenderer=Y1,W.LayerRenderer=y1,W.LayerSwitchControl=zt,W.LegendCategories=At,W.LegendControl=C0,W.LegendDiverging=Ft,W.LegendIcon=Dt,W.LegendLineWidth=It,W.LegendProportion=Pt,W.LegendRamp=Zt,W.LegendRenderer=G1,W.LegendSize=Nt,W.LegendThreshold=Tt,W.LineLayer=Ve,W.LogoControl=w0,W.MAKI_ICONS=Te,W.MAKI_ICON_NAMES=fr,W.MapSceneRenderer=l1,W.MapThemeControl=Mt,W.Marker=Oe,W.MarkerClusterLayer=_r,W.MobileSheetLegend=R1,W.MobileToolbar=Q1,W.MouseLocationControl=kt,W.OPENFREEMAP_THEME_PRESETS=Mn,W.PointLayer=Se,W.PolygonLayer=rt,W.Popup=qe,W.RasterLayer=n0,W.ResponsiveProvider=kr,W.RouteLayer=ko,W.SATELLITE_PROVIDER_NAMES=xo,W.SatelliteLayer=wo,W.ScaleControl=Ct,W.SceneProvider=s1,W.SchemaProvider=Jt,W.SearchBar=Ro,W.ThemeProvider=n1,W.TiffRasterLayer=Vo,W.Tooltip=ht,W.ZoomControl=yt,W.adaptHeatmapLayer=p1,W.adaptImageLayer=g1,W.adaptLineLayer=d1,W.adaptPointLayer=u1,W.adaptPolygonLayer=h1,W.adaptRasterLayer=f1,W.applyControlDefaults=Yt,W.applyLayerDefaults=qt,W.applyMapDefaults=Xe,W.applyResponsiveOverrides=e5,W.applySchemaDefaults=it,W.createBasemap=i1,W.createEventBus=Qt,W.createMakiIconMap=gr,W.createMakiPinMap=W1,W.cx=fe,W.deepMerge=Wt,W.diffSchema=Zr,W.getPopperDirection=Lt,W.hexToRgba=tn,W.makiIconUrl=j1,W.makiPinUrl=B1,W.parseSchema=Xt,W.useControlContainer=Me,W.useEventBus=lt,W.useMapControl=ke,W.useMapPosition=ut,W.usePopperPosition=xt,W.useResponsive=K1,W.useScene=me,W.useSchema=I0,W.useTheme=r1,W.validateAiMapSchema=Fr,W.validateSchema=N0,Object.defineProperty(W,Symbol.toStringTag,{value:"Module"}),W})({},React,React,L7,ReactDOM,clsx,ReactDOM,Supercluster);