N予備校で学んだ内容から、オープンデータに関するアプリ作ってみた

## はじめに
~~N予備校の授業も残り終盤~~２０１７年の授業が終わったので、ここに記録的なものを残します。PART2:writing_hand_tone1:
>N予備校プログラミングコース勉強中の社会人です。
名前はゲームアカウント名の流用でMonoと名乗ってます。
~~お仕事ではPCを使うより、工具を使う頻度の方が多い人です。~~
なぜかサーバー関係を取り扱う部署に異動になりました。:sweat_smile:
困惑中です。
学生時代はCなるものを習ったような気がしますが、やはり記憶にございません。:innocent:
光の戦士Monoという名前で冬のwebアプリコンテストとか参加してみました。
概要：https://progedu.github.io/web-contests/webcontest2017-winter/
作ったもの：[OPEN DATA ONSEN♨︎](https://secure-lowlands-97650.herokuapp.com/)
結果は「Webアプリケーションコンテスト2017年度冬」のN予備校生１年以上の部オープンデータのテーマで最優秀賞をとったようです。:rolling_eyes:
ありがたい！サイン本までいただけました。:laughing:


| ![IMG_1642.JPG](https://qiita-image-store.s3.amazonaws.com/0/222072/1691ed76-92c2-2be8-aac7-4b65bb5bd7fd.jpeg) | ![IMG_1644.JPG](https://qiita-image-store.s3.amazonaws.com/0/222072/5bbcbe80-484b-64f5-bf1b-04258607e78c.jpeg) |
|:-----------:|:------------:|
| 頂いたもの:joy:| サインいただきました:relaxed: |

## この記事の内容
この記事はN予備校で開催された冬のwebアプリコンテストで制作したものをどのように作っていったかの過程を簡単に書いています。あとで自分が確認するメモ書きのようなものです。次年度の人のために、参考になればと思いQiitaに投稿しました。読んでいるN予備校受講者の対象レベルとしては、第３章サーバサイドプログラミングと第４章実践サーバサイドプログラミングの２.ExpressのAPIまでを終えているものとします。生放送授業の予定だとこのあたりからwebアプリコンテストのお話が出てくると思いますので、このあたりの知識を使いつつ実装していく形になると思います。そのため、N予備校のテキストにはないMapboxの機能を使えば、どういうことができるかをメインに記事を書いていこうと思います。

## アプリの作り方概要
概要は以下の通りになります。Mapboxを使用するところ以外は、基本的にはN予備校のテキストを見たり、過去の放送を聞くことによって進めることが可能になると思います。アイデアをノートに書いて方針を決めると実装が楽になると思います。

- サーバーサイドはnode.jsを使用します。
- 作品のテーマの中でどういう内容のものを作るかある程度決めます。
- フレームワークはExpressを使っていきます。
- 見た目は基本的にはbootstrapを使いつつ、アレンジしていきます。
- Mapboxという地図APIを使っていきます。
- herokuにデプロイして完成です。

|![アプリアイデア.001.jpeg](https://qiita-image-store.s3.amazonaws.com/0/222072/22786595-a5aa-259a-0d03-0646971cd7f5.jpeg)|
|:--:|
| アイデアノート　（最初はノートと鉛筆で書いてました）|

## mapboxでオープンデータを表示してみよう！
 ここからmapboxの説明に移ります。GoogleMapとよく比較されるのですが簡単に説明しますと以下の利点があります。

- 地図の見た目をカスタマイズすることができる。テンプレートがいくつかあり、簡単にかっこいいデザインにすることができます。
- 地理空間解析というものに便利らしいです。csvで位置情報を取り込んで表示させたり、人口密度を地図上に可視化させることができます。

| ![スクリーンショット 2018-03-17 19.41.01.png](https://qiita-image-store.s3.amazonaws.com/0/222072/fec5fe40-bcd3-0599-9d3c-d2d9cd416bfa.png)| ![スクリーンショット 2018-03-17 19.38.19.png](https://qiita-image-store.s3.amazonaws.com/0/222072/65289747-f03d-3d6b-6490-51374bc6df2f.png)|
|:-----------:|:------------:|
| 未来的な地図(Odyssey)| 古風な地図(Vintage) |
|　![スクリーンショット 2018-03-17 19.47.49.png](https://qiita-image-store.s3.amazonaws.com/0/222072/0bb58a1f-9d9f-0760-76d4-14eb55d15d79.png)|![スクリーンショット 2018-03-17 19.48.12.png](https://qiita-image-store.s3.amazonaws.com/0/222072/670e2edf-33d1-0bab-d2a9-122a1392051a.png)|
| Mapboxでできるものその1| Mapboxでできるものその2|

### テーマであるオープンデータとはそもそも何か？
> オープンデータとは、誰もが自由に利用でき、再利用や再配布が許可されているデータのことを指します。
オープンデータ政策は、以下の3つを目的としてスタートしました。
・行政の透明性や信頼性の向上
・官民協働による公共サービスの提供、民間サービス創出の促進
・新ビジネスの創出や企業活動の効率化を通じた経済活性化

空間情報クラブさんの説明から抜粋(http://club.informatix.co.jp/?p=260)
だそうです！自由に使っていいデータという認識で良い模様。

### Mapboxでオープンデータを表示してみよう（大まかな流れ）
- Mapboxのアカウントを取得する。
- 表示させたいデータを取得する。探す。加工する。
- アクセストークンを作成する。
- 地図をMapboxスタジオ上で編集する。スタジオ上で地図のデザインが変更できる。
- コードを記述する。

|![スクリーンショット 2018-03-17 20.42.02.png](https://qiita-image-store.s3.amazonaws.com/0/222072/f0a90bd2-19c7-8a1e-5549-674ff9d64ec1.png)|
|:--:|
|![スクリーンショット 2018-03-17 21.06.19.png](https://qiita-image-store.s3.amazonaws.com/0/222072/d453d1f8-6487-24a7-cd7e-7ba8698bd508.png)|
|![スクリーンショット 2018-03-17 21.15.25.png](https://qiita-image-store.s3.amazonaws.com/0/222072/a57cb385-ab50-d6fd-8588-eef48f8ba60c.png)|
|![スクリーンショット 2018-03-17 21.49.35.png](https://qiita-image-store.s3.amazonaws.com/0/222072/62b93526-9bea-6562-a363-59cbcb9429e9.png)
|
|![スクリーンショット 2018-03-17 21.29.07.png](https://qiita-image-store.s3.amazonaws.com/0/222072/b452ae79-df8d-6031-6dee-97010c09f697.png)|
|![スクリーンショット 2018-03-17 21.39.08.png](https://qiita-image-store.s3.amazonaws.com/0/222072/a68118aa-84f0-73a4-5b1c-c3a49cc7f7d7.png)|
|完成！|
チュートリアルを読むだけでも勉強になります。チュートリアルの存在は後から知りました。
本当はもっと詳しく書きたいけれど記事の投稿が遅くなりそうなので、気が向いた時に、詳しく書きたいと思います:tired_face:

## 終わりに
N予備校とMapboxを使うと:bangbang:
Webアプリ、チョットできると言える:wink:
今まで見えなかった情報が見えて、新しい発見ができるかも:relaxed:
webアプリをこれから作るぞという初心者の参考になれば幸いです。

|![スクリーンショット 2018-03-17 22.34.51.png](https://qiita-image-store.s3.amazonaws.com/0/222072/105739f0-af13-2bdf-00dc-d17448cf2ae4.png)|
|:--:|
|公式のドキュメント見ながら、いろいろ遊ぶ習慣ができました:airplane:|