[OSGeoJapan-discuss] [spatialite]LineString と

ASAHI Kosuke asahi @ hcc.co.jp
2012年 12月 12日 (水) 01:04:19 PST


朝日です。

結果にlinestringとmultilinestringが混在しているということなので、
○結果をst_multiで全部multilinestringにしてしまう
 create table intesetc_01 as
 select
 st_multi(intersecton(line.geom, polygon.geom)) as geom
 from
 line, polygon
 where
 intersects(line.geom, polygon.geom);

○multi→singleに変更
 コマンドラインは思い出せず・・
 spatialite-guiに下記のメニューがあるので、使うとmulti→singleにしたテー
ブルを作成してくれるはずです
 http://cdn-ak.f.st-hatena.com/images/fotolife/w/waigani/20121107/20121107121603.png

こんな感じでどうでしょう?

(2012/12/12 17:23), sgw00412 @ nifty.com wrote:
> spatialite を使い始めました初心者です。
> 
> ライン群とポリゴンでinterectionを試みていますが
> LineStringとMultiLineStringが混在すると,recover geometryに
> 失敗してしまいます。
> 
> 初歩的な内容かも知れませんが,どなたかご教授頂ければ幸いです。
> 
> <やった内容>
> create table intesetc_01 as
> select
> intersecton(line.geom, polygon.geom) as geom
> from
> line, polygon
> where
> intersects(line.geom, polygon.geom);
> 
> 得られたinsect_01のgeomを選択し,recovery geometry
> 
> Srid→line polygon と同じ値
> xyからlinestringでOKを押すと
> 
> <エラーメッセージが出ます>
> Geometry column doesn't satisfies required concstains
> a ROLLBACK was automatically performed.
> 
> というメッセージが出て進みません。
> 
> check geometryをすると
> Linestring と multilinestring が それぞれカウントされるので
> linestringとmultilinestringが混在しているからrecover geometryできないと
> 思うのです。。。
> 
> それではline群をみてみると:
> 蛇のとぐろみたく自ら交差してしまうラインがmultilinestringと判断されているよう
> です。
> 
> これを解決する方法はないのでしょうか?
> たとえばmultilinestrinを強引にlinestringにconvertできれば解決するのでしょうか
> ・・・。
> 
> 島田@気象協会(shimada @ jwa.or.jp> 
> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
> 


-- 
北海道地図株式会社 研究開発課
朝日 孝輔
mailto:asahi @ hcc.co.jp
Tel : 0166-62-4711


More information about the OSGeoJapan-discuss mailing list