[英]SELECT pgr_nodeNetwork query fails
我正在研究 windows,並啟用了擴展 postgis,數據庫上的 pgrouting。 我安裝了 postgreSQL 9.4,我正在使用來自無限工作室的數據( http://workshops.boundlessgeo.com/tutorial-routing/ )。
SELECT pgr_nodeNetwork('edges',0.001,'geom','gid','noded')
當我運行此查詢時,它會運行大約 1 分鍾,然后會導致FAIL
。 我該如何解決這個問題? 我的 pgr_createTopology 查詢已成功運行。
NOTICE: PROCESSING:
NOTICE: pgr_nodeNetwork('edges',0.001,'geom','gid','noded')
NOTICE: Performing checks, pelase wait .....
NOTICE: Processing, pelase wait .....
ERROR: line_locate_point: 1st arg isnt a line
CONTEXT: SQL statement "create temp table inter_loc on commit drop as ( select * from (
(select l1id, l2id, st_linelocatepoint(line,source) as locus from intergeom)
union
(select l1id, l2id, st_linelocatepoint(line,target) as locus from intergeom)) as foo
where locus<>0 and locus<>1)"
PL/pgSQL function pgr_nodenetwork(text,double precision,text,text,text) line 184 at EXECUTE statement
********** Error **********
ERROR: line_locate_point: 1st arg isnt a line
SQL state: XX000
Context: SQL statement "create temp table inter_loc on commit drop as ( select * from (
(select l1id, l2id, st_linelocatepoint(line,source) as locus from intergeom)
union
(select l1id, l2id, st_linelocatepoint(line,target) as locus from intergeom)) as foo
where locus<>0 and locus<>1)"
PL/pgSQL function pgr_nodenetwork(text,double precision,text,text,text) line 184 at EXECUTE statement
我在我的項目中遇到了這個問題,我堅持了幾個小時試圖找出導致它的原因以及如何解決它。 我將描述我的情況以及我如何解決它,希望它能在未來幫助其他人。
我正在使用ogr2ogr將 Shapefile 導入我的數據庫,並且在導入過程中我使用-nlt PROMOTE_TO_MULTI
作為我的 arguments 之一; 這導致我的幾何圖形被導入為 MultiLineStrings。
從我觀察到的行為和其他人(以及更多人)提到的行為來看, pgr_nodeNetwork()
function 不能很好地與 MutliLineStrings 配合使用。
由於 MultiLineStrings 不適用於路由,我從 dkastl 的回答中獲取了 SQL 並在我的數據上運行它以查看我是否真的需要MultiLineStrings 或者我是否可以只使用 LineStrings。
SELECT
COUNT(
CASE WHEN ST_NumGeometries(geom) > 1 THEN 1 END
) AS multi,
COUNT(geom) AS total
FROM network_nodes;
運行之后,我發現我對 MultiLineStrings 的需求為零,所以我使用-nlt LINESTRING
重新導入了帶有 ogr2ogr 的 Shapefile,然后能夠毫無問題地運行pgr_nodeNetwork()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.