[OSGeoJapan-discuss] Re: 【質問】QGISでの新しいラベル機能について

arctic_tern @ mf-atelier.sakura.ne.jp arctic_tern @ mf-atelier.sakura.ne.jp
2012年 1月 25日 (水) 08:17:37 EST


喜多様

はじめまして、山手と申します。
エラーを拝見しましたが、おそらくアンダースコアが含まれているのが原因ではないかと思われます。
Shapeファイルのロードは内部ではSQLで実行されています。
アンダースコアはSQLiteでは'%'等と同様に特殊文字なので、構文解析でエラー「認識されないトークン」が出たものと思われます。

以上、ご参考になれば幸いです。

> かやまさま みなさま
> 
> spatialite-guiで、ShapefileをSpatialiteにロードしようとすると、
> 添付ファイルのようなエラーが出ます。
> これは何がいけないのでしょうか?
> 
> パス名、属性データのフィールド名などはすべて半角英数文字です。
> 測地系はJGD2000平面直角座標系13系 ID:2455です。
> 
> みんなの地球地図のデータ等はロードすることは出来ます。
> 職場で使っている山のデータがなぜかロードできません。
> 
> よろしくお願いします。
> 
> 2012年1月19日5:49 Yoichi Kayama <yoichi.kayama @ gmail.com>:
> 
> > 喜多さん
> > みなさん
> >
> > とりあえずブログ http://d.hatena.ne.jp/yoichi_46/ にまとめるつもりですが
> > ロードだけですとそんなにもったいぶったもんでもないので簡単に書いて
> > おきます。
> >
> > spatialite-guiというプログラムをダウンロードして使うとShapefileをSpatialite
> > にロードできます。
> >
> > http://www.gaia-gis.it/gaia-sins/
> >
> >
> > ここのページにソースありますがWindowsの場合ですとバイナリがあります。
> > バイナリをダウンロードすると、インストールしなくても spatialite_gui.exe を
> > ダブルクリックするとプログラム起動します。(Winの場合)
> >
> > 新規にspatialite のファイルを作成する場合は Filesメニューの Creating a New(empty) SQLite
> > DB, 既存のファイルを利用する場合は Connecting an existing SQLite DB を
> > 選択して下さい。 New の場合はファイルのパス名を指定して下さい。
> >
> > ファイルに接続するとメニューに Adbancedという項目ができますので、そこでLoad Shapefile
> > を選択するとファイル選択ダイアログが表示されるので、そこで Shapefileを指定してファイル
> > をロードしてみてください。
> > ダイアログでファイルを指定するとロード時のパラメータを指定するダイアログが表示されます。
> > ここで指定すべきことは元ファイル内の文字コード(CP932か) SRID(空間参照系の番号、
> > 多分元ファイルの座標系のEPSGコード JGD2000の平面直角X?系の場合は2455)の指定。
> > あと下部のチェックボックスでは With Spatial Index(R*Tree) の指定。あと Table name
> > のとこはファイル内の既存テーブル名とだぶらないようにしてください。
> >
> > 一応入力Shapeファイル名に日本語はいれないでやってみました。日本語はいった場合
> > うまくいくかどうかは未確認です。
> >
> > これでOKボタンクリックでデータのロードできます。
> >
> > QGISのほうではレイヤメニューの Spatialiteテーブルの追加で指定をすることで、ここで
> > ロードしたテーブルを利用できます。
> > 初めてそのSpatialiteファイルを利用する場合は Spatialiteテーブルの追加ダイアログで
> > 新規 ボタンをクリックした後に表示されるファイル選択ダイアログで作成したファイルを選択
> > して下さい。
> >
> > そうするとそのファイルへの接続エントリがダイアログのドロップダウンリストに表示される
> > ので、以後そのSpatialiteデータベースファイルを利用する場合はドロップダウンリストで
> > 選択を行った後に接続ボタンをクリックすると、そのファイル内のジオメトリがあるテーブル
> > が表示されるので選択すると通常のレイヤとして利用できます。
> >
> > あと文字表示用に追加したカラムのアップデートですが
> >
> > テーブル名 syouhan  ジオメトリカラム名が Geometry だとして
> >
> > select X(centroid(Geometry)),Y(centroid(Geometry)) from syouhan
> >
> > このようなSQLを発行するとテーブルsyouhan内の各ポリゴンの中心点
> > 座標のXとYの値を取得できます。
> >
> > たとえばラベル表示位置の座標を格納するカラム名が x と y  とした場合
> >
> > update syouhan set x=X(centroid(Geometry)), y=Y(centroid(Geometry))
> > というようなSQLを実行するとカラムx,yの値をそれぞれのポリゴンの中心点
> > の座標で更新することができます。
> >
> > SQLは spatialite_gui の右上の領域に入力を行った後、メニュー->Advanced->Execute SQL Script
> > を選択すると実行できます。
> > またはSQL入力領域の右側にあるアイコンをクリックしても実行できます。
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > 2012年1月18日21:39 喜多耕一 <kou35tochas @ gmail.com>:
> > > spatialite へのデータロード方法は大変興味があります。
> > > ぜひよろしくお願いします。(出来るだけ簡単にお願いします。)
> > >
> > >
> > > 2012年1月17日9:06 Yoichi Kayama <yoichi.kayama @ gmail.com>:
> > >
> > >> 喜多さん
> > >> みなさん
> > >>
> > >> spatialiteについてデータロードとSQL使った座標値の設定ができました。
> > >> 手順をあとでまとめてみますので、ちょいとお待ちください。
> > >>
> > >
> >
> 
>


OSGeoJapan-discuss メーリングリストの案内