Convenção de nomenclatura da coluna Geometria - 'geom' ou 'the_geom'?

22

Estou iniciando meu primeiro projeto PostGIS e, em vários livros e tutoriais, vi a coluna de geometria rotulada como 'geom' ou 'the_geom'. Um é mais convencional que o outro?

Além disso, existe um bom motivo para usar 'geom' / 'the_geom' em vez de um nome mais descritivo para a coluna de geometria? (Por exemplo, 'centre_point' para o ponto central de um recurso.) Não rotulamos as colunas db convencionais 'the_int' ou 'the_string', então por que rotular colunas de geometria dessa maneira?

usuario
fonte

Respostas:

17

Desde o PostGIS versão 2.0, "geom" é o nome da coluna comum. (Pelo menos, vejo documentação, etc.) Antes disso, era "the_geom" e só posso especular sobre o porquê.

Você pode usá-lo com segurança, mas estou felizmente usando "geom" no PostGIS e SpatiaLite.

Edit: Porque eu perdi completamente a segunda parte da pergunta.
Em geral, um nome comum é conveniente porque é comum que o software GIS exija que as geometrias em uma tabela sejam restritas a um único tipo específico, SRID etc. etc. Portanto, os nomes das tabelas tendem a ser mais descritivos que o nome da coluna de geometria. Por exemplo, você esperaria encontrar tabelas denominadas "school_zone_polygons", "school_zone_centroids", cada uma com uma coluna "geom"; não uma tabela "school_zones" com colunas "geom_polygon", "geom_centroid".

Ter um nome comum significa que você não precisa verificar o esquema sempre que desejar fazer referência a uma coluna geométrica.

Scro
fonte
2
Na programação orientada a objetos, é comum nomear objetos de nível superior anexando um artigo. Isso distingue 'the_chair' de quaisquer instâncias posteriores do tipo 'chair'. Mas o PostGIS realmente não funciona dessa maneira, e mudar para um simples 'geom' provavelmente tornou a implementação de plataforma cruzada mais fácil.
L_Holcombe
Sim, eu sempre adivinhei que era para evitar uma colisão (possível futuro) com uma palavra reservada. Ninguém gosta de digitar aspas duplas.
Scro
1
Obrigado Scro por esclarecer. Embora no caso em que você tenha várias colunas de geometria em uma tabela (não que eu esteja planejando), seu contra-exemplo pareceria uma convenção ideal. Ou seja, tabela "school_zones" com "geom_polygon", "geom_centroid" etc. etc.
Nick
6

Um possível motivo pelo qual "geom" ou "the_geom" foi escolhido como o nome genérico para o campo "shape" foi porque você pode realmente armazenar vários tipos de geometria (ponto, linha, poli etc.) no único campo "geom" no campo mesma mesa. Você pode até olhar para 2005, quando isso foi discutido na lista de e-mails do PostGIS.

Por exemplo, você pode armazenar todas as suas casas, ruas e limites do condado no mesmo campo "geom" da sua única tabela. Obviamente, existem razões pelas quais você pode optar por fazer o contrário, mas isso pode representar a razão pela qual um nome de coluna genérico "geom" foi usado.

Esperamos que alguns usuários antigos do PostGIS entrem em contato com mais detalhes sobre por que o "geom" foi realmente escolhido.

RyanDalton
fonte
1

Ao usar a API REST do Geoserver na publicação de tabelas PostGis existentes, o comando REST falhará se a coluna de geometria não for denominada "geom".

Angelo Arboleda
fonte
2
Tenho certeza que este comportamento é um bug com Geoserver, e uma vez que está resolvido, ele não deve mais ser um ponto de reflexão
Devdatta Tengshe