Questo è un argomento che emerge sempre. Potrei non avere la risposta giusta, ma posso darti la mia opinione personale .
Il motivo per cui sono supportati, può essere attribuito a diverse caratteristiche su di essi, quindi vorrei menzionarne alcuni.
Innanzitutto, c'è una specifica . Voglio dire, ho circa trent'anni e questa cosa esisteva da quando ero un adolescente. Quindi è sicuro di dire che questa specifica è in circolazione da un po 'di tempo. Naturalmente, ci sono anche molti altri formati pubblicati, ma la differenza su questo è che ...
È relativamente semplice! È basato sul formato DBF , che al momento esisteva già ed era ampiamente supportato su diverse piattaforme / sistemi operativi. Esistevano già parser in grado di leggere la metà di questo formato (la parte DBF), quindi rendeva più semplice supportare l'aggiunta aggiuntiva. Hai una geometria? Certo, basta serializzarlo e scriverlo. Hai fatto. Contrastare questo con una copertura ! Cerca di spiegare a qualcuno in termini semplici cosa fa una topologia pulita . Non è banale scrivere una copertura topologicamente pulita.
Ancora più importante, penso che il motivo numero 1 per cui gli shapefile siano ancora popolari è che sono supportati sia nei sistemi Open Source che proprietari . Quale GIS sai che non supporta gli shapefile?!? Inaudito.
In sostituzione, sentiamo parlare di File GeoDatabase e Spatialite . Entrambi i formati sono notevolmente superiori in termini di funzionalità, flessibilità, velocità, ecc. Rispetto ai Shapefile. A modo loro, hanno alcune cose che le rendono migliori l'una dell'altra in diverse aree, ma un confronto tra spazialite e FileGDB è certamente fuori dall'ambito di questa domanda.
Penso che uno di questi formati sostituirà Shapefile? Non nelle loro attuali incarnazioni .
Perché?
Non a causa di un argomento tecnologico (ho detto che dopo tutto erano superiori in quell'aspetto), ma a causa di qualcos'altro: la licenza.
Quindi quali sono i loro problemi?
FileGDB :
FileGDB fornisce interoperabilità attraverso la nuova API FileGDB. Tuttavia, questa API è fornita in formato binariodall'ESRI. Questa non è una specifica. Avendo lavorato nel team di GeoDatabase in passato, posso dirti che, contrariamente a tutti i teorici della cospirazione che indossano un cappello di stagnola, questo non è affatto malevolo. È perché le parti interne del GeoDatabase cambiano ad ogni versione. Pubblicare una specifica completa implicherebbe sostanzialmente fornire tutti i dettagli su come dovrebbe essere gestito tutto e quindi documentare attentamente le modifiche al formato ad ogni versione annuale. Non ha senso. Quindi l'API FileGDB, anche se non è una specifica, estrae tutte quelle piccole modifiche. E ora può essere utilizzato multipiattaforma! Intendiamoci, questo è un enorme passo avanti! Considerando la natura conservatrice dell'ESRI, questa è sicuramente una reazione nella giusta direzione.
Eppure, il supporto solo binario non rende troppo felice nessuno nel mondo Open Source. Come trarre vantaggio dal porting del codice per dire a qualche altra versione di Linux se ESRI non lo supporta. Non puoi. Questo è ciò che rende potente l'Open Source e ora non puoi trarne vantaggio. Se ESRI decide di smettere di supportare Debian, questo è tutto. Hai fatto. E non c'è niente che tu possa fare per cambiarlo.
Spazialità :
Spatialite è eccezionale perché ottiene tutte le funzionalità gratuite da SQLite . SQLite è usato ovunque. È sul tuo telefono Android, sul tuo iPhone / iPad, su Firefox, su Google Chrome, su diversi dispositivi commerciali incorporati - può andare avanti per sempre. Per trasformarlo davvero in un Geoformat (e non solo fare stupide operazioni con i box di delimitazione), deve sfruttare la stessa libreria di geometrie utilizzata da PostGIS: GEOS . Purtroppo, GEOS si basa su un'altra libreria di geometria ancora più straordinaria conosciuta come JTS . Tutti gli algoritmi in JTS sono estremamente potenti, quindi qual è il problema?
Bene, JTS è concesso in licenza come LGPL Open Source e LGPL è una licenza virale . JTS è LGPL, significa che GEOS è LGPL, significa che spazialite collegata staticamente con GEOS è LGPL. Questo fa schifo. Perché? Senza spiegare troppo le licenze open source , posso dirti che, ad esempio, non posso usare spatialite su un'app per iPhone perché ciò renderebbe la mia intera app automaticamente open source (iOS consente solo collegamenti statici). Qualsiasi tipo di licenza GPL (ragionevolmente) spaventa l'ESRI e quindi non la toccheranno con un palo da 10 piedi. Quindi, ArcGIS, il sistema GIS più popolare al mondo non supporta (e probabilmente non potrà mai) supportare nativamente la spazialite. Questo lo uccide automaticamente come un formato praticabile.
E così torniamo a shapefile scadenti che sono supportati ovunque.
Aggiornamento :
Apparentemente la mia risposta è stata abbastanza controversa che qualcuno ha deciso che era OK modificare liberamente e cambiare l'intero significato della mia risposta per esprimere il loro punto di vista. Per favore, non farlo. Se non sei d'accordo con me, va benissimo, pubblica la tua opinione in una risposta diversa e lascia decidere alla community. Ho eseguito il rollback delle modifiche alla mia risposta per mostrare il significato originale. Sto aggiungendo questo aggiornamento nel caso in cui leggessi la risposta modificata che affermava che sqlite era un formato praticabile.