[OSGeoJapan-discuss] Qgis python console から spatialite gui 1.7.1を使いたい・・・

Shimpei Matsuura pemugi @ chizuwota.net
2014年 3月 3日 (月) 07:53:30 PST


OSGeo.JPの松浦です。

同様の環境を用意できず、推測の範囲ですがお答えします。

ST_Azimuthはspatialiteのlwgeomモジュール
が有効でないと使えない関数みたいです。

qgisと別にインストールしたspatialiteはlwgeomが有効であり、
qgisが使用しているspatialiteはlwgeomが有効でない場合
この現象が起こるように思います。

解決策としてはqgisがlwgeomが有効なspatialiteを使用するように
する必要があるのですが、windows上での上策が思いつきません。
osgeo4wにlwgeomがあったので入れてみましたが、だめでした。

どなたかわかりますか?

以上、よろしくお願いいたします。


(2014/03/03 23:01), SGW00412 @ nifty.com wrote:
> お世話になります。
>
> いつも素人質問で恐縮ですが、ご存じでしたら教えて下さい。
>
> ●使用環境
> Qgis 2.2 (Windows 8.1)
> Spatialite gui version 1.7.1
>  (spatialite version 4.4.1, SQlite version 3.7.17)
>
> ●最初に・・・
> from pyspatialite import dbapi2 as db
> conn = db.connect('C:\\Download\\db4_sample.sqlite')
> cur = conn.cursor()
> rs = cur.execute('select * from db_sample;')
> for row in rs:
>   print row[0]
>
> →これはきちんと処理してくれました。
>
> ●次に、ラインの始点と終点を結んだ角度を求めるために・・・spatialiteで
> select Degrees(ST_Azimuth(PointN(geom,1),PointN(geom,NumPoints(geom)))) from db_
> sample;
>
> とやっても、きちんと処理してくれました。
>
> ●しかし、Qgisのpython consoleから
> from pyspatialite import dbapi2 as db
> conn = db.connect('C:\\Download\\db4_sample.sqlite')
> cur = conn.cursor()
> rs = cur.execute('select Degrees(ST_Azimuth(PointN(geom,1),PointN(geom,
> NumPoints(geom)))) from db_sample;')
>
> →とやると、次のエラーがでます。
>
> Traceback (most recent call last):
>   File "<input>", line 1, in <module>
> OperationalError: no such function: ST_Azimuth
>
>
> できれば、python から spatialiteを使ってみたいのですが、これを解決する方法はない
> のでしょうか・・・?
>
> 島田
> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss



More information about the OSGeoJapan-discuss mailing list