More

Como obter o FID reconhecido pelo GeoServer?

Como obter o FID reconhecido pelo GeoServer?


I'm trying to load a shapefile into a GeoServer that has a style defined which makes use of the FID attribute:

     FID

O shapefile com o qual estou trabalhando atualmente não tem um atributo 'FID' explícito:

$ ogrinfo -al -geom = NO precincts.dbf… OBJECTID: Integer (10.0) Nome: String (100.0) Label: String (100.0) Type: String (50.0) CurrencyDa: Date (10.0) SrcFormat: String (150.0) Shape_area: Real (19,17) Shape_len: Real (19,17)

Mas solicitar o atributo 'FID' parece, de alguma forma, obter um:

$ ogrinfo -geom = NO -al precincts.shp -sql 'selecionar FID dos distritos' FID: Inteiro (0,0) OGRFeature (distritos): 0 FID (Inteiro) = 0 OGRFeature (distritos): 1 FID (Inteiro) = 1 OGRFeature (distritos): 2 FID (inteiro) = 2

Enviá-lo para o GeoServer, entretanto, não lista nenhum atributo FID:

Enquanto outros shapefiles carregados anteriormente (e cuja proveniência é desconhecida para mim) têm um:

Consegui gerar um shapefile com um atributo FID exportando-o do PostGIS. No entanto, este shapefile de 'recintos' em particular não vem do PostGIS. (Talvez eu pudesse importá-lo para PostGIS apenas para esse propósito, mas isso parece um pouco estúpido ...)

Basicamente, estou me perguntando:

  1. Qual é o problema com o atributo FID? É um atributo real ou algo que o ogrinfo falsifica?
  2. Existe uma maneira de transformá-lo de um atributo falso em um real para que o GeoServer possa vê-lo?
  3. Ou existe alguma outra maneira de fazer o GeoServer reconhecê-lo para os propósitos deste estilo?

Graças aos comentários acima, acho que posso responder agora.

Os shapefiles geralmente (sempre?) Têm um atributo de característica real, que pode ser denominado FID, OBJECTID ou outro. Mas, talvez porque o nome varie, as ferramentas GDAL permitem que você use o termo 'FID' e elas irão gerar um 'FID falso' quando solicitado, que pode não corresponder ao identificador de recurso real.

Transformar um FID falso em um FID real é bastante simples:

ogr2ogr -f "ESRI Shapefile" precincts-fid.shp precincts.shp  -sql 'selecionar FID, * dos distritos'

Isso faz com que ogr2ogr gere um ID de linha e o salve junto com todos os outros atributos reais.

Caso seja importante preservar outro atributo como o FID (não foi no meu caso):

ogr2ogr -f "ESRI Shapefile" precincts-fid.shp precincts.shp  -sql 'selecione OBJECTID como FID, * dos distritos'

Watch the video: Como instalar o GeoServer