Gestire le mappe in locale

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Gestire le mappe in locale

nazario.derrico@alice.it
Salve, 

Sono uno studente del dipartimento di Informatica dell'Università degli studi di Parma, con un'azienda esterna sto seguendo un progetto che riguarda OpenStreetMap.

Spiego molto brevemente:

il progetto riguarda una APP già sviluppata dall'azienda alla quale si vuole integrare un servizio di geolocation degli utenti che ne fanno uso e successivamente anche la funzionalità di routing per dare informazioni stradali agli utenti stile diciamo navigatore.
Bene, io ho studiato un pò in giro come funziona OpenStreetMap, per sistemare il routing e la geolocation utilizzo Leaflet e MapQuest per gestire gli eventi e per le varie modifiche alla mappa;

Ora il problema che mi trovo ad affrontare è che le richieste dei tile delle mappe con i relativi layout  vengono  fatte a MapQuest ed a Openstreetmap sempre tramite internet ( cosa che visto che si va ad utilizzare la funzionalità nell'ambito mobile è molto dispendiosa perchè ogni volta carico e scarico la mappa), mentre l'ideale sarebbe scaricare un file completo di mappa da OpenStreetMap e gestirlo in  un server locale mio cosi che l'apparato mobile non debba ogni volta fare una richiesta al server di OSM, diminuendo sostanzialmente il consumo di traffico dati.

Bene ho letto qualcosa sull'argomento ma non mi è ben chiaro come  utilizzare le mappe scaricate ad esempio attraverso GeoFabrik; mi spiego meglio: una volta scaricata il file  (shapefile) , come faccio ad integrarlo con il codice javascript con la sintassi tipo:

 var map = L.map('map').setView([38, 0], 3);
                    L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
                    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
                    maxZoom: 18
                }).addTo(map);

visto che qui il tileLayer viene preso direttamente dal sito di openstreetmap =??????


grazie.

_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

dieterdreist

2014-10-28 15:47 GMT+01:00 [hidden email] <[hidden email]>:
Bene ho letto qualcosa sull'argomento ma non mi è ben chiaro come  utilizzare le mappe scaricate ad esempio attraverso GeoFabrik; mi spiego meglio: una volta scaricata il file  (shapefile) , come faccio ad integrarlo con il codice javascript con la sintassi tipo:


un shapefile è un database e non è un immagine (con leaflet credo che non puoi visualizzarlo). Per vedere qualcosa occorre definire delle regole, ma I shapefiles di geofabrik comunque sono già dati filtrati, mentre i dati OSM originali si trovano dentro i files *.osm.bz2 (XML compresso con bzip2) oppure *.pbf (binario).

Invece per utilizzare gli immagini direttamente in OpenLayers/Leaflet dovresti usare un tileset.

Scaricarsi un tileset intero da OpenStreetMap probabilmente va oltre l'uso consentito del tileserver:
http://wiki.openstreetmap.org/wiki/Tile_usage_policy

ciao,
Martin

_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

sabas88
In reply to this post by nazario.derrico@alice.it


Il giorno 28 ottobre 2014 15:47, [hidden email] <[hidden email]> ha scritto:
Salve, 

Sono uno studente del dipartimento di Informatica dell'Università degli studi di Parma, con un'azienda esterna sto seguendo un progetto che riguarda OpenStreetMap.

Ciao,
bello! Bravi ad usare OSM :-)


Spiego molto brevemente:

il progetto riguarda una APP già sviluppata dall'azienda alla quale si vuole integrare un servizio di geolocation degli utenti che ne fanno uso e successivamente anche la funzionalità di routing per dare informazioni stradali agli utenti stile diciamo navigatore.
Bene, io ho studiato un pò in giro come funziona OpenStreetMap, per sistemare il routing e la geolocation utilizzo Leaflet e MapQuest per gestire gli eventi e per le varie modifiche alla mappa;

Ora il problema che mi trovo ad affrontare è che le richieste dei tile delle mappe con i relativi layout  vengono  fatte a MapQuest ed a Openstreetmap sempre tramite internet ( cosa che visto che si va ad utilizzare la funzionalità nell'ambito mobile è molto dispendiosa perchè ogni volta carico e scarico la mappa), mentre l'ideale sarebbe scaricare un file completo di mappa da OpenStreetMap e gestirlo in  un server locale mio cosi che l'apparato mobile non debba ogni volta fare una richiesta al server di OSM, diminuendo sostanzialmente il consumo di traffico dati.

Ma quindi devi fare una webapp o una app nativa?
Che se devi fare una app nativa non devi usare Leaflet ma qualche SDK che supporta file locali sul device (mapsforge, mapbox sdk e simili).
 

Bene ho letto qualcosa sull'argomento ma non mi è ben chiaro come  utilizzare le mappe scaricate ad esempio attraverso GeoFabrik; mi spiego meglio: una volta scaricata il file  (shapefile) , come faccio ad integrarlo con il codice javascript con la sintassi tipo:

 var map = L.map('map').setView([38, 0], 3);
                    L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
                    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
                    maxZoom: 18
                }).addTo(map);

visto che qui il tileLayer viene preso direttamente dal sito di openstreetmap =??????

Un tilelayer in proprio forse è un po' eccessivo..


grazie.

Ciao,
Stefano 

_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it



_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

nazario.derrico@alice.it
all'inizio è rivolta al desktop quindi una web app, che sostanzialmente
geolocalizza gli utenti e memorizza le posizioni registrate dagli utenti
in un DB che  si andrà poi a consultare per vedere i vari spostamenti da
parte dei capi.

il mio problema principale è che non voglio ogni volta dover richieder
la mappa al server OSM ma averla nel mio server in locale, solo che non
ho ben capito come posso procedere per ottenere ciò.


grazie.
Nazario

_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

Stefano Salvador



il mio problema principale è che non voglio ogni volta dover richieder la mappa al server OSM ma averla nel mio server in locale, solo che non ho ben capito come posso procedere per ottenere ciò.


devi mettere in piedi il tuo tileserver configurandoti tutto lo stack di rendering utilizzato dal sito osm.org, per sapere come fare puoi cominciare da qui:

http://switch2osm.org/

in particolare la sezione "serving tiles"

ti conviene decidere fin dall'inizio di fornire solo i tile di una zona ristretta, creare i tile per tutto il mondo richiede risorse hardware rilevanti mentre per un territorio delle dimensioni di una regione italiana ti può bastare anche una comune workstation.

non è un processo semplice ma ti da la possibilità di applicare un tuo stile personalizzato alla mappa e decidere le politiche di aggiornamento e cache delle tile in modo ottimizzato per la tua applicazione.

una volta che tutto funziona ti basta sostituire a http://osm.org il link del tuo server personale.

Ciao,

Stefano


_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

sabas88
In reply to this post by nazario.derrico@alice.it


Il giorno 29 ottobre 2014 01:20, nazario derrico <[hidden email]> ha scritto:
all'inizio è rivolta al desktop quindi una web app, che sostanzialmente geolocalizza gli utenti e memorizza le posizioni registrate dagli utenti in un DB che  si andrà poi a consultare per vedere i vari spostamenti da parte dei capi.

il mio problema principale è che non voglio ogni volta dover richieder la mappa al server OSM ma averla nel mio server in locale, solo che non ho ben capito come posso procedere per ottenere ciò.



 
grazie.
Nazario


_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it


_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

nazario.derrico@alice.it
ho letto un pò di documentazione ma non mi è molto chiaro il procedimento.

Quello che vorrei fare se possibile è scaricare Tile senza doverli
creare io, da poi ingoblare nel programma richiamandolo con Leaflet.

Possibilmente non a pagamento .

_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

Stefano Salvador

Quello che vorrei fare se possibile è scaricare Tile senza doverli creare io, da poi ingoblare nel programma richiamandolo con Leaflet.

tutti i servizi di produzione di tile (osr.org, MapQuest, MapBox, ...) sconsigliano o limitano molto il mass downloading delle tile, questo perché generare tile è un processo che richiede molte risorse computazionali e scaricarne in grosse quantità mette in crisi i server.

Considera che salvarti staticamente tutte le tile per tutti i livelli di zoom richiede parecchio spazio disco (qualche centinaio di GB solo per l'Italia) e ti perderesti gli aggiornamenti che vengono fatti alla mappa. Comunque puoi fare qualche esperimento di generazione locale di tiles statiche usando tilemill.

Mettere in piedi un tile server è un processo forse un po' noioso ma non troppo complicato e ci sono buone guide che spiegano come fare. IMHO l'unica alternativa possibile è pagare una ditta come MapBox, Geofabrick o Stamen che ti faccia il lavoro.

Ciao,

Stefano

_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

dieterdreist

2014-10-29 13:50 GMT+01:00 Stefano Salvador <[hidden email]>:
Considera che salvarti staticamente tutte le tile per tutti i livelli di zoom richiede parecchio spazio disco (qualche centinaio di GB solo per l'Italia) e ti perderesti gli aggiornamenti che vengono fatti alla mappa. Comunque puoi fare qualche esperimento di generazione locale di tiles statiche usando tilemill.


e poi che fai, metti centinaia di GB sullo smartphone?

ciao,
Martin

_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

scratera
dieterdreist wrote
2014-10-29 13:50 GMT+01:00 Stefano Salvador <[hidden email]>:

> Considera che salvarti staticamente tutte le tile per tutti i livelli di
> zoom richiede parecchio spazio disco (qualche centinaio di GB solo per
> l'Italia) e ti perderesti gli aggiornamenti che vengono fatti alla mappa.
> Comunque puoi fare qualche esperimento di generazione locale di tiles
> statiche usando tilemill.
>


e poi che fai, metti centinaia di GB sullo smartphone?

ciao,
Martin

_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
...se il problema è mettere una mappa in locale sul cellofono basta crearsi una mappa img la stessa che usano i garmin e farla girare sotto oruxmap e similari e occupa poco sapzio...se poi si vuole solo una piccola regione di mappa....per l'italia ad esempio compilata come la faccio io occupa su per giù 700kb....
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

pietro marzani
In reply to this post by dieterdreist
Da: Martin Koppenhoefer <[hidden email]>


>e poi che fai, metti centinaia di GB sullo smartphone?

ma forse gli basta una città?? o uno zoom basso??


certo il ragazzo non è molto chiaro ;) ... oppure sono io che non ho capito bene cosa voglia fare


mi pareva di aver capito che le mappe gli servissero più che altro su pc per seguire gli utenti che utilizzano lo smartphone


ciao ciao

_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

Germano Massullo
In reply to this post by nazario.derrico@alice.it

Il 28/ott/2014 15:47 "[hidden email]" <[hidden email]> ha scritto:
>
> Ora il problema che mi trovo ad affrontare è che le richieste dei tile delle mappe con i relativi layout  vengono  fatte a MapQuest ed a Openstreetmap sempre tramite internet ( cosa che visto che si va ad utilizzare la funzionalità nell'ambito mobile è molto dispendiosa perchè ogni volta carico e scarico la mappa), mentre l'ideale sarebbe scaricare un file completo di mappa da OpenStreetMap e gestirlo in  un server locale mio cosi che l'apparato mobile non debba ogni volta fare una richiesta al server di OSM, diminuendo sostanzialmente il consumo di traffico dati.

Dalla tua e-mail non capisco perché interrogando da smartphone il tuo server locale anziché il tile server OpenStreetMap ci debba essere un vantaggio. Gli smartphone operano in LAN oppure in Internet?
Ti consiglio di guardare il codice sorgente del software per Android "OsmAnd". Fa massiccio uso di mappe in formato vettoriale che fanno al caso tuo.


_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

Luca Delucchi
2014-10-30 11:27 GMT+01:00 Germano Massullo <[hidden email]>:

> Ti consiglio di guardare il codice sorgente del software per Android
> "OsmAnd". Fa massiccio uso di mappe in formato vettoriale che fanno al caso
> tuo.
>

da quello che so la libreria migliore dovrebbe essere quella di
mapsforge, osmand, almeno una volta, non aveva una libreria vera e
propria, e non erano interessati a rilasciarla separatamente da
osmand...


--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org

_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it
Reply | Threaded
Open this post in threaded view
|

Re: Gestire le mappe in locale

dieterdreist

2014-10-30 11:30 GMT+01:00 Luca Delucchi <[hidden email]>:
da quello che so la libreria migliore dovrebbe essere quella di
mapsforge, osmand, almeno una volta, non aveva una libreria vera e
propria, e non erano interessati a rilasciarla separatamente da
osmand...


GPL ;-)
Tanto, dipende cosa vuole supportare, deve diventare una webapp oppure Android solo oppure iOS / win8 / BB etc.?

ciao,
Martin

_______________________________________________
Talk-it mailing list
[hidden email]
https://lists.openstreetmap.org/listinfo/talk-it