Quali sono le tue maggiori sfide nello sviluppo di software GIS?
Sta codificando? Comprende i concetti di cartografia / geografia / ecc. (Come le proiezioni)? O altre difficoltà?
Quali sono le tue maggiori sfide nello sviluppo di software GIS?
Sta codificando? Comprende i concetti di cartografia / geografia / ecc. (Come le proiezioni)? O altre difficoltà?
Risposte:
A proposito della mia esperienza come sviluppatore che è entrato nella scena di sviluppo ESRI / GIS quasi 5 anni fa:
Come puoi dire, ho una visione piuttosto negativa della scena di sviluppo dell'ESRI. Per coloro che provengono da un background geografico, sono sicuro che le possibilità sono piuttosto eccitanti. Ma per uno come me che ama i database relazionali, la programmazione orientata agli oggetti e le opportunità aperte per soluzioni creative, lo sviluppo GIS con ESRI è molto vincolante e insoddisfacente. È un peccato perché la folla della vecchia scuola mi dice che era un ambiente superiore, prima dell'allineamento con Microsoft. Spero sinceramente che la comunità open source continui a innovare.
Grandi quantità di dati. Essere in grado di capire il modo giusto per estrarre grandi quantità di dati utilizzando la tecnologia web è stata una sfida. Possiamo avere molti dati e scarse prestazioni oppure visualizzare molti meno dati, ma potenzialmente trasmettere informazioni errate.
Non sono uno sviluppatore GIS; tuttavia, sono un modellatore GIS:
sfide:
Raccolta, aggregazione, disaggregazione, fusione e suddivisione dei dati : ottengo dati da varie fonti per diversi progetti; il problema più grande è di solito ottenere tutti i dati per lo stesso pacco / area geografica. Di solito devo usare alcune delle tecniche sopra menzionate su ogni set di dati, per avere un campione coerente per il progetto. Ciò aumenta le probabilità di errore e diluisce la nostra precisione.
Non sono uno sviluppatore; Ripeto che non sono uno sviluppatore: quando voi adorabili parlate di SOAP, SHAMPOO, REST, GIS-T Indexes, ecc., Questo significa molto per voi. Per me soprattutto è un gergo. Di solito ho una grande curva di apprendimento o una ripida salita per fare alcune delle cose semplici.
Il divario tra FOSS e software proprietario: amo QGIS e postgis a morte; letteralmente li ho installati su ogni macchina; tuttavia, quando voglio fare un'analisi basata sui trasporti, devo ricorrere a TransCAD o EMME2 / 3. Ognuno costa circa $ 15.000 con tutte le campane e fischietti. In tutta onestà, tutti questi problemi potrebbero essere risolti se esistesse un pacchetto networkx per i file shp.
Problema di più discipline: sono esperto di tecniche di modellazione dei trasporti; tuttavia faccio schifo alla modellazione demografica e, per quanto ne so, devo usare sofisticati strumenti R per ottenere i miei dati. Quindi il problema GIS è che il GIS è un campo multidisciplinare che è difficile sopravvivere da soli.
Mancanza di strumenti e software ben consolidati per passare dall'immaginario dell'uso del suolo all'utilizzo del territorio vettoriale: prevedo un futuro in cui uno strumento analizzerà l'immagine satellitare GEOEYE e confronterà l'uso del suolo in esso con un database vettoriale (come costruito)
A volte è più veloce fare cose in Excel / "il tuo programma di fogli di calcolo preferito va qui: a volte voglio fare analisi di transito, è molto più veloce prendere i dati metterli in Excel, fare funzionare le formule, quindi scaricare i dati indietro in Postgis come file CSV e rigenerare la mappa. Tale divisione, specialmente nel mondo OpenSource, dovrebbe essere gestita meglio.
Comunque potrei non averti risposto correttamente; Vorrei solo essere esperto nella programmazione GIS, quindi posso eccellere nella modellazione GIS
Le cose più importanti, e di solito la più difficile della mia esperienza, sono:
Penso che il punto 1 sarà più facile nei paesi sviluppati, ma non è la mia esperienza.
Per me, la sfida più grande è decidere quali strumenti utilizzare per un determinato progetto. Open source o proprietario? Python o .NET? Basato sul Web o desktop? Rispondo a queste domande in modo diverso per diversi progetti e sono sicuro che le persone li chiederanno a tutti su questo sito. Gran parte di ciò dipende dalle preferenze personali e dal tentativo di divinare ciò che ESRI e Microsoft supporteranno in futuro.
Il mio problema riguarda il cavallo e l'acqua. In molti casi sviluppiamo e / o presentiamo soluzioni davvero valide per i nostri clienti, ma non importa quanto sia elegante la soluzione, è assolutamente inutile se nessuno impiegherà il tempo di utilizzarlo. In alcuni casi, siamo stati in grado di alleviarlo rendendo il nostro lavoro basato sull'utente (sondaggio per problemi, parlare di soluzioni prima dello sviluppo) ma in alcuni casi questo non è ancora sufficiente.
Penso che la sfida più difficile sia far capire al GIS la gestione e alcuni utenti non lo capiscono neanche. La percezione è che GIS riguarda la creazione di una mappa; che una mappa è il solo risultato di qualsiasi endevour GIS. Non posso dirti quanto sia frustrante trovarlo: il livello di ignoranza là fuori è enorme ed è detenuto dai decisori chiave.
Alla fine, però - essendo alcuni dei pionieri degli esperti e dei programmatori GIS - alla fine diventeremo dirigenti e poi potremo finalmente realizzare alcuni progetti GIS decenti!
L'altra cosa difficile come programmatore GIS: devi capire tante tecnologie diverse, Java, .Net, database, software ESRI o altri fornitori, ad esempio MapInfo, reti, sicurezza, tecnologia web, ecc. A volte è un lavoro quasi impossibile!
Trattare con persone provenienti da un contesto di rilevamento che non capisce le tecniche e le metodologie di sviluppo software professionale, ma poiché hanno imparato da soli come codificare avenue / VB, pensano che sia tutto ciò che c'è da fare.
# 3 dalla risposta di Vinko :
progettare un'applicazione utilizzabile. È facile e allettante mettere un sacco di campane e fischietti che confondono solo gli utenti.
Vorrei votare l'intera risposta, ma per il fatto che l'usabilità è solo il terzo elemento della sua lista e non credo che i primi due siano così impegnativi.
L'usabilità è dove si trovano la maggior parte dei miei problemi e dove passo la maggior parte del tempo di progettazione / sviluppo, per capire come progettare un'interfaccia utente intelligente ed efficace, ma mantenerla intuitiva in modo che gli utenti non ne siano confusi, ad esempio:
Come ottimizzare lo stile (e scegliere i livelli) di una mappa interattiva per mostrare le informazioni pertinenti ed evitare il disordine che spesso deriva dalla visualizzazione di troppi dati (ad esempio utilizzando l'aggregazione automatica delle caratteristiche dei punti); So che questo è ciò che la cartografia ha cercato di risolvere per secoli, ma il problema peggiora solo con le mappe digitali / interattive
Come eseguire il posizionamento automatico della vista della mappa in base alla query / alla selezione delle funzioni dell'utente
Evidenziando le funzionalità 'selezionate' - mostri il momento saliente solo brevemente, lo fai evidenziare per tutto il tempo in cui una funzione è selezionata, non evidenzi quando la tabella di selezione (o elenco) perde lo stato attivo ... Come evidenziare entrambe le query risultati da una tabella e dalla riga selezionata all'interno di quella tabella (senza avere troppi pulsanti di attivazione / disattivazione)
Mostrare informazioni aggiuntive in elenchi di livelli o caratteristiche, ad es. Visibilità di un livello / stile applicato / tipo di geometria, stato / classe della caratteristica ... Ciò diventa ancora più complicato nel caso in cui uno abbia tipi di caratteristiche differenti visualizzati nello stesso elenco (suppongo sia per questo Google e Bing Maps utilizzano un filtraggio piuttosto pesante dei risultati della ricerca)
Modifica efficiente: snap, chiusura di poligoni, aggiunta / spostamento / eliminazione di punti, senza molti pulsanti della barra degli strumenti.
Come progettare (e implementare) un'interfaccia di query agevole per le query sulla geometria e, ancora più impegnativa, un'interfaccia per le query che includa sia attributi che geometria; senza fare in modo che l'utente digiti qualcosa di simile a SQL.
Come progettare qualcosa di simile ad un blocco appunti per caratteristiche / geometrie per evitare di dover continuamente 'selezionare' una caratteristica fuori dalla mappa per l'uso in query, modifiche ...
La mia sensazione è che il GIS sia un campo particolarmente impegnativo nell'aspetto dell'usabilità, perché:
La posizione è il contesto universale e di solito il più naturale per qualsiasi informazione, quindi ci sono sempre troppe informazioni disponibili per la visualizzazione
Avendo informazioni visualizzate su una mappa, si è facilmente tentati di sottovalutare l'importanza delle parti non GIS dell'interfaccia utente
L'industria ha tradizionalmente trascurato l'aspetto di usabilità del software GIS e se ne sono andati perché il mapping digitale era visto come un commercio tecnico con una curva di apprendimento lenta e c'erano concetti molto più difficili da imparare rispetto a come utilizzare l'interfaccia. Ciò significa che chiunque tenti di progettare un'interfaccia GIS per i non esperti deve inventare i propri principi che sono destinati a confondere (un bell'esempio potrebbe essere "Le mie mappe" di Google o "Le mie posizioni" di Bing Maps)
Una delle maggiori sfide allo sviluppo GIS basato sul Web è il modo in cui i dati vengono consegnati e quanta efficienza posso ottenere dalla consegna dei dati in un certo modo. Il più grande ostacolo è che è molto difficile scrivere codice per qualcosa che richiede una modifica da parte di un essere umano. Molto raramente vedi tecniche di generalizzazione per i dati vettoriali utilizzati su larga scala. La maggior parte delle volte devi modificare gli intervalli di scala per attivare e disattivare i livelli.
Questa domanda è emersa durante la mia ricerca su Google per le sfide nel GIS e ho voglia di contribuire qui.
Un altro collegamento che mi è sembrato rilevante era questo documento.
Riassumendo ciò che viene detto lì e le mie opinioni, penso che le maggiori sfide (in nessun ordine particolare siano):
Quando si tratta di programmazione, sento di perdere troppo tempo per risolvere il problema. Per le proiezioni mi ci sono voluti un paio di mesi per capire i processi e la matematica in quanto a mio avviso c'è poco materiale pubblicato utile sull'argomento. I documenti EPSG e OGC sull'argomento mi hanno aiutato a risolverlo dopo alcune letture, anche se a volte sembrano copie l'una dell'altra. Il problema più grande che ho come sviluppatore indipendente è che non posso fare a meno di inciampare su persone che necessitano di lavoro specializzato per lo sviluppo di applicazioni web mediche, industriali o persino semplici, anche ora. Con l'industria GIS sembra quasi impossibile trovare un modo per entrare nel mercato.
Sono un principiante assoluto nelle tecnologie GIS, capendo le cose mentre vado. E poiché ho fondi limitati, sto cercando di evitare di utilizzare qualsiasi prodotto ESRI e di fare le cose interamente con strumenti open source.
Detto questo, le cose più difficili per me finora sono state tutte legate alla raccolta di dati. Ci sono molti articoli su come manipolare e visualizzare i dati e molti strumenti per semplificarti la vita. Ma sto camminando nel buio quando si tratta di raccogliere dati.
Non ho idea di cosa facciano i professionisti per trovare e raccogliere dati. Qualcosa mi dice che esiste un modo più semplice per ottenere dati rispetto a data.gov e google.
Potresti essere sfortunato essere costretto a lavorare con analisti GIS che sono stati convertiti in sviluppatori di software.
È facile aspettarsi che uno sviluppatore di software competente raccolga i concetti GIS e li lasci passare attraverso l'API e generalmente capisca le cose senza molto aiuto. Lo stesso non vale per l'assunzione di un analista GIS e l'aspettarsi che prendano lo sviluppo del software.
I risultati sono imbarazzanti , nella migliore delle ipotesi. Se hai esperienza di lavoro con sviluppatori cattivi , immagina che sia un codice peggiore di qualsiasi cosa il programmatore peggiore abbia sviluppato.
Ci sono alcune aziende per cui potresti lavorare che non lo capiscono.
il mondo GIS si sta espandendo verso l'utente comune, tranne nei primi anni in cui il GIS è stato trattato solo da ingegneri, architetti o comunità scientifica. Nel caso in cui l'app GIS venga eseguita per l'utente comune, la sfida è un mix appropriato di tecnologie in cui il GIS viene trattato come una tecnologia in più (in questo caso è sufficiente uno sviluppatore con una scarsa conoscenza della tecnologia GIS). Tuttavia, nel caso in cui l'app venga eseguita per la comunità specializzata, la sfida è più complessa poiché oltre a unire le tecnologie è necessario cercare gli algoritmi esistenti per soddisfare i requisiti, altrimenti, peggio ancora, dovremmo sviluppare questi algoritmi. In questo caso, il lavoratore deve adottare una miscela di ingegnere e sviluppatore.