GeoExt1.1で印刷に挑戦する。MapFish編[Appendix 1]

MapFishって何ですか?

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のこと、名前は聞いていたのですが、よくは知りませんでした。
詳しい情報は、MapFishを参照してください。

MapFishは、Webでの地図アプリケーションを開発するためのフレキシブルなオープンソースのフレームワークだそうです。 MapFishにはサーバー・サイドとクライアント・サイドの2つの機能をもっているようです。

また、OSGeo-Live 6.5にも、
「MapFish はリッチなウェブマッピングアプリケーションを作るための柔軟で完璧なフレームワークです. これはマッピングアプリケーション開発の生産性と品質を向上させます。

MapFish は Pylons という Python Web フレームワークを利用しています. MapFish は Pylons で地理空間情報機能を拡張します. たとえば MapFish では地理情報オブジェクトを検索したり編集したりする WEB サービスを作成するためのツールを提供します。

MapFish は完ぺきなリッチインターネットアプリケーションを提供できる JavaScript ツールボックスを提供します, このツールボックスは JavaScript のテスト環境と JavaScript コードを圧縮するツールも含みます.この JavaScript ツールボックスは ExtJS, OpenLayers, GeoExt これらのモジュールと MapFish ウェブサービスと更新 するためのコンポーネントで構成されています。

準拠している標準規格
MapFish は Open Geospatial Consortium 標準に完全に準拠しています。 WMS, WFS, WMC, KML, GML 等の多くの OGC 標準への対応は OpenLayers、GeoExt を利用することで実現しています。(WEBから引用)」

完ぺきなリッチって、いい響き、お金持ちになったような感じです。

そして、印刷については、mapfish-printにその方法が書かれています。
まずは、MapFishをinstallしてみましょう。

MapFishをInstall

今回は、Version 2.2を使います。
MapFishのInstall方法は、MapFish Isntallを参考にしました。

MapFishを動かすのに必要なものは、PythonとPython extensionsが必要です。
ここでは、Python 2.6pywin32 Build 218をInstallしました。

MapFishのinstall方法に従えば、何も問題もなくInstallができます。
ここで1点、mapfish.plugin.client-0.2がFireFoxではなにやら動かないようです。env/lib/python2.5/site-packagesを使いなさいとなっています。
テスト環境なので、とりあえずはdefaultのままで進めます。
client sideのjavascriptもinstallしておきます。

で、install終了後、起動してみます。

Quick Start

Quick Startの通り実行すると、
FireFox 21.0(最新版)では表示されません。

Chrome (バージョン 27.0.1453.94 m)では、
Chromeで表示
な感じで表示されます。

Internet Explorer (バージョン 9.0.8112.13421)では、
IE9で表示
な感じで表示されます。

とりあえず、これでClient sideのjavascript toolもインストールできたようですね。

ちなみに、MapFishのinstall folderのmapfishapp¥public¥index.htmlをFireFoxで開くと
FireFoxで表示
な感じで表示することはできます。

ExtJS,GeoExt,OpenLayerとも正常に動いているようです。

どうやって印刷するの?

では、印刷はどのようにするのでしょうか?
MapFish Printにその方法があります。
これに従って、
まず、GitHubでhttps://github.com/mapfish/mapfish-printからmaster-zipを取得します。
解凍後、cmdプロンプトで
blog.godo-tys.jp_wp-content_gallery_mapfish_01_image05.jpg
でコンパイルします。
そして、成功すれば、
blog.godo-tys.jp_wp-content_gallery_mapfish_01_image04.jpg
となります。
mapfish-print-master¥build folderに

なfolderが作成されます。この中で、使うのは

libs folderのprint-standalone-2.0-SNAPSHOT.jarのようです。

今回は、Pythonを使うので、Python Install,Configuration,と手順を進めていきます。

なにやら、非常に面倒くさくなってきましたが、なんとか設定を行い、実行してみましたが。。。 玉砕!!
なぜか、ウンともスンともいいませんがな。。。

Clinet sideだけの設定でよいような感じはするのですが、どこをどのように修正すればよいのか?皆目見当がつきません。

印刷実行にむけて

Google先生に聞いてみました。すると古い情報ですが、Minifying the Mapfish Client on Windowsなるものが見つかりました。

そして、svnでhttp://trac.mapfish.org/trac/mapfish/wiki/DownloadSvnを落としてきてチェックしてみましょう。

mapfish downloadにmapfish-client-1.2.tar.gzなるものがあるようで、これ使えば面倒くさいことやらなくても、うまくいきそう。
これを次回試してみます。

今回のまとめ

MapFishのprint機能を追加できませんでした。。。
MapFishで印刷できるんだろうか? なんか情報ないかな?

GeoServerのほうがよいのだろうか? Versionも2.3.2着実に上がっているようで、メンテナンスもされているのですよね。
MapFishは、ExtJSは2.2.1、GeoExtは0.7、OpenLayersは2.9とちょい古いversionで構成されているので、
やっぱりGeoServer?
要 検討。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 

WP-SpamFree by Pole Position Marketing

Social Widgets powered by AB-WebLog.com.