明日から本気出す開発日記

2016/10/31 fc2ブログより引っ越しました。更新はまた明日から本気だす

JasperReports OpenStreetMap

iReportで作る帳票にOpenStreetMapの地図表示

2016/10/31

Javaで書かれたオープンソースの帳票作成ソフトiReportを使って、
フリーでオープンな地図、OpenStreetMapを帳票に表示してみます。

iReportはこちらでダウンロードしましょう。
http://community.jaspersoft.com/project/ireport-designer

iReportの使い方についてはこちらをどうぞ
[ThinkIT] 第2回:iReportに触れる (1/4)
iReportで作ろう - 日本JasperServerユーザ会

【やりたかったこと】
静的な地図をPDFに埋め込むのであれば、事前に画像を保存してImageコンポーネントにパスを渡せば良いだけなので面白くない。
入力画面からの引数や、DBの緯度・経度項目の値を基に、帳票に地図表示する。

【使うもの】
OSM Static maps API v0.3
(緯度・経度・ズームレベルを引数として渡すと画像を返してくれるAPI)
http://wiki.openstreetmap.org/wiki/Static_map_images

【ざっくりとしたやり方】
1)Imageコンポーネントを配置。
2)ImageコンポーネントのExpression Classプロパティーをjava.net.URLにする。
3)ImageコンポーネントのImage Expressionの値は、new java.net.URL("http://dev.openstreetmap.org/~pafciu17/?module=map&lon=" + $F{経度のDB項目名} + "&" + "lat=" + $F{緯度のDB項目名} + "&zoom=17&width=540&height=300")のようにする。
ズームレベルやwidth、heightは適宜変更しましょう。

適当に作ってみたサンプルPDF
https://s3-ap-northeast-1.amazonaws.com/unotecjapan/ireportmapsample.pdf

-JasperReports, OpenStreetMap