在 MapBox 中切换 GeoJsonSource 数据
Switch GeoJsonSource data in MapBox
我想替换现有源背后的数据。这在 javascript:
中是微不足道的
map.getSource('trace').setData(data);
见https://docs.mapbox.com/mapbox-gl-js/example/live-update-feature/
Android 中不存在该方法。一旦我设置了一个值,我就不能替换它(如果我这样做没有任何改变):
GeoJsonSource mySource;
mySource.setGeoJson("some json data");
要删除和读取源,我必须先删除使用源的图层:https://github.com/mapbox/mapbox-gl-native/issues/12526
因为我从服务器获得了一个功能齐全的 Style 对象,所以在正确的位置删除、重新创建和读取 layer/source 至少可以说是乏味的。
以上代码确实有效,但为了重置我使用的图层:
mySource.setGeoJson("");
将源设置为空字符串会破坏一些东西。之后 GeoJson 不能再设置为有意义的东西。所以要重置数据,我必须使用图层的可见性属性。用有意义的 GeoJson 替换有意义的 GeoJson 效果很好。
setGeoJson
方法可以正确处理任何有效的几何图形以添加数据(例如点、多点)。
然后,要在不“破坏”图层的情况下清除或初始化源,您可以使用:
mySource.setGeoJson(FeatureCollection.fromFeatures(new ArrayList<Feature>()));
我想替换现有源背后的数据。这在 javascript:
中是微不足道的map.getSource('trace').setData(data);
见https://docs.mapbox.com/mapbox-gl-js/example/live-update-feature/
Android 中不存在该方法。一旦我设置了一个值,我就不能替换它(如果我这样做没有任何改变):
GeoJsonSource mySource;
mySource.setGeoJson("some json data");
要删除和读取源,我必须先删除使用源的图层:https://github.com/mapbox/mapbox-gl-native/issues/12526
因为我从服务器获得了一个功能齐全的 Style 对象,所以在正确的位置删除、重新创建和读取 layer/source 至少可以说是乏味的。
以上代码确实有效,但为了重置我使用的图层:
mySource.setGeoJson("");
将源设置为空字符串会破坏一些东西。之后 GeoJson 不能再设置为有意义的东西。所以要重置数据,我必须使用图层的可见性属性。用有意义的 GeoJson 替换有意义的 GeoJson 效果很好。
setGeoJson
方法可以正确处理任何有效的几何图形以添加数据(例如点、多点)。
然后,要在不“破坏”图层的情况下清除或初始化源,您可以使用:
mySource.setGeoJson(FeatureCollection.fromFeatures(new ArrayList<Feature>()));