[Talk-it] Effettuare query sul db OSM filtrando i luoghi per tag

Luca Delucchi lucadeluge a gmail.com
Gio 17 Ago 2017 14:32:09 UTC


Ciao,

2017-08-17 16:06 GMT+02:00 Marina Cooper <marycoopergd at gmail.com>:
> Ciao a tutti, vorrei utilizzare openstreetmap per sviluppare una web app che
> permetta di creare percorsi personalizzati per gli utenti sulla base dei tag
> associati ai luoghi (es: voglio andare da A a B passando per tutti i luoghi
> presenti che abbiano tag "amenity = bar" ).
> Cercando nella documentazione, ho provato a fare delle richieste utilizzando
> XAPI (una query di esempio che ho utilizzato è questa:
> http://www.overpass-api.de/api/xapi?debug=*[amenity=hospital][bbox=13.20524,43.70861,13.22842,43.72338])
> .
> Le informazioni che mi venogno ritornate sono corrette, e l'ho provata anche
> modificando l'output in modo che mi ritornasse un JSON, in questo modo:
> https://www.overpass-api.de/api/interpreter?data=[out:json];ways[amenity=hospital](43.70861,13.20524,43.72338,13.22842);out%20meta;
>
> Constato che sono corrette, mi manca il passo successivo: vorrei fare in
> modo che le query siano ovviamente custom, e vorrei inserirle nella web app.
> Com'è possibile farlo? Al momento sto lavorando con il framework Ionic 3,
> quindi sto usando Typescript e Angular.
> In seguito , mi è stato detto che XAPI è praticamente morto e non è
> consigliato utilizzarlo in nuovi progetto; sono stata indirizzata
> all'utilizzo di overpass-turbo e il suo linguaggio overpassQL per le query
> (http://overpass-turbo.eu). Lo wizard è molto utile per capire come
> strutturare la query, ma rimane la domanda: come faccio a inserire le query
> nella mia applicazione, eseguirle ed ottenere il risultato? Non capisco
> proprio come integrarle nel codice javascript e fare in modo che si riesca a
> fare una richiesta al server ed ottenere il risultato voluto. A chi devo
> fare la richiesta? La query costruita deve essere inviata come stringa? Come
> gestisco il risultato?

devi fare in qualche modo la richiesta, se usi javascript puoi usare
una richiesta Ajax e poi parsare il risultato in base alle tue
esigenze.
La cosa più comoda e farsi ritornare un json e lavorare con quello, se
ti serve visualizzare su una mappa allora fatti ritornare un geoJson

> Conoscete tutorial o progetti su github da cui posso capire come strutturare
> la richiesta e ottenere i dati, o eventualmente API più comode? Non so
> davvero come muovermi al momento!
>

potresti iniziare da qui
http://www.overpass-api.de/open_layers_mashup.html
http://wiki.openstreetmap.org/wiki/Overpass_API


-- 
ciao
Luca

www.lucadelu.org



Maggiori informazioni sulla lista Talk-it