CREATE TABLE lieu_dit ( id character varying(24) PRIMARY KEY, origin_nom character varying(13), nom character varying(70), importance character varying(2), nature character varying(24), code_insee character varying(5), /* Ce dernier champ n'existe pas initialement dans les tables "nymes" de la BD TOPO Nous le rajoutons pour permettre des jointures avec la table commune et accélérer le temps de récupération des lieu-dits proches d'un objet créé sur la carte */ gid serial UNIQUE -- utile pour QGIS ) WITH ( OIDS=FALSE ); /* création de la colonne géométrique de type point en lambert 93 */ SELECT AddGeometryColumn('lieu_dit', 'geometrie', 310024140, 'POINT', 2 ); /* remplissage de la table */ INSERT INTO lieu_dit(id, origin_nom, nom, importance, nature, geometrie) SELECT id, origin_nom, nom, importance, nature, geometrie FROM ign_bd_topo.lieu_dit_habite; INSERT INTO lieu_dit(id, origin_nom, nom, importance, nature, geometrie) SELECT id, origin_nom, nom, importance, nature, geometrie FROM ign_bd_topo.lieu_dit_non_habite; /*INSERT INTO lieu_dit(id, origin_nom, nom, importance, nature, geometrie) SELECT id, origin_nom, nom, importance, nature, geometrie FROM ign_bd_topo.hydronyme; INSERT INTO lieu_dit(id, origin_nom, nom, importance, nature, geometrie) SELECT id, origin_nom, nom, importance, nature, geometrie FROM ign_bd_topo.oronyme;*/ /* indexation des géométries */ CREATE INDEX lieu_dit_geometrie_gist ON lieu_dit USING gist (geometrie); /* mise à jour du code insee */ UPDATE lieu_dit SET code_insee=ign_bd_topo.commune.code_insee FROM ign_bd_topo.commune WHERE st_intersects(ign_bd_topo.commune.geometrie, lieu_dit.geometrie); /* indexation du code_insee des lieu-dits */ CREATE INDEX ind_lieu_dit_code_insee ON lieu_dit USING btree (code_insee);