Tengo un archivo Geojson con algunos polígonos adyacentes y quiero fusionarlos en uno. Sé que es una pregunta recurrente, pero no puedo encontrar información para polígonos con coordenadas de latitud y longitud como en este geojson:
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"id": "16966",
"properties": {
"Name": "BEYNES"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.874862143378, 48.834371283832],
[1.8656030688715, 48.831612507285],
[1.8515105581603, 48.834338209867],
[1.8466221791684, 48.828669687135],
[1.8415374906793, 48.828818416443],
[1.8392188748285, 48.830163082204],
[1.8419058888315, 48.843509743804],
[1.8472716401406, 48.849200964455],
[1.8375210341485, 48.856814659389],
[1.8383984699903, 48.87125874614],
[1.8572939822902, 48.871944300476],
[1.874663272221, 48.877028568925],
[1.8831026195664, 48.874535338148],
[1.9127169447188, 48.860849357594],
[1.9030441003473, 48.846352529476],
[1.8932786620468, 48.847377864779],
[1.8885787644301, 48.846659731042],
[1.8820915893247, 48.834609966105],
[1.874862143378, 48.834371283832]
]
]
}
}, {
"type": "Feature",
"id": "19484",
"properties": {
"Name": "VILLIERS-LE-MAHIEU"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.7780400297013, 48.832305931728],
[1.7734339848429, 48.83177307884],
[1.7611156919393, 48.841036344684],
[1.7664174460888, 48.850202460021],
[1.7590182348483, 48.858733519882],
[1.7586155859222, 48.868766940337],
[1.7751309254077, 48.872615718624],
[1.7866538204874, 48.862012015338],
[1.7869427495986, 48.855458134055],
[1.7916969548512, 48.854399942691],
[1.7780400297013, 48.832305931728]
]
]
}
}, {
"type": "Feature",
"id": "19635",
"properties": {
"Name": "THOIRY"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.7916969548512, 48.854399942691],
[1.7869427495986, 48.855458134055],
[1.7866538204874, 48.862012015338],
[1.7751309254077, 48.872615718624],
[1.7890825137274, 48.88596098882],
[1.809924587051, 48.885828200975],
[1.8232153433812, 48.876452907166],
[1.8120930366694, 48.869687419516],
[1.8059996841005, 48.860128943481],
[1.7916969548512, 48.854399942691]
]
]
}
}, {
"type": "Feature",
"id": "22025",
"properties": {
"Name": "SAINT-GERMAIN-DE-LA-GRANGE"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.9130661363292, 48.819937951319],
[1.9012689316149, 48.821961792363],
[1.8902265103296, 48.83135783825],
[1.8813533302838, 48.831553995346],
[1.8820915893247, 48.834609966105],
[1.8885787644301, 48.846659731042],
[1.8932786620468, 48.847377864779],
[1.918172631346, 48.835751243515],
[1.9217370910726, 48.82612360123],
[1.9178385858043, 48.820341013587],
[1.9130661363292, 48.819937951319]
]
]
}
}, {
"type": "Feature",
"id": "22141",
"properties": {
"Name": "MARCQ"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.8248465610939, 48.850691703059],
[1.8126901224641, 48.853063092402],
[1.8059996841005, 48.860128943481],
[1.8120930366694, 48.869687419516],
[1.8232153433812, 48.876452907166],
[1.832123740674, 48.878689723796],
[1.8383984699903, 48.87125874614],
[1.8375210341485, 48.856814659389],
[1.8246539514431, 48.853792824064],
[1.8248465610939, 48.850691703059]
]
]
}
}, {
"type": "Feature",
"id": "23142",
"properties": {
"Name": "PLAISIR"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.9859353011511, 48.799648360798],
[1.9700422200803, 48.799863243499],
[1.9568703127355, 48.789270428369],
[1.9412379043212, 48.791543482649],
[1.9149109434793, 48.802631449948],
[1.9130661363292, 48.819937951319],
[1.9178385858043, 48.820341013587],
[1.9217370910726, 48.82612360123],
[1.9308900413011, 48.82617879826],
[1.9432582596776, 48.836964867387],
[1.9687926794162, 48.834831269347],
[1.9700860589995, 48.83487839014],
[1.9668984852354, 48.821791311587],
[1.9864791162903, 48.799688951127],
[1.9859353011511, 48.799648360798]
]
]
}
}, {
"type": "Feature",
"id": "25041",
"properties": {
"Name": "NEAUPHLE-LE-CHATEAU"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.9149109434793, 48.802631449948],
[1.898492103809, 48.809622894015],
[1.8936915762635, 48.808670122548],
[1.8889579820032, 48.809057956502],
[1.9012689316149, 48.821961792363],
[1.9130661363292, 48.819937951319],
[1.9149109434793, 48.802631449948]
]
]
}
}, {
"type": "Feature",
"id": "25042",
"properties": {
"Name": "VICQ"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.8479013041869, 48.812707864194],
[1.8290034942099, 48.811265015475],
[1.8111878056542, 48.814965840962],
[1.8138162274863, 48.821557956532],
[1.8061163949282, 48.830053068487],
[1.8260692281346, 48.8296929387],
[1.8327204785815, 48.833814514469],
[1.8392188748285, 48.830163082204],
[1.8415374906793, 48.828818416443],
[1.8479013041869, 48.812707864194]
]
]
}
}, {
"type": "Feature",
"id": "28635",
"properties": {
"Name": "ANDELU"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.8232153433812, 48.876452907166],
[1.809924587051, 48.885828200975],
[1.7890825137274, 48.88596098882],
[1.7831043145867, 48.891413707227],
[1.8056581682382, 48.898808951748],
[1.8355241961203, 48.88517153445],
[1.832123740674, 48.878689723796],
[1.8232153433812, 48.876452907166]
]
]
}
}, {
"type": "Feature",
"id": "29431",
"properties": {
"Name": "GOUPILLIERES"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.7586155859222, 48.868766940337],
[1.7399133540032, 48.871449653856],
[1.7412768098614, 48.874270196957],
[1.7500295563815, 48.875450216663],
[1.7522176666426, 48.87802738985],
[1.7483369243043, 48.879497893862],
[1.7704322974105, 48.896069058229],
[1.7831043145867, 48.891413707227],
[1.7890825137274, 48.88596098882],
[1.7751309254077, 48.872615718624],
[1.7586155859222, 48.868766940337]
]
]
}
}, {
"type": "Feature",
"id": "30394",
"properties": {
"Name": "SAULX-MARCHAIS"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.8392188748285, 48.830163082204],
[1.8327204785815, 48.833814514469],
[1.8339180317868, 48.843621026126],
[1.8248465610939, 48.850691703059],
[1.8246539514431, 48.853792824064],
[1.8375210341485, 48.856814659389],
[1.8472716401406, 48.849200964455],
[1.8419058888315, 48.843509743804],
[1.8392188748285, 48.830163082204]
]
]
}
}, {
"type": "Feature",
"id": "34743",
"properties": {
"Name": "OSMOY"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.7164466657999, 48.854920532859],
[1.7052218923542, 48.860142271734],
[1.7018533752573, 48.865673293225],
[1.7198777076843, 48.872271383422],
[1.7292022608762, 48.871219483604],
[1.7274882838909, 48.859337782823],
[1.7164466657999, 48.854920532859]
]
]
}
}, {
"type": "Feature",
"id": "35495",
"properties": {
"Name": "FLEXANVILLE"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.7400314884878, 48.837820948808],
[1.7329083268502, 48.84610157804],
[1.7189195066054, 48.848587971564],
[1.7164466657999, 48.854920532859],
[1.7274882838909, 48.859337782823],
[1.7292022608762, 48.871219483604],
[1.7314395279166, 48.873968471423],
[1.7399133540032, 48.871449653856],
[1.7586155859222, 48.868766940337],
[1.7590182348483, 48.858733519882],
[1.7664174460888, 48.850202460021],
[1.7611156919393, 48.841036344684],
[1.7400314884878, 48.837820948808]
]
]
}
}, {
"type": "Feature",
"id": "36858",
"properties": {
"Name": "THIVERVAL-GRIGNON"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.9687926794162, 48.834831269347],
[1.9432582596776, 48.836964867387],
[1.9308900413011, 48.82617879826],
[1.9217370910726, 48.82612360123],
[1.918172631346, 48.835751243515],
[1.8932786620468, 48.847377864779],
[1.9030441003473, 48.846352529476],
[1.9127169447188, 48.860849357594],
[1.9217113433858, 48.85832247492],
[1.9613817024309, 48.851891899558],
[1.970646933861, 48.840972240396],
[1.9687926794162, 48.834831269347]
]
]
}
}, {
"type": "Feature",
"id": "37629",
"properties": {
"Name": "NEAUPHLE-LE-VIEUX"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.8726237069958, 48.798651240921],
[1.8711691241023, 48.799177186792],
[1.8417552547252, 48.800622726785],
[1.8479013041869, 48.812707864194],
[1.8415374906793, 48.828818416443],
[1.8466221791684, 48.828669687135],
[1.8515105581603, 48.834338209867],
[1.8656030688715, 48.831612507285],
[1.874862143378, 48.834371283832],
[1.8658960165459, 48.822530967257],
[1.8689494730467, 48.8130077893],
[1.8850727051194, 48.805432976807],
[1.8858999508989, 48.804316374995],
[1.8758215111851, 48.805049510395],
[1.8726237069958, 48.798651240921]
]
]
}
}, {
"type": "Feature",
"id": "38841",
"properties": {
"Name": "MONTAINVILLE"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.8383984699903, 48.87125874614],
[1.832123740674, 48.878689723796],
[1.8355241961203, 48.88517153445],
[1.8585137392849, 48.890942160516],
[1.8687589726649, 48.885193372296],
[1.874663272221, 48.877028568925],
[1.8572939822902, 48.871944300476],
[1.8383984699903, 48.87125874614]
]
]
}
}, {
"type": "Feature",
"id": "43121",
"properties": {
"Name": "VILLIERS-SAINT-FREDERIC"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[1.8850727051194, 48.805432976807],
[1.8689494730467, 48.8130077893],
[1.8658960165459, 48.822530967257],
[1.874862143378, 48.834371283832],
[1.8820915893247, 48.834609966105],
[1.8813533302838, 48.831553995346],
[1.8902265103296, 48.83135783825],
[1.9012689316149, 48.821961792363],
[1.8889579820032, 48.809057956502],
[1.8936915762635, 48.808670122548],
[1.8940011070565, 48.805632849681],
[1.8850727051194, 48.805432976807]
]
]
}
}]
}
¿Hay alguna manera de construir un polígono maestro con la forma externa de todos los polígonos?
mapshaper -i your_data.geojson --dissolve
Es fácil de hacer con QGis.
"Disolver" es el nombre de la operación que desea. Esto también podría darte más pistas para buscar en Google.
fuente
En caso de que uno quiera hacerlo algorítmicamente, aquí hay un fragmento de Python:
que devuelve la siguiente salida para la entrada anterior
fuente