Inlezen GeoJSON uit DSO dashboard in QGIS

Beste mensen,

Een klant van mij wil bijgevoegd bestand kunnen inlezen in QGIS, zonder al te veel ingewikkelde handelingen of conversies uit te hoeven voeren. Ik dacht dat zelf wel even te kunnen testen, maar kom toch ietwat bedrogen uit. Het is blijkbaar GeoJSON, maar QGIS herkent het niet als dusdanig. Wie kan er duidelijk uitleggen hoe dit zit, en wat een handige manier is om het wél in te kunnen lezen?

N.B. Het kán zijn dat er iets fout in het bestand zit: ik heb het van een klant gekregen, en omdat het vertrouwelijk was heb ik het dusdanig verbouwd dat het inhoudelijk niet meer te herleiden is naar iets
zinnigs.

Groet,
Willem Hoffmans
Ruimtemaatwerk

voorbeeld.json (907 Bytes)

Dit is wel JSON maar geen GeoJSON. GeoJSON heeft een opbouw zoals:

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [125.6, 10.1]
  },
  "properties": {
    "name": "Dinagat Islands"
  }
}

Voorbeeld van https://geojson.org/

1 like

Hoi Willem,

Met onderstaand python script kun je het json bestand omzetten naar een .geojson bestand.

Je moet zelf de nodige properties nog maar toevoegen, ik heb er een paar als voorbeeld gedaan.

Die ‘activiteit’ is nog wel een puntje van aandacht want dat is een lijst met 1 of meerdere activiteiten. Ik vis er nu de eerste uit, maar als het er meer zijn raak je die dus kwijt. (En als het er 0 zijn krijg je een error).

Als er een GeometryCollection in de json zit, vist het script de eerste geometry eruit.

import json

with open('voorbeeld.json') as f:
    in_data = json.load(f)

feats = []
for rec in in_data:
    #print(rec)
    
    feat = {'type': 'Feature'}
    
    geom = rec['locatie']['geometrie']
    if geom['type'] == 'GeometryCollection':
        geom = geom['geometries'][0]
    feat['geometry'] = geom
    
    props = {}
    props['verzoeknummer'] = rec['verzoeknummer']
    props['bevoegdGezagOrganisatieIdentificatieNummer'] = rec['bevoegdGezag']['organisatieIdentificatieNummer']
    props['bevoegdGezagNaam'] = rec['bevoegdGezag']['naam']
    props['behandeldienst'] = rec['behandeldienst'] 
    props['activiteit_id'] = rec['activiteit'][0]['id']
    props['activiteit_urn'] = rec['activiteit'][0]['urn']

    feat['properties'] = props
    
    feats.append(feat)


out_data = {"type": "FeatureCollection"}
out_data['features'] = feats

# json.dumps(out_data)

with open('voorbeeld.geojson', 'w') as f:
    json.dump(out_data, f)
1 like

Thx Raymond!

Ik heb het script getest voor het ‘echte’ bestand, en hier werkt het ook. Nog niet inhoudelijk gecheckt of alles 100% overeenkomt, maar hiermee kan ik zeker verder!

Willem