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

Bayesian linear regression

  import sys import numpy as np import pandas as pd import matplotlib.pyplot as plt # Load CSV data def load_data (csv_path): data = pd....