@performant-software/geospatial 2.2.23-beta.6 → 2.2.23-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +2 -0
- package/build/index.js.map +1 -0
- package/build/main.css +127 -0
- package/dist/index.cjs14.js +1 -1
- package/dist/index.cjs15.js +1 -1
- package/dist/index.cjs16.js +1 -1
- package/dist/index.cjs17.js +1 -1
- package/dist/index.cjs19.js +1 -1
- package/dist/index.cjs243.js +1 -1
- package/dist/index.cjs245.js +1 -1
- package/dist/index.cjs250.js +1 -1
- package/dist/index.cjs253.js +1 -1
- package/dist/index.cjs256.js +1 -1
- package/dist/index.cjs256.js.map +1 -1
- package/dist/index.cjs257.js +1 -1
- package/dist/index.cjs257.js.map +1 -1
- package/dist/index.cjs258.js +1 -1
- package/dist/index.cjs258.js.map +1 -1
- package/dist/index.cjs52.js +1 -1
- package/dist/index.cjs59.js +1 -1
- package/dist/index.cjs6.js +1 -1
- package/dist/index.cjs6.js.map +1 -1
- package/dist/index.cjs60.js +9 -1
- package/dist/index.cjs60.js.map +1 -1
- package/dist/index.cjs61.js +19 -1
- package/dist/index.cjs61.js.map +1 -1
- package/dist/index.cjs62.js +1 -9
- package/dist/index.cjs62.js.map +1 -1
- package/dist/index.cjs63.js +1 -19
- package/dist/index.cjs63.js.map +1 -1
- package/dist/index.cjs67.js +1 -1
- package/dist/index.cjs67.js.map +1 -1
- package/dist/index.cjs68.js +1 -1
- package/dist/index.cjs68.js.map +1 -1
- package/dist/index.cjs69.js +1 -1
- package/dist/index.cjs69.js.map +1 -1
- package/dist/index.cjs70.js +1 -1
- package/dist/index.cjs70.js.map +1 -1
- package/dist/index.cjs71.js +1 -1
- package/dist/index.cjs71.js.map +1 -1
- package/dist/index.cjs72.js +1 -1
- package/dist/index.cjs72.js.map +1 -1
- package/dist/index.cjs73.js +1 -1
- package/dist/index.cjs73.js.map +1 -1
- package/dist/index.cjs74.js +1 -1
- package/dist/index.cjs74.js.map +1 -1
- package/dist/index.cjs75.js +1 -1
- package/dist/index.cjs75.js.map +1 -1
- package/dist/index.cjs76.js +1 -1
- package/dist/index.cjs76.js.map +1 -1
- package/dist/index.cjs77.js +1 -1
- package/dist/index.cjs77.js.map +1 -1
- package/dist/index.cjs78.js +1 -1
- package/dist/index.cjs78.js.map +1 -1
- package/dist/index.cjs79.js +1 -1
- package/dist/index.cjs79.js.map +1 -1
- package/dist/index.cjs80.js +1 -1
- package/dist/index.cjs80.js.map +1 -1
- package/dist/index.es14.js +2 -2
- package/dist/index.es15.js +8 -8
- package/dist/index.es16.js +1 -1
- package/dist/index.es17.js +3 -3
- package/dist/index.es19.js +1 -1
- package/dist/index.es243.js +1 -1
- package/dist/index.es245.js +1 -1
- package/dist/index.es250.js +1 -1
- package/dist/index.es253.js +1 -1
- package/dist/index.es256.js +2 -15
- package/dist/index.es256.js.map +1 -1
- package/dist/index.es257.js +4 -2
- package/dist/index.es257.js.map +1 -1
- package/dist/index.es258.js +15 -4
- package/dist/index.es258.js.map +1 -1
- package/dist/index.es52.js +4 -4
- package/dist/index.es59.js +2 -6
- package/dist/index.es59.js.map +1 -1
- package/dist/index.es6.js +19 -19
- package/dist/index.es6.js.map +1 -1
- package/dist/index.es60.js +30 -2
- package/dist/index.es60.js.map +1 -1
- package/dist/index.es61.js +602 -2
- package/dist/index.es61.js.map +1 -1
- package/dist/index.es62.js +5 -29
- package/dist/index.es62.js.map +1 -1
- package/dist/index.es63.js +2 -602
- package/dist/index.es63.js.map +1 -1
- package/dist/index.es67.js +54 -27
- package/dist/index.es67.js.map +1 -1
- package/dist/index.es68.js +47 -56
- package/dist/index.es68.js.map +1 -1
- package/dist/index.es69.js +37 -46
- package/dist/index.es69.js.map +1 -1
- package/dist/index.es70.js +11 -38
- package/dist/index.es70.js.map +1 -1
- package/dist/index.es71.js +13 -10
- package/dist/index.es71.js.map +1 -1
- package/dist/index.es72.js +29 -14
- package/dist/index.es72.js.map +1 -1
- package/dist/index.es73.js +14 -29
- package/dist/index.es73.js.map +1 -1
- package/dist/index.es74.js +12 -13
- package/dist/index.es74.js.map +1 -1
- package/dist/index.es75.js +12 -13
- package/dist/index.es75.js.map +1 -1
- package/dist/index.es76.js +2 -51
- package/dist/index.es76.js.map +1 -1
- package/dist/index.es77.js +2 -65
- package/dist/index.es77.js.map +1 -1
- package/dist/index.es78.js +27 -10
- package/dist/index.es78.js.map +1 -1
- package/dist/index.es79.js +51 -2
- package/dist/index.es79.js.map +1 -1
- package/dist/index.es80.js +65 -2
- package/dist/index.es80.js.map +1 -1
- package/package.json +1 -1
- package/src/components/LocationMarkers.js +11 -1
- package/types/components/LocationMarker.js.flow +82 -0
- package/types/components/LocationMarkers.js.flow +11 -1
package/dist/index.es79.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es79.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"index.es79.js","sources":["../../../node_modules/react-map-gl/dist/esm/components/layer.js"],"sourcesContent":["import { useContext, useEffect, useMemo, useState, useRef } from 'react';\nimport { MapContext } from './map';\nimport assert from '../utils/assert';\nimport { deepEqual } from '../utils/deep-equal';\n/* eslint-disable complexity, max-statements */\nfunction updateLayer(map, id, props, prevProps) {\n assert(props.id === prevProps.id, 'layer id changed');\n assert(props.type === prevProps.type, 'layer type changed');\n if (props.type === 'custom' || prevProps.type === 'custom') {\n return;\n }\n const { layout = {}, paint = {}, filter, minzoom, maxzoom, beforeId } = props;\n if (beforeId !== prevProps.beforeId) {\n map.moveLayer(id, beforeId);\n }\n if (layout !== prevProps.layout) {\n const prevLayout = prevProps.layout || {};\n for (const key in layout) {\n if (!deepEqual(layout[key], prevLayout[key])) {\n map.setLayoutProperty(id, key, layout[key]);\n }\n }\n for (const key in prevLayout) {\n if (!layout.hasOwnProperty(key)) {\n map.setLayoutProperty(id, key, undefined);\n }\n }\n }\n if (paint !== prevProps.paint) {\n const prevPaint = prevProps.paint || {};\n for (const key in paint) {\n if (!deepEqual(paint[key], prevPaint[key])) {\n map.setPaintProperty(id, key, paint[key]);\n }\n }\n for (const key in prevPaint) {\n if (!paint.hasOwnProperty(key)) {\n map.setPaintProperty(id, key, undefined);\n }\n }\n }\n if (!deepEqual(filter, prevProps.filter)) {\n map.setFilter(id, filter);\n }\n if (minzoom !== prevProps.minzoom || maxzoom !== prevProps.maxzoom) {\n map.setLayerZoomRange(id, minzoom, maxzoom);\n }\n}\nfunction createLayer(map, id, props) {\n // @ts-ignore\n if (map.style && map.style._loaded && (!('source' in props) || map.getSource(props.source))) {\n const options = { ...props, id };\n delete options.beforeId;\n // @ts-ignore\n map.addLayer(options, props.beforeId);\n }\n}\n/* eslint-enable complexity, max-statements */\nlet layerCounter = 0;\nfunction Layer(props) {\n const map = useContext(MapContext).map.getMap();\n const propsRef = useRef(props);\n const [, setStyleLoaded] = useState(0);\n const id = useMemo(() => props.id || `jsx-layer-${layerCounter++}`, []);\n useEffect(() => {\n if (map) {\n const forceUpdate = () => setStyleLoaded(version => version + 1);\n map.on('styledata', forceUpdate);\n forceUpdate();\n return () => {\n map.off('styledata', forceUpdate);\n // @ts-ignore\n if (map.style && map.style._loaded && map.getLayer(id)) {\n map.removeLayer(id);\n }\n };\n }\n return undefined;\n }, [map]);\n // @ts-ignore\n const layer = map && map.style && map.getLayer(id);\n if (layer) {\n try {\n updateLayer(map, id, props, propsRef.current);\n }\n catch (error) {\n console.warn(error); // eslint-disable-line\n }\n }\n else {\n createLayer(map, id, props);\n }\n // Store last rendered props\n propsRef.current = props;\n return null;\n}\nexport default Layer;\n//# sourceMappingURL=layer.js.map"],"names":["updateLayer","map","id","props","prevProps","assert","layout","paint","filter","minzoom","maxzoom","beforeId","prevLayout","key","deepEqual","prevPaint","createLayer","options","layerCounter","Layer","useContext","MapContext","propsRef","useRef","setStyleLoaded","useState","useMemo","useEffect","forceUpdate","version","error"],"mappings":";;;;AAKA,SAASA,EAAYC,GAAKC,GAAIC,GAAOC,GAAW;AAG5C,MAFAC,EAAOF,EAAM,OAAOC,EAAU,IAAI,kBAAkB,GACpDC,EAAOF,EAAM,SAASC,EAAU,MAAM,oBAAoB,GACtDD,EAAM,SAAS,YAAYC,EAAU,SAAS;AAC9C;AAEE,QAAA,EAAE,QAAAE,IAAS,IAAI,OAAAC,IAAQ,CAAC,GAAG,QAAAC,GAAQ,SAAAC,GAAS,SAAAC,GAAS,UAAAC,EAAa,IAAAR;AAIpE,MAHAQ,MAAaP,EAAU,YACnBH,EAAA,UAAUC,GAAIS,CAAQ,GAE1BL,MAAWF,EAAU,QAAQ;AACvB,UAAAQ,IAAaR,EAAU,UAAU;AACvC,eAAWS,KAAOP;AACV,MAACQ,EAAUR,EAAOO,CAAG,GAAGD,EAAWC,CAAG,CAAC,KACvCZ,EAAI,kBAAkBC,GAAIW,GAAKP,EAAOO,CAAG,CAAC;AAGlD,eAAWA,KAAOD;AACd,MAAKN,EAAO,eAAeO,CAAG,KACtBZ,EAAA,kBAAkBC,GAAIW,GAAK,MAAS;AAAA,EAGpD;AACI,MAAAN,MAAUH,EAAU,OAAO;AACrB,UAAAW,IAAYX,EAAU,SAAS;AACrC,eAAWS,KAAON;AACV,MAACO,EAAUP,EAAMM,CAAG,GAAGE,EAAUF,CAAG,CAAC,KACrCZ,EAAI,iBAAiBC,GAAIW,GAAKN,EAAMM,CAAG,CAAC;AAGhD,eAAWA,KAAOE;AACd,MAAKR,EAAM,eAAeM,CAAG,KACrBZ,EAAA,iBAAiBC,GAAIW,GAAK,MAAS;AAAA,EAGnD;AACA,EAAKC,EAAUN,GAAQJ,EAAU,MAAM,KAC/BH,EAAA,UAAUC,GAAIM,CAAM,IAExBC,MAAYL,EAAU,WAAWM,MAAYN,EAAU,YACnDH,EAAA,kBAAkBC,GAAIO,GAASC,CAAO;AAElD;AACA,SAASM,EAAYf,GAAKC,GAAIC,GAAO;AAEjC,MAAIF,EAAI,SAASA,EAAI,MAAM,YAAY,EAAE,YAAYE,MAAUF,EAAI,UAAUE,EAAM,MAAM,IAAI;AACzF,UAAMc,IAAU,EAAE,GAAGd,GAAO,IAAAD,EAAG;AAC/B,WAAOe,EAAQ,UAEXhB,EAAA,SAASgB,GAASd,EAAM,QAAQ;AAAA,EACxC;AACJ;AAEA,IAAIe,IAAe;AACnB,SAASC,EAAMhB,GAAO;AAClB,QAAMF,IAAMmB,EAAWC,CAAU,EAAE,IAAI,OAAO,GACxCC,IAAWC,EAAOpB,CAAK,GACvB,GAAGqB,CAAc,IAAIC,EAAS,CAAC,GAC/BvB,IAAKwB,EAAQ,MAAMvB,EAAM,MAAM,aAAae,GAAc,IAAI,CAAA,CAAE;AAkBtE,MAjBAS,EAAU,MAAM;AACZ,QAAI1B,GAAK;AACL,YAAM2B,IAAc,MAAMJ,EAAe,CAAAK,MAAWA,IAAU,CAAC;AAC3D,aAAA5B,EAAA,GAAG,aAAa2B,CAAW,GACnBA,KACL,MAAM;AACL,QAAA3B,EAAA,IAAI,aAAa2B,CAAW,GAE5B3B,EAAI,SAASA,EAAI,MAAM,WAAWA,EAAI,SAASC,CAAE,KACjDD,EAAI,YAAYC,CAAE;AAAA,MACtB;AAAA,IAER;AAAA,EACO,GACR,CAACD,CAAG,CAAC,GAEMA,KAAOA,EAAI,SAASA,EAAI,SAASC,CAAE;AAEzC,QAAA;AACA,MAAAF,EAAYC,GAAKC,GAAIC,GAAOmB,EAAS,OAAO;AAAA,aAEzCQ,GAAO;AACV,cAAQ,KAAKA,CAAK;AAAA,IACtB;AAAA;AAGY,IAAAd,EAAAf,GAAKC,GAAIC,CAAK;AAG9B,SAAAmB,EAAS,UAAUnB,GACZ;AACX;","x_google_ignoreList":[0]}
|
package/dist/index.es80.js
CHANGED
|
@@ -1,5 +1,68 @@
|
|
|
1
|
-
|
|
1
|
+
import * as u from "react";
|
|
2
|
+
import { useContext as f, useRef as y, useState as m, useMemo as g, useEffect as S, cloneElement as h } from "react";
|
|
3
|
+
import { MapContext as C } from "./index.es67.js";
|
|
4
|
+
import s from "./index.es204.js";
|
|
5
|
+
import { deepEqual as v } from "./index.es203.js";
|
|
6
|
+
let x = 0;
|
|
7
|
+
function U(t, e, a) {
|
|
8
|
+
if (t.style && t.style._loaded) {
|
|
9
|
+
const n = { ...a };
|
|
10
|
+
return delete n.id, delete n.children, t.addSource(e, n), t.getSource(e);
|
|
11
|
+
}
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
function b(t, e, a) {
|
|
15
|
+
s(e.id === a.id, "source id changed"), s(e.type === a.type, "source type changed");
|
|
16
|
+
let n = "", r = 0;
|
|
17
|
+
for (const o in e)
|
|
18
|
+
o !== "children" && o !== "id" && !v(a[o], e[o]) && (n = o, r++);
|
|
19
|
+
if (!r)
|
|
20
|
+
return;
|
|
21
|
+
const l = e.type;
|
|
22
|
+
if (l === "geojson")
|
|
23
|
+
t.setData(e.data);
|
|
24
|
+
else if (l === "image")
|
|
25
|
+
t.updateImage({
|
|
26
|
+
url: e.url,
|
|
27
|
+
coordinates: e.coordinates
|
|
28
|
+
});
|
|
29
|
+
else if ("setCoordinates" in t && r === 1 && n === "coordinates")
|
|
30
|
+
t.setCoordinates(e.coordinates);
|
|
31
|
+
else if ("setUrl" in t)
|
|
32
|
+
switch (n) {
|
|
33
|
+
case "url":
|
|
34
|
+
t.setUrl(e.url);
|
|
35
|
+
break;
|
|
36
|
+
case "tiles":
|
|
37
|
+
t.setTiles(e.tiles);
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
else
|
|
41
|
+
console.warn(`Unable to update <Source> prop: ${n}`);
|
|
42
|
+
}
|
|
43
|
+
function R(t) {
|
|
44
|
+
const e = f(C).map.getMap(), a = y(t), [, n] = m(0), r = g(() => t.id || `jsx-source-${x++}`, []);
|
|
45
|
+
S(() => {
|
|
46
|
+
if (e) {
|
|
47
|
+
const o = () => setTimeout(() => n((i) => i + 1), 0);
|
|
48
|
+
return e.on("styledata", o), o(), () => {
|
|
49
|
+
var i;
|
|
50
|
+
if (e.off("styledata", o), e.style && e.style._loaded && e.getSource(r)) {
|
|
51
|
+
const c = (i = e.getStyle()) === null || i === void 0 ? void 0 : i.layers;
|
|
52
|
+
if (c)
|
|
53
|
+
for (const d of c)
|
|
54
|
+
d.source === r && e.removeLayer(d.id);
|
|
55
|
+
e.removeSource(r);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}, [e]);
|
|
60
|
+
let l = e && e.style && e.getSource(r);
|
|
61
|
+
return l ? b(l, t, a.current) : l = U(e, r, t), a.current = t, l && u.Children.map(t.children, (o) => o && h(o, {
|
|
62
|
+
source: r
|
|
63
|
+
})) || null;
|
|
64
|
+
}
|
|
2
65
|
export {
|
|
3
|
-
|
|
66
|
+
R as default
|
|
4
67
|
};
|
|
5
68
|
//# sourceMappingURL=index.es80.js.map
|
package/dist/index.es80.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es80.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"index.es80.js","sources":["../../../node_modules/react-map-gl/dist/esm/components/source.js"],"sourcesContent":["import * as React from 'react';\nimport { useContext, useEffect, useMemo, useState, useRef } from 'react';\nimport { cloneElement } from 'react';\nimport { MapContext } from './map';\nimport assert from '../utils/assert';\nimport { deepEqual } from '../utils/deep-equal';\nlet sourceCounter = 0;\nfunction createSource(map, id, props) {\n // @ts-ignore\n if (map.style && map.style._loaded) {\n const options = { ...props };\n delete options.id;\n delete options.children;\n // @ts-ignore\n map.addSource(id, options);\n return map.getSource(id);\n }\n return null;\n}\n/* eslint-disable complexity */\nfunction updateSource(source, props, prevProps) {\n assert(props.id === prevProps.id, 'source id changed');\n assert(props.type === prevProps.type, 'source type changed');\n let changedKey = '';\n let changedKeyCount = 0;\n for (const key in props) {\n if (key !== 'children' && key !== 'id' && !deepEqual(prevProps[key], props[key])) {\n changedKey = key;\n changedKeyCount++;\n }\n }\n if (!changedKeyCount) {\n return;\n }\n const type = props.type;\n if (type === 'geojson') {\n source.setData(props.data);\n }\n else if (type === 'image') {\n source.updateImage({\n url: props.url,\n coordinates: props.coordinates\n });\n }\n else if ('setCoordinates' in source && changedKeyCount === 1 && changedKey === 'coordinates') {\n source.setCoordinates(props.coordinates);\n }\n else if ('setUrl' in source) {\n // Added in 1.12.0:\n // vectorTileSource.setTiles\n // vectorTileSource.setUrl\n switch (changedKey) {\n case 'url':\n source.setUrl(props.url);\n break;\n case 'tiles':\n source.setTiles(props.tiles);\n break;\n default:\n }\n }\n else {\n // eslint-disable-next-line\n console.warn(`Unable to update <Source> prop: ${changedKey}`);\n }\n}\n/* eslint-enable complexity */\nfunction Source(props) {\n const map = useContext(MapContext).map.getMap();\n const propsRef = useRef(props);\n const [, setStyleLoaded] = useState(0);\n const id = useMemo(() => props.id || `jsx-source-${sourceCounter++}`, []);\n useEffect(() => {\n if (map) {\n /* global setTimeout */\n const forceUpdate = () => setTimeout(() => setStyleLoaded(version => version + 1), 0);\n map.on('styledata', forceUpdate);\n forceUpdate();\n return () => {\n var _a;\n map.off('styledata', forceUpdate);\n // @ts-ignore\n if (map.style && map.style._loaded && map.getSource(id)) {\n // Parent effects are destroyed before child ones, see\n // https://github.com/facebook/react/issues/16728\n // Source can only be removed after all child layers are removed\n const allLayers = (_a = map.getStyle()) === null || _a === void 0 ? void 0 : _a.layers;\n if (allLayers) {\n for (const layer of allLayers) {\n // @ts-ignore (2339) source does not exist on all layer types\n if (layer.source === id) {\n map.removeLayer(layer.id);\n }\n }\n }\n map.removeSource(id);\n }\n };\n }\n return undefined;\n }, [map]);\n // @ts-ignore\n let source = map && map.style && map.getSource(id);\n if (source) {\n updateSource(source, props, propsRef.current);\n }\n else {\n source = createSource(map, id, props);\n }\n propsRef.current = props;\n return ((source &&\n React.Children.map(props.children, child => child &&\n cloneElement(child, {\n source: id\n }))) ||\n null);\n}\nexport default Source;\n//# sourceMappingURL=source.js.map"],"names":["sourceCounter","createSource","map","id","props","options","updateSource","source","prevProps","assert","changedKey","changedKeyCount","key","deepEqual","type","Source","useContext","MapContext","propsRef","useRef","setStyleLoaded","useState","useMemo","useEffect","forceUpdate","version","_a","allLayers","layer","React","child","cloneElement"],"mappings":";;;;;AAMA,IAAIA,IAAgB;AACpB,SAASC,EAAaC,GAAKC,GAAIC,GAAO;AAElC,MAAIF,EAAI,SAASA,EAAI,MAAM,SAAS;AAC1B,UAAAG,IAAU,EAAE,GAAGD;AACrB,kBAAOC,EAAQ,IACf,OAAOA,EAAQ,UAEXH,EAAA,UAAUC,GAAIE,CAAO,GAClBH,EAAI,UAAUC,CAAE;AAAA,EAC3B;AACO,SAAA;AACX;AAEA,SAASG,EAAaC,GAAQH,GAAOI,GAAW;AAC5C,EAAAC,EAAOL,EAAM,OAAOI,EAAU,IAAI,mBAAmB,GACrDC,EAAOL,EAAM,SAASI,EAAU,MAAM,qBAAqB;AAC3D,MAAIE,IAAa,IACbC,IAAkB;AACtB,aAAWC,KAAOR;AACd,IAAIQ,MAAQ,cAAcA,MAAQ,QAAQ,CAACC,EAAUL,EAAUI,CAAG,GAAGR,EAAMQ,CAAG,CAAC,MAC9DF,IAAAE,GACbD;AAGR,MAAI,CAACA;AACD;AAEJ,QAAMG,IAAOV,EAAM;AACnB,MAAIU,MAAS;AACF,IAAAP,EAAA,QAAQH,EAAM,IAAI;AAAA,WAEpBU,MAAS;AACd,IAAAP,EAAO,YAAY;AAAA,MACf,KAAKH,EAAM;AAAA,MACX,aAAaA,EAAM;AAAA,IAAA,CACtB;AAAA,WAEI,oBAAoBG,KAAUI,MAAoB,KAAKD,MAAe;AACpE,IAAAH,EAAA,eAAeH,EAAM,WAAW;AAAA,WAElC,YAAYG;AAIjB,YAAQG,GAAY;AAAA,MAChB,KAAK;AACM,QAAAH,EAAA,OAAOH,EAAM,GAAG;AACvB;AAAA,MACJ,KAAK;AACM,QAAAG,EAAA,SAASH,EAAM,KAAK;AAC3B;AAAA,IAER;AAAA;AAIQ,YAAA,KAAK,mCAAmCM,CAAU,EAAE;AAEpE;AAEA,SAASK,EAAOX,GAAO;AACnB,QAAMF,IAAMc,EAAWC,CAAU,EAAE,IAAI,OAAO,GACxCC,IAAWC,EAAOf,CAAK,GACvB,GAAGgB,CAAc,IAAIC,EAAS,CAAC,GAC/BlB,IAAKmB,EAAQ,MAAMlB,EAAM,MAAM,cAAcJ,GAAe,IAAI,CAAA,CAAE;AACxE,EAAAuB,EAAU,MAAM;AACZ,QAAIrB,GAAK;AAEC,YAAAsB,IAAc,MAAM,WAAW,MAAMJ,EAAe,CAAWK,MAAAA,IAAU,CAAC,GAAG,CAAC;AAChF,aAAAvB,EAAA,GAAG,aAAasB,CAAW,GACnBA,KACL,MAAM;AACL,YAAAE;AAGA,YAFAxB,EAAA,IAAI,aAAasB,CAAW,GAE5BtB,EAAI,SAASA,EAAI,MAAM,WAAWA,EAAI,UAAUC,CAAE,GAAG;AAI/C,gBAAAwB,KAAaD,IAAKxB,EAAI,SAAA,OAAgB,QAAQwB,MAAO,SAAS,SAASA,EAAG;AAChF,cAAIC;AACA,uBAAWC,KAASD;AAEZ,cAAAC,EAAM,WAAWzB,KACbD,EAAA,YAAY0B,EAAM,EAAE;AAIpC,UAAA1B,EAAI,aAAaC,CAAE;AAAA,QACvB;AAAA,MAAA;AAAA,IAER;AAAA,EACO,GACR,CAACD,CAAG,CAAC;AAER,MAAIK,IAASL,KAAOA,EAAI,SAASA,EAAI,UAAUC,CAAE;AACjD,SAAII,IACaD,EAAAC,GAAQH,GAAOc,EAAS,OAAO,IAGnCX,IAAAN,EAAaC,GAAKC,GAAIC,CAAK,GAExCc,EAAS,UAAUd,GACVG,KACLsB,EAAM,SAAS,IAAIzB,EAAM,UAAU,CAAA0B,MAASA,KACxCC,EAAaD,GAAO;AAAA,IAChB,QAAQ3B;AAAA,EAAA,CACX,CAAC,KACN;AACR;","x_google_ignoreList":[0]}
|
package/package.json
CHANGED
|
@@ -99,6 +99,16 @@ const LocationMarkers = (props: Props) => {
|
|
|
99
99
|
*/
|
|
100
100
|
const data = useMemo(() => (_.isEmpty(props.data) ? null : props.data), [props.data]);
|
|
101
101
|
|
|
102
|
+
const cluster = useMemo(() => {
|
|
103
|
+
if (!props.cluster) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
console.log(data);
|
|
108
|
+
|
|
109
|
+
return true;
|
|
110
|
+
}, [data, props.cluster]);
|
|
111
|
+
|
|
102
112
|
/**
|
|
103
113
|
* Sets the bounding box on the map.
|
|
104
114
|
*/
|
|
@@ -125,7 +135,7 @@ const LocationMarkers = (props: Props) => {
|
|
|
125
135
|
/>
|
|
126
136
|
)}
|
|
127
137
|
<GeoJSONLayer
|
|
128
|
-
cluster={
|
|
138
|
+
cluster={cluster}
|
|
129
139
|
clusterMaxZoom={props.clusterMaxZoom}
|
|
130
140
|
clusterMinPoints={props.clusterMinPoints}
|
|
131
141
|
clusterProperties={props.clusterProperties}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { MixedGeoJSONLayer, PulsingMarkerLayer, useMap } from '@peripleo/maplibre';
|
|
4
|
+
import React, { useEffect } from 'react';
|
|
5
|
+
import { DEFAULT_FILL_STYLE, DEFAULT_POINT_STYLE, DEFAULT_STROKE_STYLE } from '../utils/MapStyles';
|
|
6
|
+
import MapUtils from '../utils/Map';
|
|
7
|
+
|
|
8
|
+
type Props = {
|
|
9
|
+
/**
|
|
10
|
+
* If `true`, the point marker will display with a pulsing animation.
|
|
11
|
+
*/
|
|
12
|
+
animate?: boolean,
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The number of miles to buffer the GeoJSON data.
|
|
16
|
+
*/
|
|
17
|
+
buffer: number,
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The GeoJSON data representing the location.
|
|
21
|
+
*/
|
|
22
|
+
data: { [key: string]: any },
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* GeoJSON layer fill style.
|
|
26
|
+
*/
|
|
27
|
+
fillStyle?: { [key: string]: any },
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* GeoJSON layer point style.
|
|
31
|
+
*/
|
|
32
|
+
pointStyle?: { [key: string]: any },
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* GeoJSON layer stroke style
|
|
36
|
+
*/
|
|
37
|
+
strokeStyle?: { [key: string]: any }
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const DEFAULT_BUFFER = 2;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* This component renders a location marker to be used in a Peripleo context.
|
|
44
|
+
*/
|
|
45
|
+
const LocationMarker = (props: Props) => {
|
|
46
|
+
const map = useMap();
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Sets the bounding box on the map.
|
|
50
|
+
*/
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (map && props.data) {
|
|
53
|
+
const boundingBox = MapUtils.getBoundingBox(props.data, props.buffer);
|
|
54
|
+
map.fitBounds(boundingBox);
|
|
55
|
+
}
|
|
56
|
+
}, [map, props.buffer, props.data]);
|
|
57
|
+
|
|
58
|
+
return (
|
|
59
|
+
<>
|
|
60
|
+
{ props.animate && (
|
|
61
|
+
<PulsingMarkerLayer
|
|
62
|
+
data={props.data}
|
|
63
|
+
/>
|
|
64
|
+
)}
|
|
65
|
+
<MixedGeoJSONLayer
|
|
66
|
+
data={props.data}
|
|
67
|
+
fillStyle={props.fillStyle}
|
|
68
|
+
strokeStyle={props.strokeStyle}
|
|
69
|
+
pointStyle={props.pointStyle}
|
|
70
|
+
/>
|
|
71
|
+
</>
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
LocationMarker.defaultProps = {
|
|
76
|
+
buffer: DEFAULT_BUFFER,
|
|
77
|
+
fillStyle: DEFAULT_FILL_STYLE,
|
|
78
|
+
pointStyle: DEFAULT_POINT_STYLE,
|
|
79
|
+
strokeStyle: DEFAULT_STROKE_STYLE
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export default LocationMarker;
|
|
@@ -99,6 +99,16 @@ const LocationMarkers = (props: Props) => {
|
|
|
99
99
|
*/
|
|
100
100
|
const data = useMemo(() => (_.isEmpty(props.data) ? null : props.data), [props.data]);
|
|
101
101
|
|
|
102
|
+
const cluster = useMemo(() => {
|
|
103
|
+
if (!props.cluster) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
console.log(data);
|
|
108
|
+
|
|
109
|
+
return true;
|
|
110
|
+
}, [data, props.cluster]);
|
|
111
|
+
|
|
102
112
|
/**
|
|
103
113
|
* Sets the bounding box on the map.
|
|
104
114
|
*/
|
|
@@ -125,7 +135,7 @@ const LocationMarkers = (props: Props) => {
|
|
|
125
135
|
/>
|
|
126
136
|
)}
|
|
127
137
|
<GeoJSONLayer
|
|
128
|
-
cluster={
|
|
138
|
+
cluster={cluster}
|
|
129
139
|
clusterMaxZoom={props.clusterMaxZoom}
|
|
130
140
|
clusterMinPoints={props.clusterMinPoints}
|
|
131
141
|
clusterProperties={props.clusterProperties}
|