Daily Archives: 06/02/2013

GeoExt1.1で印刷してみる。準備編[Chapter 11]

GeoExt1.1で印刷してみる。準備編[Chapter 11]

GeoExtで印刷しようとすると、
This example shows how to set the bounds of a printable PDF interactively with a dynamic print extent rectangle. It requires the MapFish or GeoServer print module.
というメッセージが出てexampleが動きませんよね。

それじゃ、まずはMapFishで印刷機能を試してみましたが、なぜか動かせず。
また、MapFishの情報は結構古いので、今回は最新のGeoServerを使ってみます。

GeoServerとは?

GeoServerの詳しい情報は、GeoServerを参照してください。最新Versionは2.3.2です。

また、OSGeo-Live 6.5にも、
「GeoServer は、多彩な形式の地図とデータを Web ブラウザやデスクトップ GIS プログラム等の標準的なクライアントに配信する Web サーバです。ユーザーは GIS データについて全く知ることなく、ほとんど全ての フォーマット で空間データを保存することができます。地図をみるには Web ブラウザだけが必要となります。

GeoServer は Open Geospatial Consortium (OGC) の Web Feature Service (WFS) 、 Web Coverage Service (WCS)、高性能なWebサーバの Web MapService (WMS) の参考実装です。GeoServer は空間情報 web の中核を担います。

主な機能

  • 様々な種類のデータストアデータの配信:
    • ベクタ
      • シェープファイル、 外部WFS、PostGIS、 ArcSDE、 DB2、 Oracle Spatial、 MySql、 SQL Server
    • ラスタ
      • GeoTiff、 JPG and PNG (ワールドファイル付き)、 image pyramid、 GDAL formats、Image Mosaic、 Oracle GeoRaster
  • WMS プロトコルを利用して安全かつ迅速にデータ配信:
    • データは画像の状態で保存し、完全に安全でセキュアに配信します。データを再入力しない限り、あなたのデータを盗み出すことはできないでしょう。 それぞれの地図のレイヤは SLD を用いて表示を変更できます。SLD 標準により地物の色やラベル表示を設定できます。これに、縮尺によって変化する OGC フィルターにを合わせると、ユーザーが拡大表示すると、より詳細を表示するような実装が可能です。ラベルの描画衝突の管理、グループ化、優先順位も実装されています。
  • WFS プロトコルを利用したクライアントへのベクタデータ送信:
    • WFS クライアントは、ベクタデータをダウンロードして地図表示や空間解析等の用途に使用できます。さらにWFS-Tプロトコルを利用して、認証されたユーザがサーバのデータを編集、アップロードすることで更新できます。 shapefile や json のような標準規格同様に、データは圧縮した GML で送受信を行います。
  • WCS プロトコルを利用したクライアントへのラスタデータ送信:
    • GISクライアントはラスタの実データを要求して空間解析に使うことができます。この機能を使うと、あなたのデータで記述したプロセスをベースに、ユーザーが活用することができます。
  • オンザフライ投影変換:
    • GeoServer は EPSG データベースの主な投影法をサポートしており、オンデマンドでそれらの投影法への再投影ができます。クライアント側で再投影を制限され手いる場合にはサーバ側でその処理を行うこともできます。
  • WMS タイルキャッシュ:
    • GeoWebCache は WMS タイリングクライアントです。これは地図クライアントと地図サーバーの間のプロキシサーバとして動作し要求に応じてタイルをキャッシュします。余分なリクエストをまとめて莫大なCPU時間を減少させます。GeoWebCache は GeoServer に統合されています。
  • 準拠している標準規格
    • 多くの Open Geospatial Consortium (OGC) 標準をサポートしています:
    1. Web Map Service (WMS)
    2. Web Feature Service (WFS), WFS-T (transacional)
    3. Web Coverage Service (WCS)
    4. Filter Encoding (FE)
    5. Style Layer Descriptor (SLD)
    6. Geography Markup Language (GML)

(WEBから引用)」

GeoServerを利用すれば、MapServerよりも自由度は広がりそうですね。

そして、印刷については、GeoServer Printing Moduleにその方法が書かれています。
まずは、GeoServerをinstallしてみましょう。

GeoServerをInstall

今回は、Version 2.3.2 05/17/2013の最新版を使います。
開発環境は、Windows 7 64bitの環境です。 また、すでにms4wがinstallされています。
GeoServer Downloadは、GeoServer Downloadから入手します。

GeoServerを動かすのに必要なものは、Java SDK1.5以上が必要になります。
Javaについては、installしてあるものとして作業を進めます。

Downloadした、geoserver-2.3.2.exeをdouble clickで開きます。
blog.godo-tys.jp_wp-content_gallery_geoserver_01_image03.jpg
Next > buttonをclickして次に進みます。

blog.godo-tys.jp_wp-content_gallery_geoserver_01_image04.jpg
Installの場所を入力します。
Next > buttonをclickして次に進みます。

blog.godo-tys.jp_wp-content_gallery_geoserver_01_image05.jpg
Javaがinstallされて、JAVA_HOMEの設定ができていると、Javaのinstall先が表示されます。
Next > buttonをclickして次に進みます。

blog.godo-tys.jp_wp-content_gallery_geoserver_01_image06.jpg
Username: admin
Password: geosever
変更する場合は、お好きな名前とパスワードを入力してください。
Next > buttonをclickして次に進みます。

blog.godo-tys.jp_wp-content_gallery_geoserver_01_image07.jpg
サービスとして開くPort番号を入力します。80番はms4wが使用しているので、defaultで良いと思います。
Next > buttonをclickして次に進みます。

blog.godo-tys.jp_wp-content_gallery_geoserver_01_image08.jpg
手動でGeoServerが起動するように、manuallyにしておく。
Next > buttonをclickして次に進みます。

blog.godo-tys.jp_wp-content_gallery_geoserver_01_image09.jpg
入力したparameterを確認して、
Install buttonをclickしてinstallを開始します。

Geoserver Install
blog.godo-tys.jp_wp-content_gallery_geoserver_01_image10.jpg

Installが終了すると
blog.godo-tys.jp_wp-content_gallery_geoserver_01_image11.jpg
が表示されるので、Finish buttonをclickして終了します。

これで、GeoServerのInstallが終わりました。
次に、Install後の確認を行います。

Install後の確認

Installが正常に終了した場合、スタートプログラムGeoserver2.3.2を開くと
blog.godo-tys.jp_wp-content_gallery_geoserver_01_image17.jpg
のようにGeoServerのプログラムが登録されています。

Start GeoServer

まずは、WindowsのServiceとしてGeoServerを動かさなければなりません。
Start GeoServerを選択すると、

blog.godo-tys.jp_wp-content_gallery_geoserver_01_image12.jpg
な感じで、cmd ターミナルが開いて、なにやらゴニョゴニョと動き出します。
そして、
blog.godo-tys.jp_wp-content_gallery_geoserver_01_image13.jpg
で表示が止まります。この状態でGeoServerがサービスを開始した状態になります。

GeoServer Web admin page

次に、GeoServer Web admin pageを選択すると、
blog.godo-tys.jp_wp-content_gallery_geoserver_01_image14.jpg
が表示されます。
このページが正しく表示されない場合は、GeoServerが正しくinstallされていないことになります。

次に、GeoServer Web admin pageからloginします。
Install時に設定したUsername,Passwordを入力します。
blog.godo-tys.jp_wp-content_gallery_geoserver_01_image15.jpg
Admin画面が表示されます。

試しに、左のメニューからDataLayer previewを選択して、tasmaniaをOpenLayersで表示させると、
blog.godo-tys.jp_wp-content_gallery_geoserver_01_image16.jpg
な感じで表示されます。

ちゃんとInstallできて、Serviceも動いているようです。
次に、print moduleをinstallしておきます。

GeoServerのprint module install

では、印刷はどのようにするのでしょうか?
GeoServer Printing Moduleにその方法があります。
これに従って、

  • geoserver-2.1-SNAPSHOT-printing-plugin.zipを解凍後に、webapps¥geoserver¥WEB-INF¥lib folderにfileをcopyします。
  • copy後、GeoServerを再起動します。再起動は、Stop GeoServer後、再度Start GeoServerでOKです。

再起動後、 http://localhost:8080/geoserver/pdf/info.jsonをclickすると、browser上にinfo.jsonが表示されます。
info.jsonは、

{
"scales":
[
{"name":"1:25,000","value":"25000"},
{"name":"1:50,000","value":"50000"},
{"name":"1:100,000","value":"100000"},
{"name":"1:200,000","value":"200000"},
{"name":"1:500,000","value":"500000"},
{"name":"1:1,000,000","value":"1000000"},
{"name":"1:2,000,000","value":"2000000"},
{"name":"1:4,000,000","value":"4000000"}
],
"dpis":
[
{"name":"75","value":"75"},
{"name":"150","value":"150"},
{"name":"300","value":"300"}
],
"layouts":
[
{"name":"A4 portrait","map":{"width":440,"height":483},"rotation":true},
{"name":"Legal","map":{"width":440,"height":483},"rotation":false}
],
"printURL":
"http://localhost:8080/geoserver/pdf/print.pdf",
"createURL":"http://localhost:8080/geoserver/pdf/create.json"
}

次に、GeoServer Web admin pageから左のメニューからDemosを開くと、
blog.godo-tys.jp_wp-content_gallery_geoserver_01_image18.jpg
な感じでメニューが表示されます。

MapFish printをclickすると、
blog.godo-tys.jp_wp-content_gallery_geoserver_01_image19.jpg
でprint moduleが動いていることが確認できます。

次に、sample pageを開いてみます。
GeoServer Printing Modulesample pageをclickしても、sampleは開く事ができません。
blog.godo-tys.jp_wp-content_gallery_geoserver_01_image20.jpg
な感じで表示され、 http://dev.geoext.org/extensions/geoext.ux/ux/SimplePrint/examples/SimplePrint.jsもsouce codeが無いと怒られてしまいます。

とりあえずは、GeoServerとPrint moduleもinstallできているようです。

印刷実行にむけて

GeoExtで印刷するには、GeoServer Printing Modulesample pageを動かして見なければなりませんが、これは次回挑戦してみます。

また、その後に、GeoExt Web Siteを参考にprintを行ってみます。

なかなかprintがすんなりといきませんが、なんとか動かして見ましょう。

GeoExt1.1 Tutorialの目次に戻る。

1 / 11

Social Widgets powered by AB-WebLog.com.