Tutorial per OpenLayers? [chiuso]


12

Devo creare una mappa Web che mostri molti livelli raster. Sto usando mapserver e voglio usare Openlayers, tuttavia non riesco a trovare un buon tutorial a riguardo. Vedo un paio di vecchie domande ( 1 e 2 ) che dicono che non c'era una buona documentazione. Le cose sono cambiate di recente?

Vorrei trovare un tutorial che insegna dalle basi alle cose piuttosto complicate con buone spiegazioni del codice e immagini / esempi dei risultati. Per ora sono riuscito a fare solo la mappa web più semplice con il mio file .map , ma ho bisogno di personalizzarlo (aggiungere legende, livelli di gruppo, aggiungere più controlli, incorporamento, ecc.).

Risposte:


7

Mentre gli altri hanno suggerito buoni tutorial online, lascia che ti parli del libro che mi ha dato una base necessaria per OpenLayers.

Il libro è: Guida per principianti di OpenLayers 2.10 di Erik Hazzard. È disponibile presso Packt Publishers.

Consiglio vivamente il libro, perché tratta tutte le parti principali della Biblioteca. Inizia dalle basi e lentamente ti aiuta a crescere verso parti complicate dell'API.


2
È disponibile come e-book da qui per £ 14,44 sembra eccellente.
Mark Cupitt,

Il prezzo dipende dal paese da cui si accede. Mi sta mostrando un prezzo di circa $ 3;
Devdatta Tengshe,

Wow, immagino che nelle Filippine stiamo venendo penalizzati. dovresti farti comprare per me :-)
Mark Cupitt il

Grazie per il consiglio, ho appena ricevuto il libro da un amico, vediamo ...
Nadya,

non puoi usare qualcosa come PirateBrowser per nascondere il tuo paese e acquistarlo al prezzo più basso?
Sotto il radar,

13

Oltre alle eccellenti risposte di cui sopra, vorrei aggiungere la mia esperienza. Un anno e mezzo fa ho deciso che volevo usare OpenLayers (OL) nel progetto del mio Master e ho iniziato a impararlo. Ho iniziato a programmare e realizzare mappe digitali come parte del mio lavoro di archeologo sin dai primi anni '80 e sono un utente di ArcGIS da 15 anni. Sono felice di aver scelto OL per il mio progetto, ma non è stato sempre un percorso semplice impararlo. Alcune cose non erano ovvie e apprese solo da prove ed errori. Quindi, ho dei consigli per i principianti.

Il mio percorso di apprendimento di OL è davvero iniziato quando mi sono registrato per un account di libreria a 5 slot su Safari Books Online per $ 10 / mese USD. Volevo rivedere i libri prima di acquistare, e pochi negozi che si possono visitare portano libri informatici relativi al GIS. Ora ci sono tre libri su OL 2. Un nuovo libro di 58 pagine chiamato Instant OpenLayers Starter di Di Lorenzo e Allegri (aprile 2013) è un buon inizio rapido, ma i primi due libri e i loro esempi di codice (disponibili sul web dell'editore sito, insieme a un capitolo di esempio gratuito di ogni libro) erano buone risorse:

  • OpenLayers 2.10: Beginner's Guide di Erik Hazzard (marzo 2011)
  • Ricettario OpenLayers di Antonio Santiago Perez (agosto 2012)

A causa di occasionali frustrazioni per la compatibilità con css e browser, ho finito per imparare anche un framework JavaScript. Ho scelto Dojo perché è quello che Perez ha usato nel suo libro. Il Dojo moderno (Dojo 1.7 +) è un approccio significativamente diverso rispetto alle versioni precedenti, utilizzando un formato AMD (Asynchronous Module Definition). Il modo di fare tutto è cambiato. Non ho capito che questo libro altrimenti eccellente utilizza una versione precedente alla 1.7 di Dojo che è stata resa obsoleta 9 mesi prima della pubblicazione del libro nell'agosto 2012. Esri ha continuato a utilizzare la versione precedente al Dojo nell'API ArcGIS JavaScript fino alla modernizzazione nel giugno 2012 e questo è stato un passaggio doloroso per molti sviluppatori ArcGIS Javascript.

Per capire quanto sia scarsamente supportato il Dojo, oltre a un libro scritto nel 2010 su Dojo 1.3, la maggior parte dei libri è stata scritta nel 2007 e nel 2008. Non ci sono libri pubblicati per il Dojo moderno: devi imparare dalle risorse online, quasi tutti che si trovano sul loro sito web. Fondamentalmente, per lavorare con gli esempi nel libro di Perez, devi conoscere abbastanza informazioni su JavaScript per ignorare i bit Dojo e spostare gli esempi in JavaScript o nel tuo framework preferito.

In retrospettiva, vorrei essere andato con il framework ExtJS e GeoExt. ExtJS è gratuito se il tuo progetto è open source e poiché molte aziende pagano felicemente una versione supportata, possono permettersi di dedicare tempo a documentazione e tutorial completi sul sito web.

Imparo meglio lavorando con / hackerando esempi a parte. Gli sviluppatori di OpenLayers hanno la stessa filosofia della documentazione principale a cui puntano per l'apprendimento sta esaminando gli esempi. Tuttavia, alcuni esempi di OL sul loro sito Web e altrove presentano problemi che possono far inciampare i principianti. (Vedi sotto.)

La dipendenza da esempi come documentazione significa anche che l'utente non ha la sensazione di un buon flusso di lavoro per lo sviluppo di una mappa web. Ciò può portare a rendere le mappe incomplete - ad esempio, potrebbero mancare le personalizzazioni CSS all'interfaccia utente delle mappe e "aspetto grafico". Sostituire i CSS OL con personalizzazioni sembra scoraggiante per il principiante, ma Firebug può aiutarti a trovare i nomi degli elementi che devi sovrascrivere. La mancanza di un senso di un flusso di lavoro accettato può anche portare alla creazione di Frankencode, in quanto gli utenti entrano nel loro codice quando scoprono di volerlo.

Questo mi porta all'ultimo elemento in cui sento che manca la documentazione del sito OL, un senso di "buone pratiche" per le mappe OL. Esiste un modo migliore per organizzare il mio codice per renderlo modulare e robusto? Quali sono le insidie ​​con chiusure JavaScript e oggetti OL? Dove devo dichiarare i miei stili? E così via.

Oltre ai vari file obsoleti nel Wiki, ci sono due problemi generali di cui un principiante dovrebbe essere a conoscenza quando apprende dagli esempi OL ufficiali e dai documenti API. Innanzitutto, non esiste alcuna organizzazione nella pagina di esempi di sviluppo OL sul sito Web OL. Sta semplicemente presentando il feed dal file xml in quella directory (esempio-list.xml) degli esempi (207 di questi al 13 febbraio 2014) e ordinando le righe in ordine alfabetico per nome file in una griglia. Esempi più avanzati sono mescolati con quelli di base. Puoi cercare gli esempi per parola chiave, ma molti degli esempi mancano di parole chiave e la funzione di ricerca include contenuto e titolo della pagina nella ricerca, non solo parole chiave. I risultati vengono restituiti con il numero più alto di termini di ricerca corrispondenti per primi seguiti dalla frequenza delle parole. Solo uno dei termini di ricerca deve essere una corrispondenza da mostrare nei risultati. La pagina UserRecipes sul Wiki OL elenca circa 90 esempi organizzati per categoria e questa categorizzazione è di aiuto. Di questi, 66 sono collegamenti attivi agli esempi nella pagina degli esempi e il resto sono collegamenti errati agli esempi rimossi.

In secondo luogo, ci sono fondamentalmente due versioni della documentazione API che sembrano essere le stesse a prima vista. L'API ufficiale si trova in una directory chiamata / apidocs e il bleeding edge, ma la volatile libreria per sviluppatori si trova in una directory chiamata / docs. Gli URL sono uguali altrimenti. (Esistono anche versioni trunk.) Basta modificare l'indirizzo della pagina per vedere l'altra versione. Il Wiki osserva che la libreria per sviluppatori non dovrebbe essere considerata come proprietà, funzioni, ecc. Che potrebbero essere rimosse dalla libreria in qualsiasi momento. Con OpenLayers 3 vicino alla realtà (è disponibile in beta e c'è un libro su di esso ora), sospetto che non cambierà troppo in OL 2 in futuro. L'attenzione ora è su OL 3.

In generale, trovo che le pagine dell'API OL siano eccessivamente scheletriche, spesso prive di spiegazioni o esempi illustrativi, specialmente per chi è abituato a librerie con una documentazione API più completa. Il modo in cui viene presentato non si ottiene un'immagine chiara dell'oggetto da cui eredita.

Degli esempi OL sul Web in generale, molti usano oggetti o sintassi che sono stati deprecati perché sono stati sostituiti da versioni migliorate. Ad esempio, Layer.Vector è ora il modo preferito di disegnare marcatori poiché Layer.Marker è obsoleto nella versione 3. Esamina il file deprecated.js per assicurarti di non utilizzare oggetti che stanno uscendo. Oppure, almeno sii consapevole se aggiorni il tuo codice a OL 3 dovrai cambiarlo.

Oltre al workshop Boundless OpenLayers collegato da Julien-Samuel Lacroix sopra, IBM ha un fantastico tutorial, anche se di tre anni, che utilizza OpenLayers, MapServer, Google Gears e jQuery per creare un'app Web GIS completa: riunire i dati con OpenLayers : Utilizzo di dati provenienti da più fonti divergenti nelle mappe Web

Inoltre, dai un'occhiata a questo utile post sullo styling del layer switcher

Google le parole OpenLayers e jsFiddle per ottenere alcuni esempi di violini OL. Il risultato dal sito techslides è una pagina che elenca alcuni di questi.

Infine, fai attenzione che le immagini delle mappe nella maggior parte degli esempi provengono dai server OpenStreetMap (OSM) e queste vanno di tanto in tanto pianificate o non pianificate e otterrai al loro posto delle tessere rosa. A volte penserai di aver rovinato il tuo codice. Puoi controllare lo stato della piattaforma sul wiki OpenStreetMap.


2
Questa è una bella risposta dettagliata. È un peccato che non abbiamo molte risposte di questo tipo sul sito.
Devdatta Tengshe,

Leta, grazie per la risposta completa! Ora sto combattendo con GeoExt (e ExtJS), e ha ancora più problemi con i tutorial di OL, i loro esempi sembrano piuttosto così :)
Nadya,


4

Open Layers è un pacchetto fantastico, incredibilmente flessibile, ma manca di documentazione per i principianti ma ha un sacco di documentazione dettagliata per gli sviluppatori.

Quello che ho fatto quando ho iniziato è stato quello di guardare tutti gli esempi , scegliere quelli che avevano la funzionalità che desideravo, analizzare il codice e costruire la funzionalità passo dopo passo, testando mentre procedevo. Ho scoperto che provare troppe funzionalità in un colpo solo ha reso più difficile farsi un'idea dei concetti e dei problemi di debug.

Poi ho trovato GIS @ SE che mi è stato di grande aiuto su questioni specifiche, sia facendo ricerche sulle domande di altre persone sia facendo le mie.

A parte questo, @Julian probabilmente ti ha dato la migliore opzione in termini di tutorial, sono abbastanza buoni.


Grazie per la risposta, ho già visto questi esempi ma non sono riuscito a trovare quello di cui ho bisogno. Quindi dovrò codificare ...
Nadya,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.