如何通过 属性 值组合 GeoJson 特征?
How can you combine GeoJson features by their property value?
TLDR:您能否将具有共同 属性 的 GeoJSON 要素连接在一起,以便最终的多边形是较小要素的组合?
我正在构建一个 Web 应用程序,它需要我通过删除县之间的线来修改一些现有的 GeoJSON,实质上是从较小的多边形创建较大的多边形。这是 GeoJSON 的样子:
{
"type": "FeatureCollection",
"features": [
{
"type": "feature",
"geometry": {
"type": "MultiPolygon",
"coordinates": [[[[ ..some coordinates ]]]],
},
"properties": {
"joiner": 1,
"PUMA": "Alameda County"
}
},
{
"type": "feature",
"geometry": {
"type": "MultiPolygon",
"coordinates": [[[[ ..some coordinates ]]]],
},
"properties": {
"joiner": 2,
"PUMA": "San Jose County"
}
},
{
"type": "feature",
"geometry": {
"type": "MultiPolygon",
"coordinates": [[[[ ..some coordinates ]]]],
},
"properties": {
"joiner": 1,
"PUMA": "Fremont West"
}
},
]
}
在这个虚拟示例中,我想将 Alameda County 和 Fremont West 连接在一起,因为它们都包含“joiner”属性 1(它们彼此相邻,这是给定的).从视觉上讲,这意味着地图上某些相邻的多边形将合并为一个多边形。
这是使用 MapboxGL 投影时数据当前的样子:
最终投影将使用公共 属性 将相邻的多边形连接在一起并移除分界线,从而创建更大的分界线:
您可以使用 Turf 的“溶解”方法,它的作用恰恰是:
var dissolved = turf.dissolve(features, {propertyName: 'joiner'});
TLDR:您能否将具有共同 属性 的 GeoJSON 要素连接在一起,以便最终的多边形是较小要素的组合?
我正在构建一个 Web 应用程序,它需要我通过删除县之间的线来修改一些现有的 GeoJSON,实质上是从较小的多边形创建较大的多边形。这是 GeoJSON 的样子:
{
"type": "FeatureCollection",
"features": [
{
"type": "feature",
"geometry": {
"type": "MultiPolygon",
"coordinates": [[[[ ..some coordinates ]]]],
},
"properties": {
"joiner": 1,
"PUMA": "Alameda County"
}
},
{
"type": "feature",
"geometry": {
"type": "MultiPolygon",
"coordinates": [[[[ ..some coordinates ]]]],
},
"properties": {
"joiner": 2,
"PUMA": "San Jose County"
}
},
{
"type": "feature",
"geometry": {
"type": "MultiPolygon",
"coordinates": [[[[ ..some coordinates ]]]],
},
"properties": {
"joiner": 1,
"PUMA": "Fremont West"
}
},
]
}
在这个虚拟示例中,我想将 Alameda County 和 Fremont West 连接在一起,因为它们都包含“joiner”属性 1(它们彼此相邻,这是给定的).从视觉上讲,这意味着地图上某些相邻的多边形将合并为一个多边形。
这是使用 MapboxGL 投影时数据当前的样子:
最终投影将使用公共 属性 将相邻的多边形连接在一起并移除分界线,从而创建更大的分界线:
您可以使用 Turf 的“溶解”方法,它的作用恰恰是:
var dissolved = turf.dissolve(features, {propertyName: 'joiner'});