GeoJackass

ちゃらんぽらんの絶対領域は、是を頑なに堅持

FOSS4G Advent Calender 2014 --Geo PeopleのためのGitHub.Pages--

このページは、出版作業に追われていた7月ごろの記事を加筆修正したものになります。

目標:WebServerでホストしてOriginalMapを一般公開する。

手段:GitHubPagesを使用する

http://shoichi-qgisbook.github.io/

サーバーを用意する

公開に際して、基本的にはwebサーバーを用意する必要があります。既に公開用サーバーを使用している方は、そちらを使用していただいて構いません。ただし、webサーバーの準備に関してはこの本の主旨を逸脱しますので、今回はwebサーバーの代用として、GitHubを使用して公開する方法を紹介したいと思います。

また、GitHubを使用する場合にはバージョン管理ツールとして、Gitを使用することになります。よく混同されますが、GitとGitHubは同じものではありません。 Gitとはバージョン管理ツールのことで、その他のバージョン管理ツールとしてはMercurial等があります。 GitHubとは、ソースコードをWebホスティングサービスのことで、その他のWebホスティングサービスにはBitBucketやGoogle Project Hosting等があります。

今回は公開を想定して行いますので、Githubを使用します。

バージョン管理の利点は、ソースコードをログで管理することです。例えば、ソースコードに変更を加えた際に、誰が加えたのか、いつ行われたのか、どこを変更したのか、等が記録されます。また、以前のコードに戻したい場合などにも、簡単に戻すことが出来ることなどがあります。GitやGitHubの使い方に関しては、既にその書籍が何冊も出ていますので、詳しくはそちらを参照してください。

  • Windowsの場合(Macでもターミナルで操作しない場合、基本的に等しい)

GitHubアカウントの作成を行う

githubの公式ページトップへ行き、アカウントを作成します。

ここで右側の空欄に - username - emailaddress - password

以上の3項目を、それぞれ記入して下さい。また、usernameとpasswordは必ず忘れないようにメモを取り控えておいてください。

Sign up for GitHubをクリックすると[github_account2]の画面になります。

今回作成するアカウントはFreeのもので構いません。Finish sign upをクリックしてください。 これで、アカウントが作成されます。

GitHubリポジトリの作成を行う

画面右上にある + ボタンをクリックして、New Repositoryを作成してください。

詳しくはコラムで触れますが、今回は通常のGitHubではなく、GitHub.Pagesとして使えるアカウントを作成します。

  • Repository nameにはアカウント名.github.ioと入力してください。
  • Descriptionは特に気しなくてもいいですが、今回はwebで公開するページである旨記載しました。
  • PublicRepositoryで構いませんし、GithubはFreeアカウントの場合、PublicRepositoryしか作成できません。
  • Initialize this repository with a READMEのチェック欄にチェックを入れてください。

以上の設定を終えたら、Create repositoryをクリックします。

[github_account6]の図のようになります。

githubのセットアップを行う

下記アドレスより、GitHub for winodwsのソフトウェアをダウンロードします。

https://windows.github.com/

Downlaod Github for Winodws 2.0 (2014年08月30日現在の最新版) をダウンロードします。

ダウンロードディレクトリ内にある、GitHubSetup.exeアイコンを起動します。

『実行』をクリックしてください。

GitHubアカウントへのログイン画面になります。 - GitHubのユーザーアカウント あるいは 登録したメールアドレス - Githubアカウントに登録したパスワード

を入力して下さい。

Clone Pathを設定します。デフォルトのままの場合は、Cドライブ内にディレクトリを作成してしまいます。ソースコード程度ならば問題ありませんが、データをアップロードするとシステムの容量が無くなっていくため、動作が不安定になります。そこで今回はDドライブにGitHubというディレクトリを作成し、そのディレクトリを使用します。

右上の『+』をクリックしてください。

GitHubアカウント上で管理している、プロジェクトのディレクトリの一覧が表示されます。 shoichi-qgisbook.github.ioを『Cloneします』

フォルダーの参照画面が開きます。これはClone先のディレクトリを指定し『OK』を押します。

指定したディレクトリにCloneされたディレクトリが作成されます。

参考に5-2冒頭の「データを準備する」(ここに参照ページ差込)で作成したGeoJSONデータを使用します。 GeoJSONデータをディレクトリにペーストしてください。

データを公開する

画面右上の『Sync』をクリックしてください。

GitHub上に変更・追加したデータがpushされます。 GitHubアカウントを確認してみましょう。

サーバーの細かな設定やセキュリティーに触れることは、この本の趣旨から外れてしまうのため公開用サーバーを構築することはしませんでした。ですが、CGIやデータベースを使用しない場合は、こういったサービスでも編集したデータを地図上に載せて公開する事することは可能です。 それではなぜ、わざわざGitHub.Pages用のアカウントを作成したのかについては、コラムに記載しました。

https://github.com/shoichi-qgisbook/shoichi-qgisbook.github.io

  • *nixを使用する場合

基本的な技術スキルのある人を前提に話を進めます。 本章ではGitHubでは標準機能としてGeoJSONが地図上に描画された状態で表示されることと、CGIやデータベースが使えないこと触れました。ですが、実はjavascript等を動作させたページは表示させることが可能です。 せっかくの公開ページですので、データを表示する以外にも様々な追加機能を搭載したweb地図を公開したくなることでしょう。 その際の使用方法に関して触れたいと思います。

Gitのインストールが必要になるので、行ってください。

LinuxディストリビューションDebian系の人

sudo apt-get install git

LinuxディストリビューションRedHat系の人
# [root]になっている状態で

yum apt-get install git

リポジトリのクローンを行う

Gitコマンドを入力します。

git clone https://github.com/shoichi-qgisbook/shoichi-qgisbook.github.io

これでリポジトリがcloneされましたので、cloneしたリポジトリへ移動します。

リポジトリへ移動したら、空のindex.htmlファイルを作成します。次に、ファイルが作成されたことを確認します。

cd shoichi-qgisbook.github.io/
touch index.html
ls

空のindex.htmlの中身を作成します

index.htmlの作成を行う

gist0163aeb1e84fe823a9be

公開するデータのアップロードを行う

git add index.html
git commit -m 'add index.html'
git push

GitHubリポジトリを確認して、pushされていることを確認してください。

確認できたら、リポジトリネームの下にあるEditをクリックしてください。

データを公開する

WebSiteの欄に

http://username.github.io

と記入しsaveします。

[github.io_pub]のように表示されたのが、確認できます。

公開する際の留意点

公開する際の留意点は主に以下のようのものが挙げられます。

  • 引用元となるデータのライセンスに抵触しないこと
  • 引用元のライセンスポリシーに従っていること
  • 引用元の利用規約等に従っていること

例えば、引用元データがCC-BY-NDで定義されていれば、そのデータを改変して公開することや、引用元データがCC-BYで定義されているデータであれば、元データの著作者を明記せずに公開すること等はライセンスに抵触する行為となります。 また、クリエィティブコモンズ以外のライセンスで定義されている場合や、ライセンスで包括的な定義をしてはいないが、利用規約等を独自に設けている場合があります。データの公開に際しては、こういった点に十分な配慮をして下さい。

Q:何で本に書かなかったんですか??

A: 知らん

下記書籍を出版するにあたり未収録となった原稿があるので、某社の技術系の偉い人が Foss4G Advene Calender 2014に書いてもいいよっていう話がありまして...