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

Francesco Frassinelli fraph24 a gmail.com
Gio 17 Ago 2017 16:19:22 UTC


Il giorno 17 agosto 2017 16:06, Marina Cooper <marycoopergd a gmail.com> ha
scritto:
>
> 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?
> 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!

Questo sembra più un problema di programmazione web che di OSM.
Qualche giorno fa ho realizzato un applicativo simile per creare mappe
personalizzate con POI in evidenza in base alle diverse esigenze,
utilizzando overpass-api.de/api/interpreter; è molto semplice, Javascript
liscio, magari trovi qualcosa di carino:

Codice sorgente: https://github.com/frafra/poi-around-me
Demo: https://frafra.github.io/poi-around-me/

Tieni conto che overpass a differenza di overpass-turbo non restituisce
geoJSON, solo JSON.

Detto questo, dalla parte iniziale della tua mail mi viene il sospetto che
tu voglia/debba creare qualcosa più articolato della semplice
visualizzazione a schermo dei nodi con un certo tag sulla mappa. Se le API
di overpass non ti bastano, valuta di utilizzare un database geospaziale
lato server (nel progetto che ho mostrato nella mia precedente mail ho
fatto proprio così: i dati da overpass passano a sqlite/spatialite, eseguo
una query e creo una mia piccola API REST che mi ritorna un geoJSON).


Buona programmazione,
Frafra
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.openstreetmap.org/pipermail/talk-it/attachments/20170817/4c812347/attachment-0001.html>


Maggiori informazioni sulla lista Talk-it