| 3.1. |
Que tipo de objetos geométricos eu posso armazenar? |
||||
|
Você pode armazenar point, linestring, polygon, multipoint, multiline, multipolygon, e coleções geométricas. Estes são especificados Open GIS Well Known Text (com extensões XYZ,XYM,XYZM). |
|||||
| 3.2. |
Como acrescentar um objeto de GIS no banco de dados? |
||||
|
Primeiro você precisa criar uma tabela com uma coluna de tipo "geometry" para carregar os dados de GIS. Conecte seu banco de dados com psql e execute o comando SQL seguinte:
Se a adição de coluna de geometria falhar, você provavelmente não carregou as funções e objetos de PostGIS dentro do banco de dados. Veja as instruções de instalação. Então, você pode inserir uma
geometria na tabela, usando inserção de
declaração do SQL .
Para mais informação sobre outros objetos GIS, veja referência de objeto.. Para ver os dados de GIS na tabela:
O valor de retorno deverá ser :
|
|||||
| 3.3. |
Como fazer uma seleção espacial? |
||||
|
É o mesmo caminho que constrói outras seleções de banco de dados, como uma combinação SQL de retornos de valores, funções e teste verdadeiro ou falso. Para fazer uma seleção espacial, existem dois caminhos que são importantes de se manter em mente ao construir sua pergunta: pode fazer um índice espacial; e você faz cálculos enormes em um grande número geometries. No geral, se quiser usar operadores de interseção (&&) que testa se salto de caixa é de interseção característica.O uso do operador && é útil porque se um índice espacial está disponível à velocidade acima do teste, o operador && fará uso disto. Isto pode fazer as seleções muito mais rápida. Note que o salto de caixas usou a seleção que deve ser declarada explicitamente como um box3d que usa o ":: box3d" que lança a operação. Poderá também fazer uso de funções espaciais, como Distance(), Intersects(), Contains() e Within(), entre outros, e obterá resultados abaixo de suas buscas. A maior seleção espatial incluem ambos um teste posicionado e um teste de função spatial. O teste do índice serve para limitar o número de retornos, somente eles que podem se encontrar com a condição do interesse. As funções espaciais são então para uso de teste de condição exata.
|
|||||
| 3.4. |
Como fazer seleção espacial rápida em tabelas grandes? |
||||
|
Seleções rápidas em tabelas grandes é uma finalidade da existência propriamente de bancos de dados espaciais (junto com suporte transacional), tendo assim, a importância de um bom índice. Para construir um índice espacial em uma
tabela com uma coluna geometrica,
use a função
A opção "USING GIST" informa ao servidor para usar um índice GiST (Generalized Searche Tree). NotaÍndices GiST são assumidos para quem não sabe o que fazer com o dado. Índices para esses dados soltos, chamado tambem de índices lossy, usa um objeto "proxy" (no caso espacial, uma caixa delimitada) para construir o índice. Deverá também assegurar-se de que se a seleção de PostgreSQL tiver muita informação sobre seu índice para fazer decisões racionais, quando usá-lo. Para fazer isto, você tem que pegar estatísticas em suas tabelas geométricas. Para versões de PostgreSQL 8.0.x e superiores, rode o comando VACUUM ANALYZE. Para versões de PostgreSQL 7.4.x e inferiores, rode o comando SELECT UPDATE_GEOMETRY_STATS(). |
|||||
| 3.5. |
Porque são descartados os índices PostgreSQL R-Tree? |
||||
|
Versões anteriores de PostGIS usaram os índices PostgreSQL R-Tree. Porém, PostgreSQL R-Trees tem sido descartado completamente desde a versão 0.6, e índices espaciais são proporcionados com esquema R-Tree-over-GiST. Nossos testes mostraram velocidade de procura para R-Tree nativa e GiST serem comparáveis. PostgreSQL R-Trees nativo tem duas limitações que os fazem indesejáveis para o uso com características GIS (nota-se que estas limitações são devido a atual implementação de PostgreSQL R-Tree nativa, não o conceito de R-Tree em geral):
|
|||||
| 3.6. |
Porque usar a função AddGeometryColumn () e todas as funções restante de OpenGIS? |
||||
|
Se você não quer usar funções de suporte OpenGIS, não use. Simplesmente crie tabelas com versões mais velhas dentro, definindo suas colunas de geometria na declaração do CREATE . Todas suas geometrias terão SRIDs de valor -1, e os meta-dados de tabelas OpenGIS não serão preenchidas corretamente. Porém, isto vai causar falhas na maioria das aplicações baseadas em PostGIS, e geralmente é sugerido que você use AddGeometryColumn () para criar tabelas de geometrias. Mapserver é uma aplicação que faz uso dos meta-dados de geometry_columns. Especificamente, Mapserver pode usar o SRID da coluna de geometria para fazer características de reprojeções rápidas dentro da correta projeção de mapa. |
|||||
| 3.7. |
Qual é o melhor caminho para achar todos os objetos dentro de outro objeto de rádio? |
||||
|
Para se usar o banco de dados eficientemente, é melhor fazer uma seleção de rádio com qual combina o teste de rádio com um teste de caixa de salto: o teste de caixa delimitada usa o índice espacial, enquanto um subconjunto de dados de acesso rápido, com o qual o teste de rádio é aplicado. A função Expand() é uma maneira acessível de ampliar um salto de caixa para permitir uma busca do índice de uma região do interesse. A combinação de uma cláusula do índice do acesso rápido e de um teste exato mais lento da distância, fornece a melhor combinação da velocidade e da precisão para esta seleção. Por exemplo, procurar todos os objetos com 100 metros de POINT(1000 1000) a seleção a seguir trabalharia bem:
|
|||||
| 3.8. |
Como executar uma reprojeção coordenada como parte de uma seleção? |
||||
|
Para executar uma reprojeção, a
fonte e sistemas de coordenada de destino devem ser definidos dentro da
tabela SPATIAL_REF_SYS, e as geometrias que são reprojetadas
já devem ser usadas em atribuição do
SRID. Uma vez isso terminado, uma reprojeção
|