Discussione:
[Talk-it] Gestire le mappe in locale
n***@alice.it
2014-10-28 14:47:02 UTC
Permalink
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('Loading Image...', { attribution: '&amp;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.
Martin Koppenhoefer
2014-10-28 15:01:14 UTC
Permalink
Post by n***@alice.it
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
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
sabas88
2014-10-28 15:09:04 UTC
Permalink
Post by n***@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.
Ciao,
bello! Bravi ad usare OSM :-)
Post by n***@alice.it
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).
Post by n***@alice.it
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
var map = L.map('map').setView([38, 0], 3);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png
<Loading Image...>', {
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
Post by n***@alice.it
_______________________________________________
Talk-it mailing list
https://lists.openstreetmap.org/listinfo/talk-it
nazario derrico
2014-10-29 00:20:16 UTC
Permalink
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
Stefano Salvador
2014-10-29 08:30:16 UTC
Permalink
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
sabas88
2014-10-29 08:33:45 UTC
Permalink
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ò.
https://www.mapbox.com/ :-)
grazie.
Nazario
_______________________________________________
Talk-it mailing list
https://lists.openstreetmap.org/listinfo/talk-it
nazario derrico
2014-10-29 12:37:03 UTC
Permalink
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 .
Stefano Salvador
2014-10-29 12:50:43 UTC
Permalink
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
Martin Koppenhoefer
2014-10-29 13:07:21 UTC
Permalink
Post by Stefano Salvador
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
scratera
2014-10-29 16:40:44 UTC
Permalink
2014-10-29 13:50 GMT+01:00 Stefano Salvador &lt;
Post by Stefano Salvador
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
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....



--
View this message in context: http://gis.19327.n5.nabble.com/Gestire-le-mappe-in-locale-tp5822116p5822298.html
Sent from the Italy General mailing list archive at Nabble.com.
pietro marzani
2014-10-29 16:50:56 UTC
Permalink
Post by Martin Koppenhoefer
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
n***@alice.it
2014-10-30 09:41:06 UTC
Permalink
Ho provato a crearmi delle mappe personalizzate (livelli di zoom e sezioni più piccole ..) tramite MobileAtlasCreator, però in effetti anche solo prendendo ad esempio l'area della città di Parma per la memorizzazione vanno via parecchi mega il che non Ú proprio il risultato che volevo ottenere (considerato che dovrei andare a considerare almeno come inizio tutta l'Europa); ora mi sorge un dubbio.... il traffico dati per scaricare le mappe direttamente dal server OSM Ú molto intenso!?...
E soprattutto se volessi che le mappe siano disponibili quando non c'Ú linea (quindi offline) c'Ú un altro modo per realizzare questa funzionalità!?


----Messaggio originale----
Da: ***@alice.it
Data: 29-ott-2014 17.40
A: <talk-***@openstreetmap.org>
Ogg: Re: [Talk-it] Gestire le mappe in locale
2014-10-29 13:50 GMT+01:00 Stefano Salvador &amp;lt;
Post by Stefano Salvador
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
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....



--
View this message in context: http://gis.19327.n5.nabble.com/Gestire-le-mappe-in-locale-tp5822116p5822298.html
Sent from the Italy General mailing list archive at Nabble.com.
Francesco Pelullo
2014-10-30 10:07:09 UTC
Permalink
Post by n***@alice.it
Ho provato a crearmi delle mappe personalizzate (livelli di zoom e
sezioni più piccole ..) tramite MobileAtlasCreator, però in effetti anche
solo prendendo ad esempio l'area della città di Parma per la memorizzazione
vanno via parecchi mega il che non Ú proprio il risultato che volevo
ottenere (considerato che dovrei andare a considerare almeno come inizio
tutta l'Europa); ora mi sorge un dubbio.... il traffico dati per scaricare
le mappe direttamente dal server OSM Ú molto intenso!?...
Post by n***@alice.it
E soprattutto se volessi che le mappe siano disponibili quando non c'Ú
linea (quindi offline) c'Ú un altro modo per realizzare questa
funzionalità!?

Si.
Su un'area grande come l'Europa puoi soltanto usare mappe vettoriali.

Quindi parti dal formato xml di OSM, oppure dagli shapefiles oppure dalle
mappe vettoriali .img in formato Garmin.

(Dubito che uno smartphone abbia risorse hardware sufficienti).

Ciao
/niubii/
Post by n***@alice.it
Post by n***@alice.it
----Messaggio originale----
Data: 29-ott-2014 17.40
Ogg: Re: [Talk-it] Gestire le mappe in locale
2014-10-29 13:50 GMT+01:00 Stefano Salvador &lt;
Post by Stefano Salvador
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
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....
--
http://gis.19327.n5.nabble.com/Gestire-le-mappe-in-locale-tp5822116p5822298.html
Post by n***@alice.it
Post by n***@alice.it
Sent from the Italy General mailing list archive at Nabble.com.
_______________________________________________
Talk-it mailing list
https://lists.openstreetmap.org/listinfo/talk-it
_______________________________________________
Talk-it mailing list
https://lists.openstreetmap.org/listinfo/talk-it
Stefano Salvador
2014-10-30 10:15:29 UTC
Permalink
Un po' di risposte le hai già avute, ma riproviamoci.

Ho provato a crearmi delle mappe personalizzate (livelli di zoom e sezioni
Post by n***@alice.it
più piccole ..) tramite MobileAtlasCreator,
MoBAC non crea le tile ma le scarica dai vari provider, se ne dovrebbe fare
un uso molto parsimonioso
Post by n***@alice.it
il traffico dati per scaricare le mappe direttamente dal server OSM Ú
molto intenso!?...
dipende da cosa devi fare, in genere no. Ma come al solito per usare le
tile di OSM devi attenerti alle linee guida che ti hanno già linkato
Post by n***@alice.it
E soprattutto se volessi che le mappe siano disponibili quando non c'Ú
linea (quindi offline) c'Ú un altro modo per realizzare questa
funzionalità!?
Esistono delle librerie native per Android e iOS (te le hanno già
segnalate: OsmDroid, MapBox) che lavorano con mappe vettoriali e quindi
occupano molto meno spazio e funzionano bene anche su terminali non molto
dotati (utilizzate ad esempio da OsmAnd o OruxMaps).

Ciao,

Stefano

PS: visto che studi informatica dovresti sapere che nelle ML si risponde
evitando il pop-posting e quotando gli altri messagi ;-)
Germano Massullo
2014-10-30 10:27:44 UTC
Permalink
Post by n***@alice.it
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.
Luca Delucchi
2014-10-30 10:30:25 UTC
Permalink
Post by Germano Massullo
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
Martin Koppenhoefer
2014-10-30 10:53:54 UTC
Permalink
Post by Luca Delucchi
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
n***@alice.it
2014-10-30 11:09:00 UTC
Permalink
GPL ;-)
Tanto, dipende cosa vuole supportare, deve diventare una webapp oppure Android solo oppure iOS / win8 / BB etc.?

ciao,
Martin

_____________________________________________________________________________________________
Ú un progetto che andrà poi integrato con un app mobile già esistente; quindi io devo studiare come funziona la mappatura con OSM e Leaflet, implementare le funzioni di geolocalizzazione, routing e Geo Search, provare su desktop e una volta che il tutto funziona, verrà integrato con l'app presistente (IOS, ANDROID) creata tramite software stile phonegap quindi non nativa.
Tramite leaflet e MapQuest ho già creato delle pagine html in cui localizzo un cliente e ne tengo traccia tramite le varie funzioni messe a disposizione, il mio problema nasce quando l'Azienda mi ha chiesto di cercare di tenere le mappe in locale e non scaricarle sempre ad ogni iterazione;
ciao, Nazario

Loading...