diff --git a/package.json b/package.json index d513821..cf169d0 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,8 @@ "@eeacms/volto-addons-forest": "*", "@eeacms/volto-datablocks": "*", "@eeacms/volto-matomo": "*", - "@eeacms/volto-openlayers-map": "0.1.3", + "@eeacms/volto-openlayers-map": "0.1.4", "@eeacms/volto-plotlycharts": "*", - "pigeon-maps": "0.21.0", "react-highlight-words": "^0.16.0", "react-image-gallery": "1.2.7", "react-lazy-load-image-component": "^1.5.0", diff --git a/src/components/manage/Blocks/SimpleDataTable/templates/expandable/PopupMap.jsx b/src/components/manage/Blocks/SimpleDataTable/templates/expandable/PopupMap.jsx index 8db720a..853d511 100644 --- a/src/components/manage/Blocks/SimpleDataTable/templates/expandable/PopupMap.jsx +++ b/src/components/manage/Blocks/SimpleDataTable/templates/expandable/PopupMap.jsx @@ -5,8 +5,6 @@ import { Map } from '@eeacms/volto-openlayers-map/Map'; import { Layers, Layer } from '@eeacms/volto-openlayers-map/Layers'; import { openlayers } from '@eeacms/volto-openlayers-map'; -// import { Map, Marker } from 'pigeon-maps'; - const getLayerBaseURL = () => 'https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}'; @@ -22,8 +20,9 @@ const PopupMap = ({ rowData, provider_data, mapData }) => { const mapRef = React.useRef(); const [selectedData, setSelectedData] = React.useState([]); + const [featuresData, setFeaturesData] = React.useState([]); - const { proj, source, style, format } = openlayers; + const { proj, source, style } = openlayers; React.useEffect(() => { const { long, lat } = mapData; @@ -46,8 +45,10 @@ const PopupMap = ({ rowData, provider_data, mapData }) => { }, [selectedData, mapData]); React.useEffect(() => { + const { long, lat } = mapData; const provider_data_length = getProviderDataLength(provider_data); const newMapData = []; + const newFeaturesData = []; if (provider_data_length) { const keys = Object.keys(provider_data); Array(provider_data_length) @@ -58,9 +59,19 @@ const PopupMap = ({ rowData, provider_data, mapData }) => { obj[key] = provider_data[key][i]; }); newMapData.push(obj); + + newFeaturesData.push( + new openlayers.ol.Feature( + new openlayers.geom.Point( + openlayers.proj.fromLonLat([obj[long], obj[lat]]), + ), + ), + ); }); } setSelectedData(newMapData); + + setFeaturesData(newFeaturesData); /* eslint-disable-next-line */ }, [provider_data]); @@ -84,67 +95,63 @@ const PopupMap = ({ rowData, provider_data, mapData }) => { return 'Loading..'; } return ( -
+
{selectedData.length > 0 ? ( - - { - mapRef.current = data?.map; - if (data?.mapRendered && !mapRendered) { - setMapRendered(true); + { + mapRef.current = data?.map; + if (data?.mapRendered && !mapRendered) { + setMapRendered(true); + } + }} + view={{ + center: proj.fromLonLat(mapCenter), + showFullExtent: true, + minZoom: 1, + zoom: 2, + }} + renderer="webgl" + // onPointermove={this.onPointermove} + // onClick={this.onClick} + // onMoveend={this.onMoveend} + > + + + - - - - - - {/* - {selectedData.map((item, i) => { - const long = item[mapData.long] ? item[mapData.long] : ''; - const lat = item[mapData.lat] ? item[mapData.lat] : ''; - return ; - })} - */} - + }), + }) + } + title="1.Sites" + zIndex={1} + /> + + ) : (

No data available for map.

)} diff --git a/src/components/manage/Blocks/SimpleDataTable/templates/expandable/View.jsx b/src/components/manage/Blocks/SimpleDataTable/templates/expandable/View.jsx index f8321e1..0b5fe33 100644 --- a/src/components/manage/Blocks/SimpleDataTable/templates/expandable/View.jsx +++ b/src/components/manage/Blocks/SimpleDataTable/templates/expandable/View.jsx @@ -137,6 +137,7 @@ const View = (props) => { }; /* eslint-disable-next-line */ }, []); + return (
{ - {selectedColumns.map((colDef, j) => ( - - - - ))} + + + ))} ) : null} @@ -217,19 +220,21 @@ const View = (props) => { - {selectedColumns.map((colDef, j) => ( - - - - ))} + {selectedColumns && + selectedColumns.length > 0 && + selectedColumns.map((colDef, j) => ( + + + + ))} ); })} @@ -243,7 +248,9 @@ const View = (props) => { '' )} - {Math.ceil(items.length / row_size) > 1 ? ( + {selectedColumns && + selectedColumns.length > 0 && + Math.ceil(items.length / row_size) > 1 ? (