一般社団法人オープンストリートマップ・ファウンデーション・ジャパン
代表理事 三浦 広志
Getting Started
前提環境
WordPressでOSM
DrupalでOSM
本セッションでは、ハンズオンスタイルで、ブロク上に地図を統合する方法を学びます。 Amazon Web Service上に実現することを前提にします。
また、本プレゼンは、
http://miurahr.github.com/osc_tokyo_2013spring/
でアクセス可能です。
「OpenStreetMapは道路地図などの地理情報データを誰でも利用できるよう、フリーの地理情報データを作成することを目的としたプロジェクト」(wiki.osm.orgより)
「自由に使えると思っている地図の多くが実は法的・技術的に問題があり、人々がクリエイティブに、生産的に、あるいは今まで予期しなかった方法でそれを利用する事を妨げている」(wiki.osm.orgより)
既存オンライン地図で足りないものがある
著作権
本説明では、Amazon Webサービスにサーバ運営をするという条件で、記載されているが、AWSをおすすめするものではない。 また、サーバイメージには、オールインワンのサーバイメージを提供するBITNAMI http://bitnami.org/ を想定してます。 すべて自分でインストール等を行うこともできますし、オンプレミスの環境を構築することもできますが、サーバ環境の準備については範疇外とします。
AWSのインスタンス起動で、次のイメージを選択し、起動します。
AMI ID: ami-ad0580ac
AMI Name: bitnami-wordpress-3.5.1-0-linux-ubuntu-12.04.1-x86_64-ebs
これと同等のWindows用、MacOSX用、Linux用のイメージも入手可能ですので、詳細は、bitnamiのホームページを参照ください。
$ ssh -i aws.pem -l bitnami ec2-xx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-36-virtual x86_64)
___ _ _ _ _ _
| _ |_) |_| \| |__ _ _ __ (_)
| _ \ | _| .` / _` | ' \| |
|___/_|\__|_|\_\__,_|_|_|_|_|
*** Welcome to the BitNami WordPress 3.5.1-0 ***
*** BitNami Wiki: http://wiki.bitnami.org/ ***
*** BitNami Forums: http://answers.bitnami.org/ ***
URLを変更して、 http://DOMAINNAME/ でアクセスできるようにする。
$sudo /opt/bitnami/apps/wordpress/updateip --appurl /
$ mkdir /opt/bitnami/apps/wordpress/htdocs/wp-content/uploads
これによって次のようなページを見ることが出来ました。
続いて、OSMのプラグインを導入して行きましょう。
サイトに User: user Password: bitnami で入ります。
今回使用するプラグインは、こちらです。
http://wordpress.org/extend/plugins/osm/
インストール後、設定”OSM”を選択して、設定して行きましょう。
アイコンの設定部分です。ブログ記事の地図で、ロケーションを示す ピンの代わりに、アイコンを使えます。
例えば、次のような文字列が生成される。
[osm_map lat="35.367" long="139.465" zoom="14" width="600" height="450" marker="35.363,139.466" marker_name="wpttemp-green.png" control="scaleline" m_txt_01="ほげほげ" m_txt_02="ふがふが" m_txt_03="" m_txt_04="" theme="ol" type="Mapnik"]
これを、ブログ投稿に貼り付けるだけです。
GPSトラッカーや、iPhone/AndroidのGPSとアプリで、自転車での遠出の経路を載せることもできます。
Drupalには、次のAWSのイメージを使います。 AMI ID: ami-cdfd78cc AMI Name: bitnami-drupal-7.19-0-linux-ubuntu-12.04.1-x86_64-ebs
起動してブラウザーで開くとこんなページが開きます。
アクセスMyアプリケーションを選ぶと、ログインできます。 Wordpressと同様、 id: user password: bitnamiでログインしましょう。
今回は、 OpenLayersモジュールを使用します。さらに記事に地図をつけるために、GeoField, GeoPHPモジュールも使用します。
maoduleの設定を開きます。 新規モジュールインストールを選択し、openlayers モジュールを導入しましょう。
INSTALL URL(入手元)には、
http://ftp.drupal.org/files/projects/openlayers-7.x-2.0-beta3.tar.gz
を入れます。 Installボタンをおし導入後、有効化してしまいましょう。 同様に、GeoField, GeoPHPモジュールを導入します。
http://ftp.drupal.org/files/projects/geophp-7.x-1.7.tar.gz
http://ftp.drupal.org/files/projects/geofield-7.x-1.1.tar.gz
サーバにSSHログインして、geoPHPライブラリを追加します。FTPで実施しても構いません。
bitnami:~$ mkdir /opt/bitnami/apps/drupal/htdocs/sites/all/libraries
bitnami:~$ wget https://github.com/downloads/phayes/geoPHP/geoPHP.tar.gz
2013-02-10 01:16:11 (16.2 MB/s) - `geoPHP.tar.gz' saved
bitnami:~$ cd /opt/bitnami/apps/drupal/htdocs/sites/all/libraries
bitnami:$ tar xf ~/geoPHP.tar.gz
設定の「Structure」-「OpenLayers」を選択します。 MAPSタブを選択します。今回は、example_osmをクローンして利用します。
Editボタンの矢印をクリックすると”Clone”が選択できます。 Mapスタイルの編集画面に入り Layers&Stylesを選択します。
スクロールダウンすると、オーバーレイの設定があります。Geofieldフォーマッターの欄を有効にします。
“Settings”タブで、既定で使用するマップを選びます。
記事にOSMのマップで表示するロケーションをもたせます。
今回の手順は、以下のDrupal OpenLayersモジュールハンドブックに基づきます。
http://drupal.org/node/1481374
ノードに緯度経度データが保存できるフィールドを追加します。
”Structure”ー”Contents Types”を選択 コンテンツタイプ”Article”に地図を追加します。
フィールド追加に ”Geo”, “GeoField”, “OpenStreetMap Map”を選択します。 保存し、次の画面も規定値で、保存してください。 これで、地理的な位置を入力できるようになりました。
ここでは、先程追加したgeoフィールドの表示について、デフォルトのWKTを”OpenLayers”に変えます。
新規コンテンツ追加を選ぶと、編集画面中に、地図を見ることができます。 右上の鉛筆のアイコンを使って、位置を示すことができます。
これで、コンテンツに地図を貼り付けることが出来ました。
Drupalでは、処理が複雑でしたが、WordPressに比べ、複雑な処理や様々なサービスを使えるようになっています。ブログだけではなく、地図上に管理するシステムのフレームワークとして利用可能な作りになっています。
このようにポイントだけではなく、範囲を示すこともできます。
DrupalのVIEWSを用いて、一覧表示をしてみましょう。 ここで、Viewsとは何かについては、詳細な説明はしません。 Viewsは、ノードなどのコンテンツ、ユーザなどの任意の要素の、検索条件に合致した要素を集めて、その一覧表示させる画面を作成する機能です。今回は、地図上に一覧を載せる仕掛けとします。
Views, Views UI, OpenLayers Viewsモジュールを有効化します。 “Structure” - “Views” から、 “Add Views”として新規Viewを作成します。
以下の2つをcloneのもとにしてクローンしてください。
まず、clone_of_geofield_widget_mapのほうを設定します。入力用に使います。
入力用のオーバーレイを有効にします。
これでベースマップと、ノードから作成したDataオーバーレイの生成ができたので、つぎにオーバーレイを ベースマップの上で有効にします。
Geofield formatter MAP のクローンしたもの(output)を編集します。
出力用に、先程Viewsで作成したオーバーレイを表示有効にします。
これで地図上のインデックスが完成しました。
Http://osm.jp/
Use a spacebar or arrow keys to navigate