Este é um tópico que sempre aparece. Talvez eu não tenha a resposta certa, mas posso lhe dar minha opinião pessoal .
A razão pela qual eles são suportados pode ser atribuída a várias características sobre eles, então deixe-me mencionar algumas.
Primeiro, há uma especificação . Quero dizer, eu tenho trinta e poucos anos e isso existe desde que eu era adolescente. Portanto, é seguro dizer que essa especificação existe há algum tempo. Claro, existem vários outros formatos que também são publicados, mas a diferença sobre este é que ...
É relativamente simples! Ele é construído sobre o formato DBF , que na época já existia e era amplamente suportado em várias plataformas / sistemas operacionais. Já havia analisadores que podiam ler metade desse formato (a parte DBF), facilitando o suporte à adição extra. Você tem uma geometria? Claro, apenas serialize e escreva. Você terminou. Compare isso com uma cobertura ! Tente explicar a alguém em termos simples o que uma topologia limpa faz . Não é trivial escrever uma cobertura topologicamente limpa.
Mais importante, acho que o principal motivo para os shapefiles ainda serem populares é que eles são suportados nos sistemas Open Source e Proprietary . Que SIG você sabe que não suporta shapefiles?!? Desconhecido de.
Como substituição, ouvimos falar de File GeoDatabases e Spatialite . Ambos os formatos são muito superiores em termos de funcionalidade, flexibilidade, velocidade, etc., quando comparados aos Shapefiles. A seu modo, eles têm certas coisas que os tornam melhores em áreas diferentes, mas uma comparação de spatialite e FileGDB certamente está fora do escopo desta questão.
Eu acho que um desses formatos substituirá os Shapefiles? Não em suas encarnações atuais .
Por quê?
Não por causa de um argumento tecnológico (eu disse que eles eram superiores nesse aspecto, afinal), mas por causa de outra coisa: licenciamento.
Então, quais são os problemas deles?
ArquivoGDB :
O FileGDB fornece interoperabilidade por meio da nova API FileGDB. No entanto, essa API é fornecida em formato bináriopela ESRI. Esta não é uma especificação. Tendo trabalhado na equipe do GeoDatabase no passado, posso dizer que, ao contrário de todos os teóricos da conspiração que usam chapas de alumínio, isso não é nada malicioso. Isso ocorre porque os elementos internos do GeoDatabase mudam a cada versão. A publicação de uma especificação completa implicaria basicamente fornecer todos os detalhes de como tudo deve ser mantido e, em seguida, documentar cuidadosamente as alterações no formato a cada lançamento anual. Isso não faz sentido. Portanto, a API FileGDB, mesmo que não seja uma especificação, abstrai todas essas pequenas alterações. E agora ele pode ser usado em várias plataformas! Lembre-se, este é um grande passo em frente! Considerando a natureza conservadora das ESRI, essa é definitivamente uma reação na direção certa.
E, no entanto, o suporte apenas binário não deixa ninguém feliz no mundo do código aberto. Como você tira vantagem de portar algum código para dizer outro sabor do Linux, se o ESRI não o suportar. Você não pode. É isso que torna o código aberto poderoso e, agora, você não pode tirar proveito disso. Se a ESRI decide parar de apoiar o Debian, é isso. Você terminou. E não há nada que você possa fazer para mudar isso.
Spatialite :
O Spatialite é incrível porque obtém todas as funcionalidades gratuitas do SQLite . SQLite é usado em qualquer lugar. Está no seu telefone Android, no seu iPhone / iPad, no Firefox, no Google Chrome, em vários dispositivos comerciais incorporados - pode durar para sempre. Para realmente transformá-lo em um Geoformat (e não apenas fazer operações estúpidas com caixas delimitadoras), ele precisa aproveitar a mesma biblioteca de geometria que o PostGIS usa: GEOS . Infelizmente, o GEOS é baseado em outra biblioteca de geometria ainda mais impressionante, conhecida como JTS . Todos os algoritmos no JTS são extremamente poderosos, então qual é o problema?
Bem, a JTS é licenciada como Open Source LGPL , e a LGPL é uma licença viral . JTS é LGPL, significa GEOS é LGPL, significa espacialidade vinculada estaticamente com GEOS é LGPL. Isso é péssimo. Por quê? Sem explicar muito as licenças de código aberto , posso dizer-lhe que, por exemplo, não posso usar espacial em um aplicativo para iPhone, por exemplo, porque isso tornaria todo o meu aplicativo automaticamente aberto (o iOS só permite vinculação estática). Qualquer tipo de licença GPL (razoavelmente) assusta a ESRI e, portanto, não a toca com um bastão de três metros. Portanto, o ArcGIS, o sistema GIS mais popular do mundo, não (e provavelmente nunca) suporta espacialmente nativamente. Isso mata automaticamente como um formato viável.
E assim voltamos aos shapefiles ruins que são suportados em todos os lugares.
Atualização :
Aparentemente, minha resposta foi controversa o suficiente para que alguém decidisse que não havia problema em editar e alterar livremente todo o significado da minha resposta para colocar seu ponto de vista. Por favor, não faça isso. Se você não concorda comigo, tudo bem, basta postar sua opinião em uma resposta diferente e deixar a comunidade decidir. Eu rolei apoiando as edições na minha resposta para mostrar o significado original. Estou adicionando esta atualização caso você leia a resposta editada que afirmava que o sqlite era um formato viável.