Merge geojson polygons with WGS84 coordinate
You can use Mapshaper for this, and then dissolve from the command line:
mapshaper --dissolve -i your_data.geojson
It's easy to do with QGis.
- Open QGis
- Drag&Drop the geojson file to qgis
- use the "dissolve" tool in the vector menu (it's inside a submenu). use the "dissolve all" option from the dropdown
- this will create a shapefile (check the box to output to the map)
- which you can then again save as a geojson file by right-clicking it in the layer pane and choosing "save as" and then geojson as format
"Dissolve" is the name of the operation you want. This might alsio give you further hints for googling.
In case one wants to do algorithmically, here is a python snippet:
#!/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)
which returns the following output for the above input
{
"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
]
]
]
}
}
]
}