Uso do GeoDjango

9

Estamos criando um site que exibe dados geográficos no mapa (atualmente usando a API js do Google Maps). Atualmente, estamos usando postgres + postGIS + php. Foi recomendado que eu analise o uso do GeoDjango. Estou tendo problemas para determinar que funcionalidade geográfica adicional o GeoDjango fornece acima do que já está disponível no postGIS (ou seja, pontos, cadeias de linhas, polígonos, cálculos de distância, cálculos de área, lógica "dentro" etc.).

O GeoDjango fornece funcionalidade adicional ou tem a intenção de simplificar o uso da funcionalidade geográfica existente?

Obrigado!

geouser
fonte

Respostas:

11

O GeoDjango também fornece muitos recursos prontos para uso, com valor agregado.

  • Site de administração habilitado geoespacialmente: Este é um dos meus recursos favoritos do Django em geral. O Django cria automaticamente páginas de administração com boa aparência. O GeoDjango leva isso um passo adiante e fornece uma maneira de visualizar e editar facilmente dados geoespaciais usando um mapa de Openlayers.
  • Feeds GeoRSS / GeoAtom: Criar feeds GeoRSS / GeoAtom é relativamente fácil.
  • Suporte KML / GML / GeoJSON: O GeoDjango suporta serialização KML, GML e GeoJSON. Embora, como um aviso, eu fiz algumas APIs REST com o Django e descobri que não uso os recursos internos do GeoDjango para isso.
  • Bibliotecas de terceiros: OLWidgets é um exemplo de biblioteca de terceiros para o GeoDjango que facilita a criação de mapas interativos. Além disso, você tem acesso a uma ampla variedade de bibliotecas Python. Como exemplo, existe um projeto chamado Haystack que fornece recursos de pesquisa de texto completo. Se você estiver usando um índice de pesquisa externo como Solr ou Elasticsearch, poderá usar o Django para fazer pesquisas de texto completo geoespacialmente ativadas. Pessoalmente, o Elasticsearch é um ótimo substituto para o PostGIS para pesquisas espaciais. Ele não possui todos os recursos do Postgis, mas faz um bom trabalho na maioria dos casos de uso.
  • Isso facilita muito a movimentação entre diferentes bancos de dados. Pessoalmente, usei o GeoDjango com Spatialite e Postgis.

Minha avaliação geral é que Django e Python são muito melhores para o desenvolvimento da web. Todos temos nosso viés pessoal, mas o Python possui uma grande coleção de bibliotecas geoespaciais e numéricas. Isso torna uma boa escolha se você precisar implementar algoritmos geoespaciais complexos.

Shawn H
fonte
3

sim. isso está certo. a intenção é simplificar o uso da funcionalidade geográfica existente com funções básicas. e fornece várias funções geográficas com alguns bancos de dados, como mostra a imagem a seguir;

espacial

Além disso, não é difícil obter resultados mais satisfatórios com a função de um parágrafo. esse código fornece objetos em um raio de 5 km.

qs = Events.objects.filter(point__distance_lte(pnt, D(km=5)))

Se você deseja obter mais informações sobre o geodjango, pode conferir minha resposta aqui sobre o mesmo tópico.

espero que ajude você ...

Aragão
fonte
I coisa que você precisa de um =sinal:qs = Events.objects.filter(point__distance_lte=(pnt, D(km=5)))
Francis Yaconiello