venerdì 21 settembre 2018

Leaflet JS e GeoJSon

Alcune volte mi capita di dover convertire delle tracce GPX per visualizzarle con LeafletJS.
In generale il primo lavoro e' quello di rimuovere il dato di quota tramite la app (opzione flatten)
 
https://wtracks.appspot.com/

per poi semplificare il percorso mediante 

https://github.com/stefanocudini/gpx-simplify-optimizer

a questo punto rimane l.ultimo problema...ovvero che il formato GeoJSon usa il formato [lon,lat] mentre Leaflet usa [lat,lon]

per convertire i dati nel giusto formato e formattarli in un array javascript per poterli incollare nell'oggetto ployline di Leaflet ho scritto questo semplice codice che usa la libreria Python GeoJson (pip install geojson)
-------------------------------------------------------------------------------------------
import geojson
with open('svizzera_flat_1069nodes.geojson') as f:
    data = geojson.load(f)
   
for feature in data['features']:
    #print feature['geometry']['type']
    #print feature['geometry']['coordinates']+'\n'
    coo = feature['geometry']['coordinates']
    for p in coo: print "["+str(p[1]) + "," + str(p[0])+"],"

Nessun commento:

Posta un commento

Update Plotly Dash Csv

    from dash import Dash , html , dcc , callback , Output , Input , State import plotly . express as px import pandas as pd import...