android - 使用 VectorSource 时单击更改 SymbolLayer 属性
问题描述
我一直在按照 Mapbox 提供的指南来熟悉 SymbolLayers 以及如何在地图上操作它们的属性。
https://blog.mapbox.com/a-guide-to-the-android-symbollayer-api-5daac7b66f2c
我遇到问题的关键步骤是第 5 步,他们更新了iconSize
onMapClick 属性。在他们将属性添加到 selectedFeature
之后,指南说调用source.setGeoJson(featureCollection);
以重置图层的源。
我正在使用的项目使用 aVectorSource
作为 的数据源SampleLayer
,而不是GeoJsonSource
示例使用的 a。问题是它VectorSource
没有提供这样的方法,setGeoJson
所以在我更改属性后我无法重置图层源。
我可以做些什么来解决这个问题而不必更改我们所有的源数据?
for (Feature feature : featureCollection.getFeatures() {
if (feature.getStringProperty("title").equals(selectedFeature.getStringProperty("title"))) {
feature.getProperties().addProperty("selected", true);
}
}
source.setGeoJson(featureCollection);
解决方案
对于将来遇到此问题的任何人,这里唯一可能的方法是使用更新的源再次删除并添加层。然而,这是一个无效的解决方案,因此您最好使用 GeoJson 源代码。
推荐阅读
- android - 使用 Powermock2 和 Kotlin 模拟静态类
- docker - 无法访问在 mac OS X 上的 docker 中运行的 elasticsearch
- php - 在选择正确的行时,从 sql 查询返回的日期发生了变化
- c++ - 结构初始化语法
- c# - JsonConvert:转换为另一种类型仅在顶层有效
- drupal - 当我们在 Drupal 8 中卸载模块时如何删除自定义实体字段?
- html - 将悬停时的阴影效果添加到 DIV 框
- swift - 如何快速打印大量 10 次方 25 中的所有数字?
- javascript - Office.js 协作处理文档
- java - ImageIO.read(); 悬挂