起動時にGUIをカスタマイズ

QGISの起動パラメータ–customizationfileと設定ファイルを渡すとGUIのカスタマイズが可能

設定ファイルのフォーマットは実際にQGISの設定メニューにあるインターフェイスのカスタマイズで確認が可能

カテゴリー: QGIS

Qt BottomDockWidgetAreaをCentral WidgetとRightDockWidgetAreaの下に配置

Central WidgetとRightDockWidgetAreaが配置されたQMainWindowにBottomDockWidgetAreaを追加すると
Central Widgetに下、もしくはRightDockWidgetAreaの下にBottomDockWidgetAreaに配置される。

BottomDockWidgetAreaをCentral WidgetとRightDockWidgetAreaの下に配置するにはBottomDockWidgetAreaを配置した後に
以下のコードを実行すればよい

mainWindow->setCorner(Qt::BottomLeftCorner, Qt::BottomDockWidgetArea);
mainWindow->setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea);

QGIS3をWindows上でBUILD

参考サイト

更に正確なサイト

Compiling QGIS on Windows

セットアップ先

Windows10(Pro) 64bit

CMakeをインストール

cmake-3.13.0-win64-x64.zipをダウンロードしてC:\Program Files\cmakeにインストール

cygwinをインストール

cygwinをC:\cygwinにインストール

※デフォルトのインストール先はC:\cygwin64

cygwinよりflex(2.6.4-2)とBison(3.0.2-1)をインストール

Gitをインストール

GitのサイトよりGit-2.19.2-64-bit.exeをダウンロード後、C:\Gitにインストール

C:\Git\cmdにPATHを通す

Visual Studio 2015をインストール

Visual Studio 2015 Pro Update 3をインストールする

※Communityでも同じ?

Windows 10 SDK 10.0.14393.0 を必ず選択してインストール(package-nightly.cmdでWindows 10 SDK 10.0.14393.0のSetupAPI.Libを使用)

osgeo4wをインストール

osgeo4w-setup-x86_64.exeをダウンロード

起動後、アドバンスインストールを選択

Libs以下のqgis-dev-depsを選択

以下も選択

oci-devel
python3-gdal
python3-jinja2
python3-owslib
python3-psycopg2
python3-pygments

依存するモジュールもインストール

依存関係に対応するパッケージをインストールを選択

ninjaをインストール

https://github.com/ninja-build/ninja/releases/download/v1.7.1/ninja-win.zip

をダウンロード、展開してninja.exeをC:\OSGeo4W64\binにコピー。

QGISの最新ソースをダウンロード

CドライブにディレクトリPROJECTSを作成しカレントを移動し以下のコマンドでclone

git clone https://github.com/qgis/QGIS.git

以下のディレクトリに展開

BUILD

環境変数のバッチを作成

以下のバッチをC:\OSGeo4W64\QGIS-Dev.batに保存

@echo off
set SOURCE=C:\Projects\QGIS
call "%SOURCE%\ms-windows\osgeo4w\msvc-env.bat" x86_64
@cmd

C:\OSGeo4W64\QGIS-Dev.batをダブルクリックして実行すると環境設定を行いDOS画面が表示されるので カレントをC:\PROJECTS\QGIS\ms-windows\osgeo4wに移動し、configonly.batを実行。

DOS画面上でdevenvコマンドを実行してVisualStudioを起動し、C:\PROJECTS\QGIS\ms-windows\osgeo4w\build-qgis-test-x86_64\qgis.sinを開く。

ソリューションエクスプローラのALL_BUILDを選択して右クリックしビルドを実行。

コンパイル時に文字コードのエラーが発生した時はコンパイルオプションに/source-charset:utf-8を設定。

以下はqgis_coreの設定例

BUILDが終了したらALL_BUILDプロジェクトのデバッグ用のコマンドをC:\PROJECTS\QGIS\ms-windows\osgeo4w\build-qgis-test-x86_64\output\bin\RelWithDebInfo\qgis.exeに設定

F5キーでデバッグを実行

確認メッセージが表示されたらいいえを押す。

以上でQGIS起動

C:\PROJECTS\QGIS\ms-windows\osgeo4w\configonly.batは内部でpackage-nightly.cmdを呼んでいる。

package.cmdを呼ぶとリリース版のコンパイルか?

Shapeファイルを開く時にCRSを指定できませんでした

投影情報を持っていないShapeファイルを開くと投影を選択する画面が表示される

layer = QgsVectorLayer('c:\work\A27-16_13.shp', 'scool', 'ogr')

これを回避するためにQgsVectorLayerの最初の引数をuri形式にして同時にCRSを指定しようとしたが、

layer = QgsVectorLayer('file:///c:/work/A27-16_13.shp?crs=EPSG:4326', 'scool', 'ogr')

エラーが発生したために一旦あきらめ

2018-11-27T11:31:35     WARNING    Pythonのエラー : Pythonコードの実行中にエラーが発生しました: 詳細についてはメッセージログ(Pythonエラー)を参照して下さい.

C# フィールド値に改行を持つCSVの読み込み

using System.Data;

using (var connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"" + @"CSVのあるフォルダ" + "\";Extended Properties='text;characterset=65001;HDR=Yes;FMT=Delimited(,)';"))
{
	using (var command = new OleDbCommand("SELECT * FROM [ファイル名]", connection))
	{
        connection.Open();
        using (var reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                // 数値項目
                string no = reader.GetInt32(1).ToString();
                // 文字列項目
                string name = reader.GetString(0).Replace("'", "''");

            }
        }
	}
}

characterset=65001はUTF8

カテゴリー: C#

jQuery Mobileのcheckboxを動的に作成

jQuery Mobile でCheckBoxを作るには以下のHTMLを組む必要がある

<label>
    <input type="checkbox" name="checkbox-0 ">Check me
</label>

DEMO

これをjQueryで動的に作成

var id_check_bookmark = 'id-chk-bookmark-'+handle;

var h_lbl = $("<label />", {
	'text' : 'bookmark'
});

var h_chekcbox = $("<input />", {
	'type' : 'checkbox',
	'id' : id_check_bookmark
});

h_chekcbox.appendTo(h_lbl);

h_content.append(h_lbl);