0

我正在尝试执行以下操作react-native-mapbox-gl

<MapboxGL.SymbolLayer 
  id="controlPointIcon" 
  filter={['all', ['in', 'id', this.state.nextPossible], ['==', 'type', 'alt']]} 
  style={mapStyle.iconControlPoint} 
/>

只有当给定的 GeoJSON 特征的属性 id 包含在数组 this.state.nextPossible 中并且属性类型与“alt”匹配时,过滤器才被认为是匹配的。

我显然做错了什么,我得到的错误是:

Invalide predicate: "id" ... NSInvalidArgumentException 
reason [__NSCFNumber isEqualTOString:]: unrecognized selector sent to instance ...

知道如何使用 mapbox 过滤器表达式解决这个问题吗?

4

1 回答 1

0

请参阅https://github.com/react-native-mapbox-gl/maps/issues/70#issuecomment-499775185 in是旧式过滤器语法,不受支持。请match改用。

<MapboxGL.SymbolLayer 
  id="controlPointIcon" 
  filter={
      ['all', 
         ['match', 
            'id', this.state.nextPossible, true, 
            false
         ], 
         ['==', 'type', 'alt']
      ]} 
  style={mapStyle.iconControlPoint} 
/>
于 2020-09-28T08:11:22.793 回答