Admin:Invoerbestand aanvullen met latitude longitude
Inleiding
Een bestand van de gemeente (meestal csv of xlsx bestand) heeft soms al de juiste coordinaten waar Leaflet en mijn scripts mee uit de voeten kunnen, maar soms moeten die nog toegevoegd worden.
In dat laatste geval bevat het bestand coordinaten uit een ander stelsel (namelijk ..?), meestal met veldnamen X en Y. Wat we nodig hebben is lengtegraad (longitude of long) en breedtegraad (latitude of lat).
QGIS
Toevoegen van deze velden kan via QGIS. Een Zwitsers zakmes voor kaartbewerkingen. Alles kan, maar de gebruikersinterface is overweldigend voor niet-geografen.
N.B. een klein script zou voor deze toepassing heel wat zou simpeler zijn, maar met perl lukt dat niet, de conversie module heeft bugs.
QGIS (voorheen ook Quantum-GIS) is een open source geografisch informatiesysteem (GIS). Hiermee kan men geografische gegevens bekijken, bewerken en analyseren.
Zie hun website. Zie ook wikipedia Ned en Eng.
Stap voor stap handleiding
We gaan X/Y coordinaten omzetten naar longitude/latitude en die aan een nieuwe versie van het bestand toevoegen (text in English)
Start QGIS
- menu Project / option New
- menu Layer / option Add Layer / Add Delimited Text Layer
- choose csv file Voorschoten 2020.CSV
- File Format: CSV
- Record and fields Options
- EPSG 28992 - Amersfoort / RD New
- Number of header lines to discard: 0
- Check boxes: First record has field names , Detect field types, Trim fields
- Uncheck boxes: Decimal separator is comma, discard empty field
- Geometry Definition
- Point coordinates: point X field X, Y field Y
- Geometry CRS: EPSG:28992 - Amersfoort / RD New
- Layer Settings
- Check all boxes: Use spatial index / Use subset index / Watch file
- button Add
- ? next dialog 'Select Transformation choose last 2nd option, with (4)
- ? press OK
- button Field Calculator
- Output field name long' - select field type 'decimal name (double)
- copy/paste the following string in input box 'expression': x(transform($geometry, layer_property(@layer_name, 'crs'),'EPSG:4326'))
- press OK
- Output field name lat - select field type 'decimal name (double)
- copy/paste the following string in input box 'expression' y(transform($geometry, layer_property(@layer_name, 'crs'),'EPSG:4326'))
- press OK
- Output field name long' - select field type 'decimal name (double)
- button Attribute Table
- verify that new columns long and lat are in 4.xxx/52.xxx range
- menu Layer / option Save As ..., dialog Save Vector Layer As appears
- Format: CSV
- Filename: Voorschoten 20202 latlong.csv
- Folder: click button to select folder
- CRS: EPSG:28992 - Amersfoort / RD New
- Encoding UTF8
- Select fields to export : all
- Keep further options unchanged
- press OK
? choose WGS84