waigani's diary

QGISを中心にFOSS4Gをいじくる

最近みたページその2

試そうと思って試してないものが色々と。 Custom feature forms Nathans QGIS and GIS blog/QGIS Tips – Custom feature forms with Python logic これは超便利。custom-feature-formsまでは試してみましたが、属性のカラム名とフォームの名称を合わせておく…

rasterliteの続き

情報が古くなっているので補足 rasterliteのおススメ の補足です。 spatialite/rasterliteのページが新しくなって、プログラムの入手方法が若干変わっているようです。 以前は実行ファイルをまとめてダウンロード出来たのですが、個別に実行ファイルをダウン…

UIを改善したい

FOSS4G Advent calendar 2011絶賛開催中ですが、その影で着々と改良も進めます。今回開催期間に改善出来ればいいのですが、そこまで時間取れなさそうなら次回に向けてになりますが。 格好良くしたい 他のアドベントカレンダーを見ているとDebian/Ubuntu JP A…

rasterliteのおススメ

今年後半の個人的おススメはrasterliteでした。 簡単な使用方法、注意点をまとめておきます。 色々オプションはありますので、マニュアルはご一読をお勧めします。 rasterlite-man.pdf rasterliteとは SQLiteは1ファイルデータベース。 SQLiteを空間情報を扱…

FOSS4G Advent Calendar 2011

調子にのってFOSS4Gのadvent calendarなんてやってみました。 FOSS4G Advent Calendar 2011 誰が参加してくれるかわかりませんが、まずは12/10に書いてみようと思います。 rasterliteかな・・ advent calenderって何?という人はこちらをご参照ください。 20…

最近みたページ

この辺がとても参考になりました。 QGIS Workshop v1.0.0 documentation Qgis Python code tips

QGIS APIで印刷その2

QgsCompositionクラスを使ってみる その1の内容をQgsCompositionクラスを使って書き換えます あくまでQgsCompositionの使い方の参考程度に 書き換えてみました from PyQt4.QtCore import * from PyQt4.QtGui import * class printPDF(): #共通で使う設定は__…

QGISをコンパイルしてみる その1

オリジナルのパッケージを作りたい Building custom QGIS installers for windowsを見てて、なんとなくやってみようと思い立ちました。 ロゴとか変えるだけならコンパイルする必要も無いのですが、なんとなくコンパイルからスタートしちゃいます。 QGISをソ…

QGIS APIで印刷その1

自動印刷 某所からそういう方向に行くなと突っ込まれるのですが、印刷機能関係調べてます。 例えば、ベクトルレイヤー中にある図形それぞれを中心として、指定の縮尺で出力図を一括で作成したい、といった使い方です。 ゴリゴリ書いていくとすると 下記のよ…

QGISでプラグインを作成する その7 rubberbandでの図形選択(円形版)の修正

QGIS 1.7 QGIS 1.7で動作させたところ、下記で公開していたソースだと落ちるようです QGISでプラグインを作成する その6 rubberbandでの図形選択 QGISでプラグインを作成する その7 rubberbandでの図形選択(円形版)QgisRubberBand::addPointで同一座標の点を…

QGISでプラグインを作成する その7 rubberbandでの図形選択(円形版)

rubberbandの形を変更します 四角から円に変更してみます ソース一式を貼っておきます この記事で作成したソース一式です sweepselect_test2.zip ソース一覧 必要なソースは __init__.py sweeptest.py resources_rc.py ですが、sweeptest.py内の1クラスだけ…

QGISでプラグインを作成する その6 rubberbandでの図形選択

真似します また、山手様@月の杜工房にあったので真似させていただきました QGIS API 要素を選択 ソース一式を貼っておきます この記事で作成したソース一式です sweepselect_test.zip ソース一覧 必要なソースは __init__.py sweeptest.py resources_rc.py…

QGISでプラグインを作成する その5 キャンバスクリック時のイベントを拾う

真似します どうやってやるのか調べていたら、山手様@月の杜工房にあったので真似させていただきました QGIS API キャンバスクリック時のイベントを処理する 解説は月の杜工房様を見た方が詳しいです ソース一式を貼っておきます この記事で作成したソース…

QGISでプラグインを作成する その4

もう少しプラグインらしく プラグインのダイアログからQGIS側の情報を取ってみます まずは簡単にレイヤー数だけ ソース一式を貼っておきます この記事で作成したソース一式です plugintest.zip ダイアログの変更 前回のダイアログにボタンを1つ追加しておき…

QGISでプラグインを作成する その3

Qtの勉強 この辺が役に立ちましたRkBlog - Introduction to PyQt4 dialogを表示する 前回からの続きになります QtDesignerで表示するdialogを先に作成しておきますQtDesignerで"Dialog without Buttons"を選択してformを作成 "Input Widgets"から"Text Edit"…

QGISでプラグインを作成する その2

Qtの勉強しないと駄目ですね Qt Labs Japanの記事をちゃんと読んでみようかと思っています Qtをはじめよう! アイコンとメニューの追加 前回までの続きとして、plugin.pyを書き換えます # -*- coding: utf-8 -*- #Import the PyOt and QGIS libraries from P…

QGISでプラグインを作成する その1

参考にしたもの QGIS Coding and Compilation Guideを参考にしています。 必要なファイル 最低限必要なファイルとして下記を作成します。 __init__.py plugin.py resources_rc.qrc(これは無くてもいいんですが、後々のため入れときます) __init__.py 最初に…

QGISでプラグインを作成する - 環境構築

プラグイン作成の環境構築を行ってみます。 前提 QGISでアプリケーションを作成する - 環境構築まで行っていることを前提としています。 External ToolへQGISを設定 [External Tool Configurations]を開きます。[New Configuration]を作成し、[Name]は何でも…

QGISでアプリケーションを作成する その1

引き続き下記ブログを参考に進めます。 Creating a Standalone GIS Application QtDesignerでGUI作成 Qtのインストールの説明は省きます。 QtDesignerを起動して、[templaets\forms]から[Main Window]を選択し、[作成]をクリック。 左に表示されているwidget…

QGISでアプリケーションを作成する - 環境構築

コンソールからの操作は一旦置いておいて、アプリケーションの作成を行ってみます。下記ブログの内容を試します。 Creating a Standalone GIS Application ただ試すだけだとなんなので、開発環境も整えます。 下記の内容を参考にしました。 Quantum GIS Foru…

QGISでベクトルデータを表示してみる その8

ラベルを付けてみます。 単純にラベルをONにするのは簡単。レイヤーを持ってきて、ラベル表示のフラグをたててあげるだけです。 l = qgis.utils.iface.activeLayer() l.enableLabels(True) qgis.utils.iface.mapCanvas().refresh() "ラベル"と表示されます。…

QGISでベクトルデータを表示してみる その7

QgsSingleSymbolRendererでレイヤー全体に描画設定を適用してみましたが、属性を指定して個別に描画設定を試します。 QgsUniqueValueRenderer を使用します。最初の方はやること同じ。 from PyQt4 import QtGui, QtCore l = qgis.utils.iface.activeLayer() …

QGISでベクトルデータを表示してみる その6

描画の設定を変更してみます。 Qtのクラスを使用することになるので、最初に読み込みます。 Qtのクラス一覧はここを参照しました。 from PyQt4 import QtGui, QtCore まずは、QgsSymbolインスタンスを作成します。 l = qgis.utils.iface.activeLayer() sym =…

QGISでベクトルデータを表示してみる その5

引き続き、図形の座標変更してみます。layer,dataProviderと持ってきてましたが、layerだけからでも出来ます。 並行移動の場合は、QgsVectorLayer::translateFeatureを追加います。 x方向、y方向の移動量と、対象図形のIDを指定します。 l = qgis.utils.ifac…

QGISでベクトルデータを表示してみる その4

図形の座標変更してみます。layer,dataProviderの順に持ってきて、QgsVectorDataProvider::changeGeometryValuesを使ってみました。 対象図形のidをキーに、入れ替えるQgsGeometryを値に指定します。 l = qgis.utils.iface.activeLayer() l.startEditing() p…

QGISでベクトルデータを表示してみる その3

追加と削除してみます。 QgsGeometry.fromPolygonに渡す引数のリストが2重になっていますが、最初のリストがポリゴンの外側、2番目以降のリストが内側のポリゴンになります。穴のあいたポリゴンを作る時は引数を複数渡します。 l = qgis.utils.iface.activ…

QGISでベクトルデータを表示してみる その2

ベクトルレイヤーを表示出来たとして、各featureへのアクセスを行いたい。単純に考え付いたのがこれ。 feature数をfor文の条件にして、IDをキーにfeatureを持ってきて、属性の最初のカラムの内容を表示する。 l = qgis.utils.iface.activeLayer() for i in r…

QGISでベクトルデータを表示してみる その1

コマンドラインで色々いじることから始めましょう。 QGISの"プラグイン"メニューから"pythonコンソール"を立ち上げます。 "use qgis.utils.iface object (instance of QgisInterface class)."と表示されています。 初期状態で、QgisInterfaceのインスタンス …