ホーム » GIS (ページ 3)

GIS」カテゴリーアーカイブ

QGIS フィールド計算機で文字列結合

QGISでString型のフィールド同士を結合して別のフィールドを更新するにはフィールド計算機で
以下の計算を実行

例)「N03_003」と「N03_004」を結合して「NAME」を更新

スクリーンショット 2014-05-22 07.55.28

しかし「N03_003」、「N03_004」のいづれかの値がNULLの時は結合結果もNULLになってしまう

スクリーンショット 2014-05-22 08.26.09

「CASE WHEN 式 THEN 値1 ELSE 値2 END」を使用してNULLを空文字に変換して対応 

スクリーンショット 2014-05-22 08.34.25

GeoServer上のラインをOpenLayersに色分け表示

GeoServer上に鉄道のデータをインポート

これを鉄道会社の種別(1~5)ごとに色分けしてOpenLayers上に表示

当初はOpenLayersのスタイルで対応を行おうとしたが、どうもこれはOpenLayers.Layer.WMSには使えないみたい

結局、GeoServerの機能でスタイルを作成してレイヤにスタイルを設定して解決

以下のスタイルを作成
[code]
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NamedLayer>
<Name>railroad ex</Name>
<UserStyle>
<Title>SLD Cook Book: railroad ex</Title>
<FeatureTypeStyle>
<Rule>
<Name>rail-1</Name>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>n02_002</ogc:PropertyName>
<ogc:Literal>1</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#009933</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
</FeatureTypeStyle>
<FeatureTypeStyle>
<Rule>
<Name>rail-2</Name>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>n02_002</ogc:PropertyName>
<ogc:Literal>2</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#0055CC</CssParameter>
<CssParameter name="stroke-width">3</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
</FeatureTypeStyle>
<FeatureTypeStyle>
<Rule>
<Name>rail-3</Name>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>n02_002</ogc:PropertyName>
<ogc:Literal>3</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#FF0000</CssParameter>
<CssParameter name="stroke-width">6</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
</FeatureTypeStyle>
<FeatureTypeStyle>
<Rule>
<Name>rail-4</Name>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>n02_002</ogc:PropertyName>
<ogc:Literal>4</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#FF0000</CssParameter>
<CssParameter name="stroke-width">6</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
</FeatureTypeStyle>
<FeatureTypeStyle>
<Rule>
<Name>rail-5</Name>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>n02_002</ogc:PropertyName>
<ogc:Literal>5</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#FF0000</CssParameter>
<CssParameter name="stroke-width">6</CssParameter>
</Stroke>
</LineSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
[/code]
上記のスタイルをレイヤに関連付けて対応
スクリーンショット 2014-01-15 18.07.18

念の為、OpenLayersのスタイルについて

参考サイト

[code]
new OpenLayers.StyleMap({
"default": new OpenLayers.Style({
strokeColor: "white",
strokeWidth: 1
}, {
rules: [
new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.LESS_THAN,
property: "shape_area",
value: 3000
}),
symbolizer: {
fillColor: "olive"
}
}),
new OpenLayers.Rule({
elseFilter: true,
symbolizer: {
fillColor: "navy"
}
})
]
})
})
[/code]

スタイルの変更
スタイルはGeoServer上で予めレイヤに設定する。
以下の書式でJavaScript側からも変更が可能
※GeoServer上でrailroad2というスタイルを作成済み
[code]
railroad = new OpenLayers.Layer.WMS(
"Tokyo:railroad", "../geoserver/Tokyo/wms",
{
STYLES: ‘railroad2’,
LAYERS: ‘Tokyo:VIEW_RAILROAD’,
format: ‘image/png’,
transparent: true,
viewparams: ‘road_type:2’
},
{
singleTile: true,
ratio: 1,
isBaseLayer: false,
yx : {‘EPSG:4326’ : true}
}
);
[/code]

GeoServerの設定

http://localhost:8080/geoserver/web/をブラウザで表示

スクリーンショット 2014-01-14 01.08.47

アカウント admin/geoserverでGeoServerにログイン

スクリーンショット 2014-01-14 01.22.59

最初にデフォルトでインストール済のデータを表示してみる

GeoServerの管理サイトを開き、Data-Layer Previewを選択

スクリーンショット 2014-01-14 01.53.25

スクリーンショット 2014-01-14 01.53.36

tasmaniaのOpenLayersを選択するとデータが表示される

スクリーンショット 2014-01-14 01.54.05

Shapeファイルを表示

東京の行政Shapeファイルを表示してみる

ディレクトリGEOSERVER_DATA_DIR\DATA\Tokyoを作成

※GEOSERVER_DATA_DIRはデフォルト(未設定)では「C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\geoserver\data」に設定されている
任意の場所に設定するときは環境変数で設定

GEOSERVER_DATA_DIR\DATA\TokyoにShape(N03-13_13_130401.shp)ファイルをコピー

ワークスペースの作成

DATA-Workspacesを選択してWorkspace画面を表示

スクリーンショット 2014-01-14 07.24.48

create workspaceを選択、名称とURIを入力(名称とURIは任意でよい?)

スクリーンショット 2014-01-14 07.25.50

workspaceが正しく作成されるとworkspaceの一覧に表示される

スクリーンショット 2014-01-14 07.26.45

作成したworkspaceを選択してworkspaceの編集ページを表示

スクリーンショット 2014-01-14 07.28.18

WCF、WFS、WMSのチェックをONにする(必要ないかも)

Storeの追加

DATA-Stores-Add New Storeを選択

スクリーンショット 2014-01-14 07.30.51

ShapeFileを選択し、ShapeFileの情報を入力

Workspaceには先ほど作成したWorkspaceを選択

データソースにはShapeファイルの名称を設定

ShapeFile LocationにはShapeファイルのフルパスを設定

スクリーンショット 2014-01-14 07.36.22

保存すると追加したレイヤが表示される。

スクリーンショット 2014-01-14 07.43.00

publishをクリックしてレイヤ情報を編集

Declare SRSを設定

compute from data、compute from native boundsをクリックしてBounding Boxesを更新

clip_3

スクリーンショット 2014-01-14 08.31.23

スクリーンショット 2014-01-14 08.31.32

GeoServerをインストール(その2)

サービスマネージャーでTOMCATの動作を確認した後にTOMCATの管理サイトを開く

ブラウザでhttp://localhost:8080/を開いて管理サイト(?)を開く

tomcat1

ページ上部の「Server Status」をクリックすると以下のページを表示

スクリーンショット 2014-01-13 21.36.08

「Manager APP」をクリックすると以下のページを表示

スクリーンショット 2014-01-13 21.36.29

スクリーンショット 2014-01-13 21.36.37

「Manager APP」をクリックすると以下のページを表示

スクリーンショット 2014-01-13 21.37.08

スクリーンショット 2014-01-13 21.37.19

GeoServerを以下よりダウンロード

GeoServer HOME-ダウンロード-Stable-Web Arciveよりgeoserver-2.4.3-war.zipをダウンロード、解凍

GeoServerにはインストーラー、バイナリ、Web Archiveがある。ここでは既にTOMCAT、JREはインストール済なのでWeb Archiveをダウンロード

TOMCATのアップロードファイルサイズの最大を60MBに設定
C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\manager\WEB-INF\web.xmlを変更
変更前


  
  52428800
  52428800
  0

変更後



62914560
62914560
0

TOMCATの管理画面を開いてgeoserver-2.4.3-war.zipより解凍されたgeoserver.warを指定して配備ボタンを押す

スクリーンショット 2014-01-14 00.26.51

完了するとアプリケーションの一覧にgeoserverが追加されている

スクリーンショット 2014-01-14 01.01.38

PostGISにShapefileをインポート

PostGISに付属するPostGIS 2.0 Shapefile and DBF Loader Exporterを使用する
※インストールしたPostGISは2.1だがなぜかこちらのツールには2.0と表示される。

postgis1

インポート対象は東京の行政ポリゴン「N03-13_13_130401.shp」

PostGIS Shapefile Import/Export Managerを起動

postgis2

View Connection detailes を選択してデータベースに接続

postgis3

Add Fileボタンを押してインポート対象のShapeファイルを選択し、SRIDを指定
※インポート対象の測地系世界測地系の緯度、経度なのでSRIDは4326を指定

postgis4

Import Optionを以下に従って設定

DBFの文字コードはShiftJISなのでcp932を設定

postgis5

Importボタンを押して終了

インポート結果

postgis6

SRIDの一覧

PostgreSQLの文字コードについて

PostGISデータのインポート・エクスポート

PostGISデータベースの作成

PostGIS2.0まではPostGISデータベースのテンプレートを元に新規にPostGISデータベースを作成していたが、
PostGIS2.1からはEXTENSIONでPostgresqlのデータベースをPostGISデータベースに拡張が可能になった。

※以下はpsql上で管理者権限で実行

最初にPostgresqlのデータベースを作成
createdatabase testdb encoding ‘utf8’

postgres=# \c testdb
データベース “testdb” にユーザ”postgres”として接続しました。
testdb=# create extension postgis;
CREATE EXTENSION
testdb=# create extension pgrouting;
CREATE EXTENSION
testdb=# create extension postgis_topology;
CREATE EXTENSION
testdb=# b

以上でPostGISデータベースの作成終了

pgadmin上でPostGISを確認

postgresql26

GeoServerをインストール

Windows2008にGEoServerをインストール

参考にしたサイト

http://www.youtube.com/watch?v=YEOA8WWWVCw

サーブレットのコンテナにはTOMCATを使用。

(HTTPサーバーもTOMCATのそれを使用する予定)

JREのインストール

JAVA SEのダウンロードページを開いてJREをダウンロード

本来はJRE(jre-7u45-windows-x64.exe)でよいと思うが念の為にJDK、SERVER JREもダウンロード

jre-7u45-windows-x64.exeを実行してデフォルトの設定で以下のインストール

C:\Program Files\Java\jre7\bin

環境変数JRE_HOMEにインストール先を設定

通常JDKをインストールしたときはJAVA_HOMEを設定するが、JREをインストールしたときはJRE_HOMEを設定

JAVA_HOMEにJREのインストール先を設定するとTOMCATでエラーになる

TOMCATのインストール

TOMCAT8はRCなのでTOMCAT7をダウンロード

(7.0.47の32-bit/64-bit Windows Service Installer。apache-tomcat-7.0.47.exe)

apache-tomcat-7.0.47.exeを実行してインストール開始

tomcat_install01

tomcat_install02

tomcat_install03

tomcat_install04

tomcat_install05

tomcat_install06

tomcat_install07

TOMCAT管理者のアカウントはadmin/admin

環境変数の設定

CATALINA_HOMEにTOMCATのインストール先のディレクトリを設定

GeoServerを創める

とりあえずGeoServer関連の資料のリンク

http://blog.godo-tys.jp/category/geoserver/

http://live.osgeo.org/ja/overview/geoserver_overview.html

http://www.ibm.com/developerworks/jp/opensource/library/os-geoserver/

http://blog.godo-tys.jp/2013/06/09/2220/

http://docs.geoserver.org/latest/en/user/installation/windows/index.html

http://jira.codehaus.org/browse/GEOS