@performant-software/geospatial 3.1.0-beta.3 → 3.1.0

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.
Files changed (127) hide show
  1. package/dist/index.cjs14.js +1 -1
  2. package/dist/index.cjs15.js +1 -1
  3. package/dist/index.cjs16.js +1 -1
  4. package/dist/index.cjs17.js +1 -1
  5. package/dist/index.cjs18.js +1 -1
  6. package/dist/index.cjs188.js +1 -1
  7. package/dist/index.cjs19.js +1 -1
  8. package/dist/index.cjs20.js +1 -1
  9. package/dist/index.cjs201.js +7 -1
  10. package/dist/index.cjs201.js.map +1 -1
  11. package/dist/index.cjs202.js +1 -1
  12. package/dist/index.cjs202.js.map +1 -1
  13. package/dist/index.cjs203.js +1 -1
  14. package/dist/index.cjs203.js.map +1 -1
  15. package/dist/index.cjs204.js +1 -1
  16. package/dist/index.cjs204.js.map +1 -1
  17. package/dist/index.cjs205.js +1 -1
  18. package/dist/index.cjs205.js.map +1 -1
  19. package/dist/index.cjs206.js +1 -1
  20. package/dist/index.cjs206.js.map +1 -1
  21. package/dist/index.cjs207.js +1 -1
  22. package/dist/index.cjs207.js.map +1 -1
  23. package/dist/index.cjs208.js +1 -1
  24. package/dist/index.cjs208.js.map +1 -1
  25. package/dist/index.cjs209.js +1 -7
  26. package/dist/index.cjs209.js.map +1 -1
  27. package/dist/index.cjs21.js +1 -1
  28. package/dist/index.cjs210.js +1 -1
  29. package/dist/index.cjs210.js.map +1 -1
  30. package/dist/index.cjs213.js +1 -1
  31. package/dist/index.cjs22.js +1 -1
  32. package/dist/index.cjs23.js +1 -1
  33. package/dist/index.cjs233.js +1 -1
  34. package/dist/index.cjs24.js +1 -1
  35. package/dist/index.cjs256.js +1 -1
  36. package/dist/index.cjs256.js.map +1 -1
  37. package/dist/index.cjs257.js +1 -1
  38. package/dist/index.cjs257.js.map +1 -1
  39. package/dist/index.cjs258.js +1 -1
  40. package/dist/index.cjs258.js.map +1 -1
  41. package/dist/index.cjs259.js +1 -1
  42. package/dist/index.cjs259.js.map +1 -1
  43. package/dist/index.cjs27.js +1 -1
  44. package/dist/index.cjs28.js +1 -1
  45. package/dist/index.cjs29.js +1 -1
  46. package/dist/index.cjs31.js +1 -1
  47. package/dist/index.cjs38.js +1 -1
  48. package/dist/index.cjs71.js +1 -743
  49. package/dist/index.cjs71.js.map +1 -1
  50. package/dist/index.cjs72.js +1 -1
  51. package/dist/index.cjs73.js +1 -1
  52. package/dist/index.cjs73.js.map +1 -1
  53. package/dist/index.cjs74.js +1 -1
  54. package/dist/index.cjs74.js.map +1 -1
  55. package/dist/index.cjs75.js +1 -9
  56. package/dist/index.cjs75.js.map +1 -1
  57. package/dist/index.cjs76.js +3 -11
  58. package/dist/index.cjs76.js.map +1 -1
  59. package/dist/index.cjs77.js +17 -1
  60. package/dist/index.cjs77.js.map +1 -1
  61. package/dist/index.cjs78.js +743 -1
  62. package/dist/index.cjs78.js.map +1 -1
  63. package/dist/index.es14.js +2 -2
  64. package/dist/index.es15.js +4 -4
  65. package/dist/index.es16.js +3 -3
  66. package/dist/index.es17.js +3 -3
  67. package/dist/index.es18.js +1 -1
  68. package/dist/index.es188.js +2 -2
  69. package/dist/index.es19.js +1 -1
  70. package/dist/index.es20.js +1 -1
  71. package/dist/index.es201.js +7505 -241
  72. package/dist/index.es201.js.map +1 -1
  73. package/dist/index.es202.js +2 -43
  74. package/dist/index.es202.js.map +1 -1
  75. package/dist/index.es203.js +243 -3
  76. package/dist/index.es203.js.map +1 -1
  77. package/dist/index.es204.js +40 -8
  78. package/dist/index.es204.js.map +1 -1
  79. package/dist/index.es205.js +3 -11
  80. package/dist/index.es205.js.map +1 -1
  81. package/dist/index.es206.js +9 -29
  82. package/dist/index.es206.js.map +1 -1
  83. package/dist/index.es207.js +10 -13
  84. package/dist/index.es207.js.map +1 -1
  85. package/dist/index.es208.js +30 -4
  86. package/dist/index.es208.js.map +1 -1
  87. package/dist/index.es209.js +13 -7506
  88. package/dist/index.es209.js.map +1 -1
  89. package/dist/index.es21.js +1 -1
  90. package/dist/index.es210.js +5 -2
  91. package/dist/index.es210.js.map +1 -1
  92. package/dist/index.es213.js +1 -1
  93. package/dist/index.es22.js +1 -1
  94. package/dist/index.es23.js +1 -1
  95. package/dist/index.es233.js +1 -1
  96. package/dist/index.es24.js +1 -1
  97. package/dist/index.es256.js +6 -19
  98. package/dist/index.es256.js.map +1 -1
  99. package/dist/index.es257.js +3 -23
  100. package/dist/index.es257.js.map +1 -1
  101. package/dist/index.es258.js +21 -3
  102. package/dist/index.es258.js.map +1 -1
  103. package/dist/index.es259.js +22 -7
  104. package/dist/index.es259.js.map +1 -1
  105. package/dist/index.es27.js +1 -1
  106. package/dist/index.es28.js +2 -2
  107. package/dist/index.es29.js +2 -2
  108. package/dist/index.es31.js +2 -2
  109. package/dist/index.es38.js +1 -1
  110. package/dist/index.es71.js +1954 -21313
  111. package/dist/index.es71.js.map +1 -1
  112. package/dist/index.es72.js +6 -2
  113. package/dist/index.es72.js.map +1 -1
  114. package/dist/index.es73.js +2 -8
  115. package/dist/index.es73.js.map +1 -1
  116. package/dist/index.es74.js +8 -2
  117. package/dist/index.es74.js.map +1 -1
  118. package/dist/index.es75.js +2 -26
  119. package/dist/index.es75.js.map +1 -1
  120. package/dist/index.es76.js +17 -580
  121. package/dist/index.es76.js.map +1 -1
  122. package/dist/index.es77.js +556 -1960
  123. package/dist/index.es77.js.map +1 -1
  124. package/dist/index.es78.js +21351 -5
  125. package/dist/index.es78.js.map +1 -1
  126. package/dist/index.es79.js +2 -2
  127. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";const r=require("./index.cjs78.js"),e=require("./index.cjs77.js");var o=e.__require();const s=r.getDefaultExportFromCjs(o);module.exports=s;
1
+ "use strict";const r=require("./index.cjs72.js"),e=require("./index.cjs71.js");var o=e.__require();const s=r.getDefaultExportFromCjs(o);module.exports=s;
2
2
  //# sourceMappingURL=index.cjs14.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),g=require("./index.cjs26.js"),m=require("./index.cjs201.js"),v=require("./index.cjs202.js"),y=require("./index.cjs203.js"),E=require("./index.cjs204.js");function L(e){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(c,a,i.get?i:{enumerable:!0,get:()=>e[a]})}}return c.default=e,Object.freeze(c)}const s=L(r),d=s.createContext(null);function x(e,c){const a=r.useContext(g.MountedMapsContext),[i,M]=r.useState(null),u=r.useRef(),{current:l}=r.useRef({mapLib:null,map:null});r.useEffect(()=>{const h=e.mapLib;let f=!0,n;return Promise.resolve(h||Promise.resolve().then(()=>require("./index.cjs31.js")).then(t=>t.Li)).then(t=>{if(!f)return;if(!t)throw new Error("Invalid mapLib");const o="Map"in t?t:t.default;if(!o.Map)throw new Error("Invalid mapLib");E(o,e),e.reuseMaps&&(n=m.reuse(e,u.current)),n||(n=new m(o.Map,e,u.current)),l.map=v(n),l.mapLib=o,M(n),a?.onMapMount(l.map,e.id)}).catch(t=>{const{onError:o}=e;o?o({type:"error",target:null,originalEvent:null,error:t}):console.error(t)}),()=>{f=!1,n&&(a?.onMapUnmount(e.id),e.reuseMaps?n.recycle():n.destroy())}},[]),y(()=>{i&&i.setProps(e)}),r.useImperativeHandle(c,()=>l.map,[i]);const b=r.useMemo(()=>({position:"relative",width:"100%",height:"100%",...e.style}),[e.style]),p={height:"100%"};return s.createElement("div",{id:e.id,ref:u,style:b},i&&s.createElement(d.Provider,{value:l},s.createElement("div",{"mapboxgl-children":"",style:p},e.children)))}const w=s.forwardRef(x);exports.Map=w;exports.MapContext=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),g=require("./index.cjs26.js"),m=require("./index.cjs203.js"),v=require("./index.cjs204.js"),y=require("./index.cjs205.js"),E=require("./index.cjs206.js");function L(e){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(c,a,i.get?i:{enumerable:!0,get:()=>e[a]})}}return c.default=e,Object.freeze(c)}const s=L(r),d=s.createContext(null);function x(e,c){const a=r.useContext(g.MountedMapsContext),[i,M]=r.useState(null),u=r.useRef(),{current:l}=r.useRef({mapLib:null,map:null});r.useEffect(()=>{const h=e.mapLib;let f=!0,n;return Promise.resolve(h||Promise.resolve().then(()=>require("./index.cjs31.js")).then(t=>t.Li)).then(t=>{if(!f)return;if(!t)throw new Error("Invalid mapLib");const o="Map"in t?t:t.default;if(!o.Map)throw new Error("Invalid mapLib");E(o,e),e.reuseMaps&&(n=m.reuse(e,u.current)),n||(n=new m(o.Map,e,u.current)),l.map=v(n),l.mapLib=o,M(n),a?.onMapMount(l.map,e.id)}).catch(t=>{const{onError:o}=e;o?o({type:"error",target:null,originalEvent:null,error:t}):console.error(t)}),()=>{f=!1,n&&(a?.onMapUnmount(e.id),e.reuseMaps?n.recycle():n.destroy())}},[]),y(()=>{i&&i.setProps(e)}),r.useImperativeHandle(c,()=>l.map,[i]);const b=r.useMemo(()=>({position:"relative",width:"100%",height:"100%",...e.style}),[e.style]),p={height:"100%"};return s.createElement("div",{id:e.id,ref:u,style:b},i&&s.createElement(d.Provider,{value:l},s.createElement("div",{"mapboxgl-children":"",style:p},e.children)))}const w=s.forwardRef(x);exports.Map=w;exports.MapContext=d;
2
2
  //# sourceMappingURL=index.cjs15.js.map
@@ -1,2 +1,2 @@
1
- "use strict";const a=require("react"),D=require("react-dom"),P=require("./index.cjs205.js"),q=require("./index.cjs15.js"),C=require("./index.cjs206.js"),k=require("./index.cjs207.js");function N(t){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const l=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(i,s,l.get?l:{enumerable:!0,get:()=>t[s]})}}return i.default=t,Object.freeze(i)}const O=N(a);a.memo(a.forwardRef((t,i)=>{const{map:s,mapLib:l}=a.useContext(q.MapContext),c=a.useRef({props:t}),e=a.useMemo(()=>{let g=!1;O.Children.forEach(t.children,n=>{n&&(g=!0)});const y={...t,element:g?document.createElement("div"):void 0},o=new l.Marker(y);return o.setLngLat([t.longitude,t.latitude]),o.getElement().addEventListener("click",n=>{c.current.props.onClick?.({type:"click",target:o,originalEvent:n})}),o.on("dragstart",n=>{const r=n;r.lngLat=e.getLngLat(),c.current.props.onDragStart?.(r)}),o.on("drag",n=>{const r=n;r.lngLat=e.getLngLat(),c.current.props.onDrag?.(r)}),o.on("dragend",n=>{const r=n;r.lngLat=e.getLngLat(),c.current.props.onDragEnd?.(r)}),o},[]);a.useEffect(()=>(e.addTo(s.getMap()),()=>{e.remove()}),[]);const{longitude:f,latitude:m,offset:u,style:d,draggable:p=!1,popup:L=null,rotation:E=0,rotationAlignment:R="auto",pitchAlignment:b="auto"}=t;a.useEffect(()=>{P.applyReactStyle(e.getElement(),d)},[d]),a.useImperativeHandle(i,()=>e,[]);const v=c.current.props;(e.getLngLat().lng!==f||e.getLngLat().lat!==m)&&e.setLngLat([f,m]),u&&!C.arePointsEqual(e.getOffset(),u)&&e.setOffset(u),e.isDraggable()!==p&&e.setDraggable(p),e.getRotation()!==E&&e.setRotation(E),e.getRotationAlignment()!==R&&e.setRotationAlignment(R),e.getPitchAlignment()!==b&&e.setPitchAlignment(b),e.getPopup()!==L&&e.setPopup(L);const h=k.compareClassNames(v.className,t.className);if(h)for(const g of h)e.toggleClassName(g);return c.current.props=t,D.createPortal(t.children,e.getElement())}));
1
+ "use strict";const a=require("react"),D=require("react-dom"),P=require("./index.cjs207.js"),q=require("./index.cjs15.js"),C=require("./index.cjs208.js"),k=require("./index.cjs209.js");function N(t){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const l=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(i,s,l.get?l:{enumerable:!0,get:()=>t[s]})}}return i.default=t,Object.freeze(i)}const O=N(a);a.memo(a.forwardRef((t,i)=>{const{map:s,mapLib:l}=a.useContext(q.MapContext),c=a.useRef({props:t}),e=a.useMemo(()=>{let g=!1;O.Children.forEach(t.children,n=>{n&&(g=!0)});const y={...t,element:g?document.createElement("div"):void 0},o=new l.Marker(y);return o.setLngLat([t.longitude,t.latitude]),o.getElement().addEventListener("click",n=>{c.current.props.onClick?.({type:"click",target:o,originalEvent:n})}),o.on("dragstart",n=>{const r=n;r.lngLat=e.getLngLat(),c.current.props.onDragStart?.(r)}),o.on("drag",n=>{const r=n;r.lngLat=e.getLngLat(),c.current.props.onDrag?.(r)}),o.on("dragend",n=>{const r=n;r.lngLat=e.getLngLat(),c.current.props.onDragEnd?.(r)}),o},[]);a.useEffect(()=>(e.addTo(s.getMap()),()=>{e.remove()}),[]);const{longitude:f,latitude:m,offset:u,style:d,draggable:p=!1,popup:L=null,rotation:E=0,rotationAlignment:R="auto",pitchAlignment:b="auto"}=t;a.useEffect(()=>{P.applyReactStyle(e.getElement(),d)},[d]),a.useImperativeHandle(i,()=>e,[]);const v=c.current.props;(e.getLngLat().lng!==f||e.getLngLat().lat!==m)&&e.setLngLat([f,m]),u&&!C.arePointsEqual(e.getOffset(),u)&&e.setOffset(u),e.isDraggable()!==p&&e.setDraggable(p),e.getRotation()!==E&&e.setRotation(E),e.getRotationAlignment()!==R&&e.setRotationAlignment(R),e.getPitchAlignment()!==b&&e.setPitchAlignment(b),e.getPopup()!==L&&e.setPopup(L);const h=k.compareClassNames(v.className,t.className);if(h)for(const g of h)e.toggleClassName(g);return c.current.props=t,D.createPortal(t.children,e.getElement())}));
2
2
  //# sourceMappingURL=index.cjs16.js.map
@@ -1,2 +1,2 @@
1
- "use strict";const f=require("react-dom"),a=require("react"),m=require("./index.cjs205.js"),d=require("./index.cjs15.js"),g=require("./index.cjs206.js"),h=require("./index.cjs207.js");a.memo(a.forwardRef((e,l)=>{const{map:u,mapLib:r}=a.useContext(d.MapContext),i=a.useMemo(()=>document.createElement("div"),[]),s=a.useRef({props:e}),t=a.useMemo(()=>{const n={...e},o=new r.Popup(n);return o.setLngLat([e.longitude,e.latitude]),o.once("open",c=>{s.current.props.onOpen?.(c)}),o},[]);if(a.useEffect(()=>{const n=o=>{s.current.props.onClose?.(o)};return t.on("close",n),t.setDOMContent(i).addTo(u.getMap()),()=>{t.off("close",n),t.isOpen()&&t.remove()}},[]),a.useEffect(()=>{m.applyReactStyle(t.getElement(),e.style)},[e.style]),a.useImperativeHandle(l,()=>t,[]),t.isOpen()){const n=s.current.props;(t.getLngLat().lng!==e.longitude||t.getLngLat().lat!==e.latitude)&&t.setLngLat([e.longitude,e.latitude]),e.offset&&!g.deepEqual(n.offset,e.offset)&&t.setOffset(e.offset),(n.anchor!==e.anchor||n.maxWidth!==e.maxWidth)&&(t.options.anchor=e.anchor,t.setMaxWidth(e.maxWidth));const o=h.compareClassNames(n.className,e.className);if(o)for(const c of o)t.toggleClassName(c);s.current.props=e}return f.createPortal(e.children,i)}));
1
+ "use strict";const f=require("react-dom"),a=require("react"),m=require("./index.cjs207.js"),d=require("./index.cjs15.js"),g=require("./index.cjs208.js"),h=require("./index.cjs209.js");a.memo(a.forwardRef((e,l)=>{const{map:u,mapLib:r}=a.useContext(d.MapContext),i=a.useMemo(()=>document.createElement("div"),[]),s=a.useRef({props:e}),t=a.useMemo(()=>{const n={...e},o=new r.Popup(n);return o.setLngLat([e.longitude,e.latitude]),o.once("open",c=>{s.current.props.onOpen?.(c)}),o},[]);if(a.useEffect(()=>{const n=o=>{s.current.props.onClose?.(o)};return t.on("close",n),t.setDOMContent(i).addTo(u.getMap()),()=>{t.off("close",n),t.isOpen()&&t.remove()}},[]),a.useEffect(()=>{m.applyReactStyle(t.getElement(),e.style)},[e.style]),a.useImperativeHandle(l,()=>t,[]),t.isOpen()){const n=s.current.props;(t.getLngLat().lng!==e.longitude||t.getLngLat().lat!==e.latitude)&&t.setLngLat([e.longitude,e.latitude]),e.offset&&!g.deepEqual(n.offset,e.offset)&&t.setOffset(e.offset),(n.anchor!==e.anchor||n.maxWidth!==e.maxWidth)&&(t.options.anchor=e.anchor,t.setMaxWidth(e.maxWidth));const o=h.compareClassNames(n.className,e.className);if(o)for(const c of o)t.toggleClassName(c);s.current.props=e}return f.createPortal(e.children,i)}));
2
2
  //# sourceMappingURL=index.cjs17.js.map
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("react"),i=require("./index.cjs205.js"),r=require("./index.cjs25.js");function l(t){const n=r.useControl(({mapLib:o})=>new o.AttributionControl(t),{position:t.position});return e.useEffect(()=>{i.applyReactStyle(n._container,t.style)},[t.style]),null}e.memo(l);
1
+ "use strict";const e=require("react"),i=require("./index.cjs207.js"),r=require("./index.cjs25.js");function l(t){const n=r.useControl(({mapLib:o})=>new o.AttributionControl(t),{position:t.position});return e.useEffect(()=>{i.applyReactStyle(n._container,t.style)},[t.style]),null}e.memo(l);
2
2
  //# sourceMappingURL=index.cjs18.js.map
@@ -1,2 +1,2 @@
1
- "use strict";const s=require("./index.cjs78.js"),r=require("./index.cjs209.js");var t=r.__require();const e=s.getDefaultExportFromCjs(t);module.exports=e;
1
+ "use strict";const s=require("./index.cjs72.js"),r=require("./index.cjs201.js");var t=r.__require();const e=s.getDefaultExportFromCjs(t);module.exports=e;
2
2
  //# sourceMappingURL=index.cjs188.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),l=require("./index.cjs205.js"),r=require("./index.cjs25.js");function c(e){const n=r.useControl(({mapLib:o})=>new o.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)}),{position:e.position});return t.useEffect(()=>{l.applyReactStyle(n._controlContainer,e.style)},[e.style]),null}const u=t.memo(c);exports.FullscreenControl=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),l=require("./index.cjs207.js"),r=require("./index.cjs25.js");function c(e){const n=r.useControl(({mapLib:o})=>new o.FullscreenControl({container:e.containerId&&document.getElementById(e.containerId)}),{position:e.position});return t.useEffect(()=>{l.applyReactStyle(n._controlContainer,e.style)},[e.style]),null}const u=t.memo(c);exports.FullscreenControl=u;
2
2
  //# sourceMappingURL=index.cjs19.js.map
@@ -1,2 +1,2 @@
1
- "use strict";const n=require("react"),l=require("./index.cjs205.js"),i=require("./index.cjs25.js");function p(t,s){const r=n.useRef({props:t}),c=i.useControl(({mapLib:u})=>{const o=new u.GeolocateControl(t),a=o._setupUI;return o._setupUI=()=>{o._container.hasChildNodes()||a()},o.on("geolocate",e=>{r.current.props.onGeolocate?.(e)}),o.on("error",e=>{r.current.props.onError?.(e)}),o.on("outofmaxbounds",e=>{r.current.props.onOutOfMaxBounds?.(e)}),o.on("trackuserlocationstart",e=>{r.current.props.onTrackUserLocationStart?.(e)}),o.on("trackuserlocationend",e=>{r.current.props.onTrackUserLocationEnd?.(e)}),o},{position:t.position});return r.current.props=t,n.useImperativeHandle(s,()=>c,[]),n.useEffect(()=>{l.applyReactStyle(c._container,t.style)},[t.style]),null}n.memo(n.forwardRef(p));
1
+ "use strict";const n=require("react"),l=require("./index.cjs207.js"),i=require("./index.cjs25.js");function p(t,s){const r=n.useRef({props:t}),c=i.useControl(({mapLib:u})=>{const o=new u.GeolocateControl(t),a=o._setupUI;return o._setupUI=()=>{o._container.hasChildNodes()||a()},o.on("geolocate",e=>{r.current.props.onGeolocate?.(e)}),o.on("error",e=>{r.current.props.onError?.(e)}),o.on("outofmaxbounds",e=>{r.current.props.onOutOfMaxBounds?.(e)}),o.on("trackuserlocationstart",e=>{r.current.props.onTrackUserLocationStart?.(e)}),o.on("trackuserlocationend",e=>{r.current.props.onTrackUserLocationEnd?.(e)}),o},{position:t.position});return r.current.props=t,n.useImperativeHandle(s,()=>c,[]),n.useEffect(()=>{l.applyReactStyle(c._container,t.style)},[t.style]),null}n.memo(n.forwardRef(p));
2
2
  //# sourceMappingURL=index.cjs20.js.map