MapboxGL.SymbolLayer过滤器表达式以检查ID是否在数组中

问题描述

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

解决方法

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...