我使用geoJSON在Android MapBox中显示形状。 在geoJSON中,我有很多多边形,每个多边形都具有"属性" JSONObject,这是一个例子:
{
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
2.3303745,
39.841098
],
[
2.3303464,
39.8410976
],
[
2.3303261,
39.8411054
]
]
]
},
"type": "Feature",
"properties": {
"value": 169
}
}
我想根据值填充具有特定颜色的多边形。
GeoJsonSource geoJsonSource = new GeoJsonSource("geojson",stringbuilder.toString());
mapboxMap.addSource(geoJsonSource);
mapboxMap.addLayer(new FillLayer("geojson", "geojson"));
我该怎样做才能为形状着色?
答案 0 :(得分:1)
if (duplicates.Contains(myObject.sFolder)) // "myObject.sFolder" raise an error (of course)
{
// Do stuff
}
在我的AsyncTask的postExecute函数中:
JSONArray features = json.getJSONArray("features");
//Get the value for each features and create geojsonsource
for (int i = 0; i < features.length(); i++) {
JSONObject feature = features.getJSONObject(i);
Double value=-1.0;
if (feature != null) {
JSONObject properties = feature.getJSONObject("properties");
if (properties != null && properties.has("value")) {
value = properties.getDouble("value");
}
GeoJsonSource geoJsonSource = new GeoJsonSource("geojson" + i, feature.toString());
if (!values.contains(value))
values.add(value);
list_value_geojson.add(new AbstractMap.SimpleEntry<>(value, geoJsonSource));
}
}
答案 1 :(得分:0)
在数据驱动样式到达下一版本之前,您需要为每种颜色创建单独的图层并将它们叠加在一起。与您的想法相反,这不应该妨碍性能,只需要更多的工作:)