Tenemos el hallazgo a este atolladero, o por lo menos eso pensamos. Si presentas dudas puedes escribirlo en el apartado de comentarios y sin dudarlo te ayudaremos
Solución:
Puede usar Mapshaper para esto y luego disolver desde la línea de comando:
mapshaper --dissolve -i your_data.geojson
Es fácil de hacer con QGis.
- Abrir QGis
- Arrastra y suelta el archivo geojson a qgis
- use la herramienta “disolver” en el menú de vectores (está dentro de un submenú). usa la opción “disolver todo” del menú desplegable
- esto creará un shapefile (marque la casilla para enviar al mapa)
- que luego puede guardar nuevamente como un archivo geojson haciendo clic derecho en el panel de capas y eligiendo “guardar como” y luego geojson como formato
“Disolver” es el nombre de la operación que desea. Esto también podría darte más pistas para buscar en Google.
En caso de que uno quiera hacerlo algorítmicamente, aquí hay un fragmento de Python:
#!/usr/bin/env python
from json import load, JSONEncoder
from argparse import ArgumentParser, FileType
from re import compile
import sys
from shapely.geometry import Polygon, mapping
from shapely.ops import cascaded_union
parser = ArgumentParser(description="Group (merge) the GeoJSON geometries of same vehicles with different day index.")
defaults = dict(outfile=sys.stdout)
parser.set_defaults(**defaults)
parser.add_argument('infile', type=FileType('r'), help='GeoJSON file whose vehicles will be merged')
parser.add_argument('-o', '--outfile', dest='outfile', type=FileType('wb', 0), help='Outfile')
if __name__ == '__main__':
args = parser.parse_args()
infile = args.infile
outfile = args.outfile
file = load(infile)
polygons = []
for feat in file['features']:
polygon = Polygon([ (coor[0], coor[1]) for coor in feat['geometry']['coordinates'][0] ])
polygons.append(polygon)
new_geometry = mapping(cascaded_union(polygons)) # This line merges the polygones
new_feature = dict(type='Feature', id="", properties=dict(Name=""),geometry=dict(type=new_geometry['type'], coordinates=new_geometry['coordinates']))
outjson = dict(type='FeatureCollection', features=[new_feature])
encoder = JSONEncoder(separators=(',', ':'))
encoded = encoder.iterencode(outjson)
output = outfile
for token in encoded:
output.write(token)
que devuelve la siguiente salida para la entrada anterior
"type": "FeatureCollection",
"features": [
"type": "Feature",
"id": "",
"properties":
"Name": ""
,
"geometry":
"type": "Polygon",
"coordinates": [
[
[
1.7780400297013,
48.832305931728
],
[
1.7734339848429,
48.83177307884
],
[
1.7611156919393,
48.841036344684
],
[
1.7400314884878,
48.837820948808
],
[
1.7329083268502,
48.84610157804
],
[
1.7189195066054,
48.848587971564
],
[
1.7164466657999,
48.854920532859
],
[
1.7052218923542,
48.860142271734
],
[
1.7018533752573,
48.865673293225
],
[
1.7198777076843,
48.872271383422
],
[
1.7292022608762,
48.871219483604
],
[
1.7314395279166,
48.873968471423
],
[
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.8056581682382,
48.898808951748
],
[
1.8355241961203,
48.88517153445
],
[
1.8585137392849,
48.890942160516
],
[
1.8687589726649,
48.885193372296
],
[
1.874663272221,
48.877028568925
],
[
1.8831026195664,
48.874535338148
],
[
1.9127169447188,
48.860849357594
],
[
1.9217113433858,
48.85832247492
],
[
1.9613817024309,
48.851891899558
],
[
1.970646933861,
48.840972240396
],
[
1.9687926794162,
48.834831269347
],
[
1.9700860589995,
48.83487839014
],
[
1.9668984852354,
48.821791311587
],
[
1.9864791162903,
48.799688951127
],
[
1.9859353011511,
48.799648360798
],
[
1.9700422200803,
48.799863243499
],
[
1.9568703127355,
48.789270428369
],
[
1.9412379043212,
48.791543482649
],
[
1.9149109434793,
48.802631449948
],
[
1.898492103809,
48.809622894015
],
[
1.8936915762635,
48.808670122548
],
[
1.8940011070565,
48.805632849681
],
[
1.8850727051194,
48.805432976807
],
[
1.8858999508989,
48.804316374995
],
[
1.8758215111851,
48.805049510395
],
[
1.8726237069958,
48.798651240921
],
[
1.8711691241023,
48.799177186792
],
[
1.8417552547252,
48.800622726785
],
[
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.8339180317868,
48.843621026126
],
[
1.8248465610939,
48.850691703059
],
[
1.8126901224641,
48.853063092402
],
[
1.8059996841005,
48.860128943481
],
[
1.7916969548512,
48.854399942691
],
[
1.7780400297013,
48.832305931728
]
]
]
]
Valoraciones y reseñas
Más adelante puedes encontrar las explicaciones de otros programadores, tú además tienes la libertad de insertar el tuyo si lo crees conveniente.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)