(Quando) devo usar um banco de dados habilitado para GIS?

22

Sou programador de longa data, novo no GIS. Estou tentando entender os aspectos do banco de dados do GIS e entendo que existem alguns bancos de dados especializados para uso do GIS. Basicamente, estou tentando entender se deve usar esse banco de dados ou ficar com o MySql extremamente popular, bem estabelecido, amplamente suportado (e gratuito).

Os tipos de aplicativos que eu sou capaz de codificar seriam:

  • gestão de frotas (veículos terrestres ou oceânicos)
  • rastreamento de funcionários
  • controle de inventário (em uma granularidade de uma posição física precisa com um metro ou mais)
  • errm, é isso, realmente

Normalmente, eu esperaria não rastrear mais do que algumas centenas (no máximo, possivelmente alguns milhares) de itens. Às vezes, os itens estarão localizados no mesmo edifício (grande), série de edifícios, cidade, país ou em todo o mundo, dependendo da aplicação.

Ocasionalmente, eu os representarei visualmente na planta baixa de um prédio ou, mais provavelmente, no Google Earth ou similar (mais dos quais em outra pergunta).

Parece-me que estou bem com o MySql e adicionando colunas para dados de latitude / longitude ou outros dados posicionais, mas isso pode ser apenas porque eu conheço o MySql.

Existe alguma razão para eu procurar um banco de dados mais especializado?

Mawg
fonte

Respostas:

13

A verdadeira vantagem para bancos de dados espaciais (PostGIS, extensões espaciais para MySQL ou qualquer outra coisa) é que você pode executar operações espaciais em dados espaciais. Se você está apenas armazenando coordenadas de pontos, não ganha muito com espaço (basta usar duas colunas numéricas). Se você armazenar combinações de coordenadas de ponto (onde estão os clientes) e coordenadas de linha (para onde os caminhões de entrega vão) e polígonos (regiões de vendas) e, em seguida, faça consultas que relacionem esses vários bits de informações (quantos clientes em uma venda zona, quantos caminhões viajaram a menos de 2 km de um site do cliente hoje, mas não fizeram uma entrega ou uma coleta), você pode ganhar muito.

Como apontado por iant, o PostGIS certamente vale a pena procurar um aplicativo de servidor. SpatiaLite são as extensões espaciais do SQLite, que podem ser mais adequadas para aplicativos móveis de desktop / embutidos / off-line, oferecendo funções SQL bastante semelhantes [ Divulgação: Trabalho no SpatiaLite ], observando que não há nada que o impeça de usar o PostGIS no um aplicativo de desktop.

BradHards
fonte
+1 e obrigado. Curiosidades apenas a respeito de porque ele foi baseado em SQLite e não MySql ...
MAWG
1
Eu acho que são apenas objetivos de design diferentes (incorporados, sem configuração, etc.).
BradHards
+1 foi o que pensei (também sou de um fundo incorporado). Obrigado pela informação. Espero que eu acabe com aplicativos baseados em navegador (a maioria de nós, mesmo se preferirmos não), então o "lite" não é tão necessário. Apenas curioso, que tipo de aplicativos agora onde o d / b está no sistema / dispositivo incorporado? (desculpe, ainda está aprendendo)
MAWG
1
incorporado é uma área grande, mas o dispositivo móvel offline parece ser uma área emergente.
BradHards
2
@Mawg A maioria dos telefones e navegadores modernos usa o sqlite como o armazenamento de dados. Realmente é um único arquivo c, e a API é super simples e é executada em processo. Compare isso com o MySQL, que requer vários processos em execução e uma arquitetura cliente / servidor. Dois casos de usos muito diferentes
Ragi Yaser Burhum 2/12
8

Você certamente deve considerar o PostGIS extremamente popular, bem estabelecido, amplamente suportado (e gratuito) . Ele fará tudo que o MySQL puder fazer e manipular localizações espaciais como objetos de primeira classe. Assim, você pode realizar seleções com base em pontos em uma caixa delimitadora (ou outro polígono) sem precisar escrever todas as comparações, etc.

Depois que você começar a fazer perguntas como quais objetos estão em qual país (ou prédio), o PostGIS realmente se destaca e, se você decidir mapear seus objetos, todas as ferramentas populares de código aberto falarão com o PostGIS a Caixa.

Ian Turton
fonte
+1 e muito obrigado. Estou indo para investigar agora. Do ponto de vista dos codificadores, quero ver bem, ele fala com PHP se eu for baseado na Web, e se eu for o aplicativo de desktop Widnwos, estou usando componentes de acesso a banco de dados AnyDac para Delphi, por isso enviarei um email para o suporte a AnyDac. Obrigado novamente!
MAWG
1
Para Mawg: Eu ainda tenho que ver qualquer uma das bibliotecas de banco de dados delphi de terceiros para suportar qualquer funcionalidade GIS no servidor postgis, db2, spatiallite, sql etc. Parece que isso é algo que você deve fazer por conta própria.
Uffe Kousgaard 27/09/12
+1 @UffeKousgaard Encontrei isso apenas em US $ 295 para o mais barato cartovcl.com
#
1
O Cartovcl (que eu uso há quase 10 anos) é um SDK de GIS de arquivo simples que possui a funcionalidade GIS embutida. Não é uma API fina em cima de um banco de dados remoto ativado espacialmente.
Uffe Kousgaard 04/10/12
1
Documento histórico :-) Mas o TatukGIS é provavelmente um dos SDKs GIS completos mais abrangentes do mercado (mas também um pouco caro). Mas está na mesma liga que o cartovcl, ou seja, a funcionalidade gis está embutida, não é uma API sobre um banco de dados remoto.
Uffe Kousgaard 04/10/12
2

Para adicionar às respostas e reiterar alguns pontos, é usado um banco de dados ativado espacialmente, se você tiver consultas relacionadas às relações espaciais dos dados, algumas das quais são as seguintes:

  1. quais pontos estão a x quilômetros dos meus pontos de interesse
  2. quais pontos estão mais próximos
  3. quão longe um ponto está do outro ponto
  4. quais pontos são x quilômetros dentro da estrada de acesso

Se essas consultas relacionadas a WHERE forem um recurso significativo para um aplicativo, geralmente é altamente recomendável usar um banco de dados espacial.

Obviamente, pode-se recorrer à lógica de codificação / aplicativo para algumas dessas consultas, como usar a fórmula de distância para 1, mas não é necessário reinventar a roda.

arco
fonte