GeoToolsを使ってみる

地図データの表示について調べてみました。 地図データのデータ加工や表示をするシステムを GIS(geographic information system) と呼ぶそうです。

JavaのGISライブリを調査したところ、 GeoToolsがありましたので、試しに動作させてみました。

GeoToolsのサイトではQickstartでMavenプロジェクトでのチュートリアルが説明されています。今回は、その説明を参考にGradleプロジェクトで始めてみることにしました。
しかし、結果を先に言うと、依存関係が解決できず、Qickstartできませんでした。。。

MavenプロジェクトでのチュートリアルはSNAPSHOTとのことでしたので、
そこで、リリース版jarファイル一式をimportして、利用することにしました。こちらも、簡単にとは行きませんでしたが、とりあえずサンプルプログラムを実行することはできました。以下、その手順を記載します。

  • リリース版をダウンロードする 下記のサイトから最新版をダウンロードします。私は、21.2をダウンロードしました。  ダウンロードサイト

  • gradleプロジェクトを作成する
    cmd+n(macの場合)を押下すると、新規プロジェクト作成画面が開きます。
    Gradle Projectを選択して、Nextを押下します。 新規プロジェクト作成画面

次の画面は変更せずに、Nextを押下します。 次の画面

Project nameを入力して、Finishを押下します。これで、Projectが作成できます。
ProjectName

  • build.gradleを更新する
     gradleプロジェクトを生成するとルートフォルダ直下にbuild.gradleが生成されます。 build.gradleには、今回ダウンロードしてきたGeoToolsのimportする設定を記載します。
    buile.gradle修正後、gradleリフレッシュを実行してください。すると、自動でdependencyで指定したjarファイルを、依存する外部ライブラリに追加してくれます。
    fileTreeのオプションのdirに指定する値は、リリース版を解凍したディレクトリを指定してください。今回は、プロジェクトディレクトリと同階層にlibディレクトリを作成して、その配下にリリース版を解凍したファイル一式を格納しています。その他のオプションについては、
  • サンプルプログラムを作成する
     サンプルプログラムは、公式サイトquickstartのCreating the Quickstart applicationのmain関数部を利用します。パッケージやクラス名は任意に設定し、メイン関数部だけ、上記サイトのソースコードに置き換えれば良いです。
  • GISデータを取得する
     下記のサンプルプログラムは、shpファイルを読み込み地図を表示するプログラムです。
     shpファイルは、 国土数値情報 ダウンロードサービスより、ダウンロードすることができます。私は、鉄道のGISデータをダウンロードしました。このGISデータの中に、shpファイルが存在しています。
  • サンプルプログラムを実行する
     プログラムを実行すると、ファイル選択画面が開きます。
     ファイル選択画面  ダウンロードしたshpファイルを選択します。
     すると、鉄道の路線情報が表示されます。  全体図
     拡大表示することもできます。  拡大表示

JSP

今回は、JSPでHello Worldを表示してみます。

  • JSPファイルを作成します。 プロジェクト右クリック→New→JSP Fileをクリックします。 JSPファイルの作成
    ファイル名を入力して、Nextを押下します。 ファイル名の入力
    New JSP File(html)を選択して、Finishを押下します。 templateの選択

jspのbodyタグを下記のように入力します。
<% 〜 %>にjava言語を記述することができます。
<%=hoge%> で変数hogeの値をhtmlに埋め込むことができます。

プログラム実行後、localhost:8080/HelloWorld/Hello.jspにアクセスすると、 下図のようにHello World(JSP)が表示されます。

HelloWorld(JSP)

Java ServletとJSP

SpringBootでの開発経験しかなかったので、それ以前のWeb開発技術である JSPとServletを調べて見ました。

概要としては、下記のサイトが参考になりました。

ここでは、ServletでHello WorldをWebブラウザで表示させるプログラムを作成します。 Servletとは、サーバサイド処理をするJavaプログラムのことです。

それでは、開発環境構築からです。
まずは、Eclipseをインストールします。次にEclipseのプロジェクトを作成したいのですが、Web開発するためには、Eclipseのプラグインを色々とインストールしておく必要があります。

プロジェクト作成前の準備

  • Eclipse Java EE Developer Toolsのインストール

Install New Software ※これをインストールするとプロジェクトを新規作成するときにWebが選択できるようになります。

Eclipse Java EE Developer Tools

  • 次にプロジェクト新規作成時のターゲット・ランタイムでTomcatを選択できるように環境構築します。
    下記のソフトウェアをインストールします。 こちらのサイトを参考にしました。

    • JST Server Adapters
    • JST Server Adapters Extensions
    • Apache Tomcatのダウンロード & 解凍
  • JST Server Adapters, JST Server Adapters Extensionsのインストール ランタイム・サーバ

  • Apache Tomcatのダウンロード & 解凍 https://tomcat.apache.org/download-90.cgi
    tar.gzをダウンロードして、任意のディレクトリに解凍します。(Macで開発しているので、とりあえずApplication配下に解凍しておきました。)

  • Eclipse Java EE Developer Toolsのインストール Eclipse Java EE Developer Toolsのインストール
    ※ これをインストールしないとプロジェクト作成時に、failed while installing dynamic web module x.xのエラーが出ます。

  • プロジェクトの作成方法
    File→New→Other→Web→Dynamic Web Projectの順でクリックします。 プロジェクトの開始

プロジェクト名、ターゲット・ランタイムを設定して、Nextを押下します。
ターゲットランタイムは上記で解凍したTomcatと同じものを選択します。 プロジェクト・ターゲットランタイム

何も変更せずに、Nextを押下します。 Next

Generate web.xml deployment descriptorにチェックを入れて、Finishボタンを押下します。 descreptor

Project Explorerに作成したプロジェクトが表示されます。 新規プロジェクト

次にサーブレットを作成します。 File→New→Servletとクリックしていきます。 サーブレットの作成

任意のJava package、Class nameを入力して、Finishを押下します。 finish

サーブレットの雛形クラスファイルが作成されます。 Servlet template

作成されたクラスを下記のように実装します。
そして、プログラムを実行し、webブラウザのアドレスバーに「localhost:8080/HelloWorld/Hello」を入力しEnterを押すと、Hello WorldがWebブラウザに表示されます。

次回は、JSPでHello Worldを表示させてみようと思います。

WordPressでソースコードのシンタックスハイライトをする

次のプラグインをインストールしました。

  • WP Code Prettify

参考
https://shared-blog.kddi-web.com/webinfo/106/

試しにコードを書いてみます。

上記コードは、HTMLで次のように記述しています。
preタグのclassにprettyprintを付与するとコードにハイライトがつきます。
また、linenumsをclassに追加すると5行毎に行数が表示されるようになります。

今は、markdownで記事を書いているので、「Crayon Syntax Highlighter」プラグインを利用していたりします。。。