MapBox - 使用表达式定义 PropertyFactory.iconImage
MapBox - Define PropertyFactory.iconImage using expressions
我正在尝试为图层对象定义方法 PropertyFactory.iconImage
的值。 return 值 PropertyValue<String>
应该使用 Feature 中的特定字段来定义它的值。
结果可能是这样的:
PropertyFactory.iconImage(Expression.step(Expression.get("myfield"),"mydefaultValue", Expression.Stop.stop("case1", "valueForCase1"), Expression.Stop.stop("case2", "valueForCase2"));
很遗憾,到目前为止我还没有找到类似的解决方案。
以下表达式解决了我的问题:
SymbolLayer("asset-layer", "assetMapDataSource").withProperties(
PropertyFactory.iconImage(Expression.match(
Expression.get("asset_type"), Expression.literal("bbq_default"),
Expression.stop("bridge", Expression.literal("bridge_default")))))
编辑:
我在示例中使用该方法的更多信息:
- PropertyFactory.iconImage 需要一个字符串,该字符串指向您之前通过 MapBoxMap.addImage(...).
保存的某个位图
- Expression.match用于"match"根据给定的停止和默认情况
某个String。
- Expression.get 用于访问您的功能中的某个字段 属性。在这种情况下,字段 "asset_type" 提供了我可以匹配的特定类型。
- 默认大小写Expression.match和每个Expression.stop都使用了Expression.literal。此方法用于告诉底层表达式系统您的值来自类型 x(在这种情况下为 String)。查看 Expression.literal 方法以了解这一点。
- 每个 Expression.stop 用于表示 Expression.match 试图 "match" 来自 Expression.stop 的第一个参数的给定值与给定的 Expression.get 价值。如果 Expression.get 和该方法值相同,则使用 Expression.stop 的第二个值,它为 Expression.iconImage 提供实际值。如果底层表达式系统无法为给定的 Expression.get 值找到 "matching" 停止,系统将使用默认值(在这种情况下 Expression.literal("bbq_default" )).
我正在尝试为图层对象定义方法 PropertyFactory.iconImage
的值。 return 值 PropertyValue<String>
应该使用 Feature 中的特定字段来定义它的值。
结果可能是这样的:
PropertyFactory.iconImage(Expression.step(Expression.get("myfield"),"mydefaultValue", Expression.Stop.stop("case1", "valueForCase1"), Expression.Stop.stop("case2", "valueForCase2"));
很遗憾,到目前为止我还没有找到类似的解决方案。
以下表达式解决了我的问题:
SymbolLayer("asset-layer", "assetMapDataSource").withProperties(
PropertyFactory.iconImage(Expression.match(
Expression.get("asset_type"), Expression.literal("bbq_default"),
Expression.stop("bridge", Expression.literal("bridge_default")))))
编辑: 我在示例中使用该方法的更多信息:
- PropertyFactory.iconImage 需要一个字符串,该字符串指向您之前通过 MapBoxMap.addImage(...). 保存的某个位图
- Expression.match用于"match"根据给定的停止和默认情况 某个String。
- Expression.get 用于访问您的功能中的某个字段 属性。在这种情况下,字段 "asset_type" 提供了我可以匹配的特定类型。
- 默认大小写Expression.match和每个Expression.stop都使用了Expression.literal。此方法用于告诉底层表达式系统您的值来自类型 x(在这种情况下为 String)。查看 Expression.literal 方法以了解这一点。
- 每个 Expression.stop 用于表示 Expression.match 试图 "match" 来自 Expression.stop 的第一个参数的给定值与给定的 Expression.get 价值。如果 Expression.get 和该方法值相同,则使用 Expression.stop 的第二个值,它为 Expression.iconImage 提供实际值。如果底层表达式系统无法为给定的 Expression.get 值找到 "matching" 停止,系统将使用默认值(在这种情况下 Expression.literal("bbq_default" )).