Skip to content

Commit c22a882

Browse files
committed
fix: geofiltering would break layers if empty
1 parent 6e52fda commit c22a882

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

src/routes/gis/index.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,26 +61,31 @@ const getFilterPolygon = (query: IFeatureQuery) => {
6161
* @param mapping.geoField geo field to extract geojson
6262
* @param mapping.latitudeField latitude field ( not used if geoField )
6363
* @param mapping.longitudeField longitude field ( not used if geoField )
64+
* @param geoFilter geo filter ( polygon )
6465
*/
6566
const getFeatureFromItem = (
6667
features: any[],
6768
item: any,
68-
geoFilter: turf.Polygon,
6969
mapping: {
7070
geoField?: string;
7171
latitudeField?: string;
7272
longitudeField?: string;
73-
}
73+
},
74+
geoFilter?: turf.Polygon
7475
) => {
7576
if (mapping.geoField) {
7677
const geo = get(item, mapping.geoField);
7778
if (geo) {
78-
if (booleanPointInPolygon(geo.geometry.coordinates, geoFilter)) {
79+
if (
80+
!geoFilter ||
81+
booleanPointInPolygon(geo.geometry.coordinates, geoFilter)
82+
) {
7983
const feature = {
8084
...geo,
8185
properties: { ...item },
8286
};
8387
features.push(feature);
88+
} else {
8489
}
8590
}
8691
} else {
@@ -94,7 +99,10 @@ const getFeatureFromItem = (
9499
coordinates: [latitude, longitude],
95100
},
96101
};
97-
if (booleanPointInPolygon(geo.geometry.coordinates, geoFilter)) {
102+
if (
103+
!geoFilter ||
104+
booleanPointInPolygon(geo.geometry.coordinates, geoFilter)
105+
) {
98106
const feature = {
99107
...geo,
100108
properties: { ...item },
@@ -218,19 +226,13 @@ router.get('/feature', async (req, res) => {
218226
if (Object.prototype.hasOwnProperty.call(data.data, field)) {
219227
if (data.data[field].items && data.data[field].items.length > 0) {
220228
data.data[field].items.map(async function (result) {
221-
getFeatureFromItem(
222-
featureCollection.features,
223-
result,
224-
filterPolygon,
225-
mapping
226-
);
229+
getFeatureFromItem(featureCollection.features, result, mapping);
227230
});
228231
} else {
229232
data.data[field].edges.map(async function (result) {
230233
getFeatureFromItem(
231234
featureCollection.features,
232235
result.node,
233-
filterPolygon,
234236
mapping
235237
);
236238
});

0 commit comments

Comments
 (0)