检查postgis多边形数据的有效性(从shapefile导入)

时间:2011-06-20 15:19:32

标签: postgresql google-maps-api-3 kml postgis shapefile

我对postgres / postgis很新,所以请耐心等待。我使用shp2pgsql命令导入了shapefile,现在我正在尝试查看它以检查它是否已正确导入。我已经尝试了 SELECT ST_AsKML(geom)FROM temp2; 但它给了我以下内容:

<MultiGeometry><Polygon><outerBoundaryIs><LinearRing><coordinates>1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF</coordinates></LinearRing></outerBoundaryIs></Polygon><Polygon><outerBoundaryIs><LinearRing><coordinates>1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF</coordinates></LinearRing></outerBoundaryIs></Polygon></MultiGeometry>
<MultiGeometry><Polygon><outerBoundaryIs><LinearRing><coordinates>1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF 1.#INF,1.#INF</coordinates></LinearRing></outerBoundaryIs></Polygon></MultiGeometry>

任何人都可以帮我解决我可能出错的地方吗?

非常感谢,

莱迪

1 个答案:

答案 0 :(得分:4)

看看这是否有帮助:

http://postgis.refractions.net/docs/ST_IsValid.html

SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,
       ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As bad_poly
--results
NOTICE:  Self-intersection at or near point 0 0
 good_line | bad_poly
-----------+----------
 t         | f