我正在使用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"));
我应该怎么做来给形状上色?
在数据驱动的样式出现在下一版本之前,您需要为每种颜色创建单独的层,并将它们覆盖在彼此的顶部。与您可能认为的相反,这不应妨碍性能,只需多做一点工作:)
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));
}
}
在我的AsyncTask的postExecute函数中:
for (int i=0; i < list_value_geojson.size(); i++){
Map.Entry<Double, GeoJsonSource> entry = list_value_geojson.get(i);
if (mapboxMap != null && entry != null) {
mapboxMap.addSource(entry.getValue());
FillLayer fillLayer = new FillLayer(entry.getValue().getId(), entry.getValue().getId());
fillLayer.setProperties(PropertyFactory.fillColor(Color.parseColor(hashMap Colors.get(entry.getKey()))));
mapboxMap.addLayer(fillLayer);
}
}
有没有办法在python中合并两个重叠的GEOJSON多边形,返回一个合并的GEOJSON对象?
为什么这工作正常: 这会产生运行时错误 错误: 这没有任何意义。第一个代码工作正常,三角形画好了,但第二个代码不行。有人能解释一下我做错了什么吗...
我的python3脚本创建了变量,其值是一个shapefiles列表,每个shapefiles都是一个多边形,表示一个地理区域 但它给出的结果是:AttributeError:“Shape”对象没有属性“union” 我看到了另一种方法,它涉及创建一个shapefilewriter对象,然后依次覆盖列表https://gis.stackexchange.com/questions/103033/u
下面是我使用的代码: 有办法让它起作用吗?在中似乎没有简单的方法来获取多边形的边界。
我有一个来自服务器的json响应,其中包含GeoJson格式的多边形信息,如下所示: 现在我想将此json转换为mapbox多边形,我正在使用gson转换器进行改装,以从服务器接收响应: ,但是我有这个错误: 我怎样才能解决这个问题?
我目前正在使用JavaFX研究不同形状之间的边界相交。我想检测两个多边形在它们的点上的碰撞,而不是在它们的边界上(即2个多边形)。 请参阅图1:不期望的行为,以及图2:期望的行为。 是否有任何现有的算法可以帮助我或使用任何库?提前感谢:) 在这里找到我的解决方案: 输出: 它似乎工作正常,我将使用Path对象进行测试以替换多边形objets。