Ao invés de usar SHAPEFILE é possível configurar o GN para usar o Postgis e armazenar o índice, com isso, pode-se criar uma camada em um visualizador, como o i3Geo.
Fiz essa configuração para a versão 2.6.4 do GN, conforme segue.
- Seu banco de dados, onde estão as tabelas do GN, precisa ser um banco Postgis. Se for um banco Postgres, vc vai precisar mudar isso. Uma forma é criando um novo banco, usando o template do Postgis, depois basta fazer um dump do banco original e restaurar no novo banco.
- Crie a tabela onde ficará o índice eapacial:
CREATE TABLE spatialindex
(
fid integer NOT NULL,
id character varying(250),
the_geom geometry,
CONSTRAINT spatialindex_pkey PRIMARY KEY (fid),
CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL),
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4326)
)
WITH (
OIDS=FALSE
);
ALTER TABLE spatialindex OWNER TO postgres;
CREATE INDEX spatialindexndx1
ON spatialindex
USING btree
(id);
CREATE INDEX spatialindexndx2
ON spatialindex
USING gist
(the_geom);
- Atualize a tabela geometry_column:
COPY geometry_columns (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, type) FROM stdin;
public spatialindex the_geom 2 4326 MULTIPOLYGON
\.
- Altere o arquivo de configuração do GN:
edite o arquivo web\geonetwork\WEB-INF\config.xml e troque
por
- Reinicie o geonetwork no servidor
- Faça login como administrador no GN e na opção de configuração do sistema reconstrua o índice Lucene
- Verifique a tabela spatialindex no banco de dados. Ela deverá estar preenchida agora.
- Crie um MAPFILE como o seguinte:
MAP
FONTSET "../symbols/fontes.txt"
SYMBOLSET "../symbols/simbolos.sym"
LAYER
CONNECTION "user=postgres dbname=geonetwork264 host=localhost port=5432 password=postgres"
CONNECTIONTYPE POSTGIS
DATA "the_geom FROM (select id::integer as gid,the_geom,'http://localhost:8080/geonetwork/srv/br/metadata.show?id='||id as link from spatialindex) as foo USING UNIQUE gid USING SRID=4291"
METADATA
"CLASSE" "SIM"
"ITENS" "gid"
"ITENSDESC" "Metadado"
"ITENSLINK" "http://localhost:8080/geonetwork/srv/br/metadata.show?id=[gid]"
"TEMA" "Índice espacial do Geonetwork"
END
NAME "geonetworkindice"
STATUS OFF
TEMPLATE "none.htm"
TYPE POLYGON
UNITS METERS
CLASS
NAME ""
STYLE
ANGLE 360
OUTLINECOLOR 196 185 103
OPACITY 100
END
END
END
END
- E abra o i3Geo: http://localhost/i3geo/ms_criamapa.php?temasa=geonetworkindice,estadosl&layers=geonetworkindice,estadosl
O resultado é mostrado na imagem abaixo.








