2010-08-04 13 views
3

J'ai une base de données typique avec des millions de polygones comme parcelles et je veux diviser ces polygones en lignes, puis supprimer les lignes qui se chevauchent. Ces lignes seront utilisées uniquement pour le rendu dans mapnik/et ou geoserver car au moment où chaque limite de parcelle est rendue deux fois.Comment puis-je supprimer les lignes qui se chevauchent dans postgis

Je propose de diviser les polygones de parcelles en une nouvelle table ("boundary_lines"), puis de rechercher et de supprimer les lignes qui se chevauchent. Comment ferais-je pour supprimer ces lignes qui se chevauchent en postgis?

+3

Ce serait une bonne question à poser sur le site http://gis.stackexchange.com/. – Cumbayah

Répondre

1

Utilisez ST_Equals:
http://postgis.refractions.net/docs/ST_Equals.html

Votre instruction SQL va probablement ressembler à quelque chose comme ceci:

SELECT y.id, z.id 
FROM mytable y, mytable z 
WHERE ST_Equals(y.the_geom,z.the_geom) 

La requête prendra toujours à courir, mais nous espérons que vous ne disposez que de le faire une fois. Après l'avoir exécuté, prenez les résultats et supprimez soigneusement les identifiants en double.

Notez que cela ne supprimera pas les limites qui ne se chevauchent pas exactement.