Mais

Consulta básica de MapServer do banco de dados PostgreSQL / PostGIS

Consulta básica de MapServer do banco de dados PostgreSQL / PostGIS


Acabei de instalar o MapServer em um servidor Linux e estou tentando entender como exibir um mapa básico usando um banco de dados PostGIS. Eu exibi um shapefile no navegador, então sei que a configuração do mapserver funciona. Meu mapfile é o seguinte:

MAP NAME "sample" EXTENT -180 -90 180 90 # Geographic SIZE 800 400 LAYER CONNECTIONTYPE postgis NAME "roads" CONNECTION "user = username password = **** dbname = databasename host = hostdb.com port = 5432" DATA "geom do público. "MLSOA" "STATUS NO TIPO LINHA CLASSE ESTILO COR 0 0 0 END END END END # fim do arquivo de mapa

Eu então chamo isso usando uma string de url:

http://mysite.com/mapserv.cgi?map=/home/user/webapps/htdocs/mapfile_pg.map&layer=roads&mode=map

No entanto, recebo o erro:

loadLayer (): Identificador desconhecido. Erro de análise próximo a (MLSOA_London) :( linha 11)

Eu também tentei chamar meu banco de dados apenasMLSOAe'MLSOA'. Se eu usar a linhaDADOS "geom de MLSOA"Eu obtenho o seguinte erro:

msDrawMap (): Erro de manuseio de imagem. Falha ao desenhar a camada chamada 'estradas'. msPostGISLayerWhichShapes (): Erro de consulta. Erro (ERROR: relação "mlsoa" não existe) executando consulta: selecione encode (ST_AsBinary (ST_Force_2D ("geom"), 'NDR'), 'hex') como geom, "gid" de MLSOA onde geom && GeomFromText (' POLYGON ((- 180.225563909774 -90, -180.225563909774 90,180.225563909774 90,180.225563909774 -90, -180.225563909774 -90)) ', find_srid (",' MLSOA ',' geom '))

Acho que o problema é com o nome da tabela, mas não tenho certeza de como ela deve ser nomeada. Usando pgAdminIII, se eu quiser executar uma consulta nesta tabela, uso a seguinte sintaxe:

selecione getrid (the_geom) de public. "MLSOA" limite 10

Qual é a sintaxe correta para meu mapfile?


A nomenclatura do Postgres é sensível a maiúsculas e minúsculas (é o único banco de dados que conheço que possui esse recurso), por isso você deve usar aspas duplas em sua consulta no pgAdmin.

No arquivo .map, o escape de estilo Unix deve funcionar:

DATA "geom do público. " MLSOA  ""

O registro manual da (s) coluna (s) de geometria pode ser executado conforme documentado aqui:

http://postgis.refractions.net/docs/ch04.html#Manual_Register_Spatial_Column


Assista o vídeo: Geolocations Using PostGIS