Skip to content

Commit 2a4ac74

Browse files
committed
【feature】l7layer 兼容判断
1 parent 2629f4f commit 2a4ac74

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

src/mapboxgl/overlay/L7Layer.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -156,14 +156,18 @@ export class L7Layer extends CustomOverlayLayer {
156156
const { filter } = this.l7layer.rawConfig;
157157
let { field: filterFields = [], values } = getL7Filter(filter, this.id) || {};
158158
if (!filterFields.length && this.selectedDatas[0]) {
159-
filterFields = Object.keys(this.selectedDatas[0].properties);
159+
filterFields = Object.keys(this.selectedDatas[0].properties || {});
160160
}
161161
const fields = filterFields;
162-
const transformFilterValuesFn = this._transformFilterValues.bind(this, { fields, values, selectedDatas: this.selectedDatas });
162+
const transformFilterValuesFn = this._transformFilterValues.bind(this, {
163+
fields,
164+
values,
165+
selectedDatas: this.selectedDatas
166+
});
163167
return {
164168
field: fields,
165169
values: transformFilterValuesFn
166-
}
170+
};
167171
}
168172

169173
setFilter(filter) {
@@ -321,7 +325,7 @@ export class L7Layer extends CustomOverlayLayer {
321325
const features = cacheFeatures.filter(
322326
(item) =>
323327
(!item[featureId] || !mvtDatas.some((feature) => feature[featureId] === item[featureId])) &&
324-
(!item.properties[featureId] ||
328+
(!(item.properties || {})[featureId] ||
325329
!mvtDatas.some((feature) => feature.properties[featureId] === item.properties[featureId]))
326330
);
327331
mvtDatas.push(...features);
@@ -367,11 +371,14 @@ export class L7Layer extends CustomOverlayLayer {
367371

368372
_transformFilterValues(options, ...args) {
369373
const { fields, values, selectedDatas } = options;
370-
const argValues = args.filter(item => item !== void 0);
371-
const selectedValues = selectedDatas.map(feature => {
372-
return fields.map(name => (feature.properties || {})[name]).filter(item => item !== void 0);
374+
const argValues = args.filter((item) => item !== void 0);
375+
const selectedValues = selectedDatas.map((feature) => {
376+
return fields.map((name) => (feature.properties || {})[name]).filter((item) => item !== void 0);
373377
});
374-
return (!values || values(...args)) && !selectedValues.some(values => JSON.stringify(values) === JSON.stringify(argValues));
378+
return (
379+
(!values || values(...args)) &&
380+
!selectedValues.some((values) => JSON.stringify(values) === JSON.stringify(argValues))
381+
);
375382
}
376383
}
377384

0 commit comments

Comments
 (0)