【问题标题】:MapboxGL.SymbolLayer filter expression to check if id in arrayMapboxGL.SymbolLayer 过滤表达式来检查数组中的id
【发布时间】:2020-09-20 17:20:22
【问题描述】:

我正在尝试使用 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 过滤器表达式解决这个问题吗?

【问题讨论】:

标签: react-native-mapbox-gl


【解决方案1】:

请参阅 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} 
/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 2011-04-17
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 2020-09-06
    相关资源
    最近更新 更多