(filter, featureFilter)
| 187 | } |
| 188 | |
| 189 | export function getL7Filter(filter, featureFilter) { |
| 190 | if (!filter) { |
| 191 | return; |
| 192 | } |
| 193 | const [condition, ...expressions] = filter; |
| 194 | const newExpressions = expressions.filter((exp) => { |
| 195 | const [, f] = exp; |
| 196 | if (['$type', '$id'].includes(f)) { |
| 197 | return false; |
| 198 | } |
| 199 | return true; |
| 200 | }); |
| 201 | const field = Array.from(new Set(getFilterFields(newExpressions))); |
| 202 | const fFilter = featureFilter([condition, ...newExpressions]); |
| 203 | const filterFunc = fFilter.filter.bind(fFilter); |
| 204 | return { |
| 205 | field, |
| 206 | values: (...args) => { |
| 207 | const properties = {}; |
| 208 | field.forEach((f, idx) => { |
| 209 | properties[f] = args[idx]; |
| 210 | }); |
| 211 | const result = filterFunc( |
| 212 | {}, |
| 213 | { |
| 214 | properties |
| 215 | } |
| 216 | ); |
| 217 | return result; |
| 218 | } |
| 219 | }; |
| 220 | } |
| 221 | |
| 222 | export function L7LayerUtil(config) { |
| 223 | const { featureFilter, expression, spec, L7Layer, L7, proj4 } = config; |
no test coverage detected