Cesiumとは
Cesium(英:síːziəm:スィーズィアム,日:セシウム)とは、Java Scriptで動くウェブブラウザ上のバーチャル地球儀に情報を可視化するプラットフォームです。また、無料の地図を使っているので、フリーでしようできます。
かつての、Google Earth APIのような存在です。(残念ながら、Google Earth APIは2015年に廃止されました.)
Cesiumでつくったもの
DaVinci Resolveで再編集してみました。無料ですが、わりといいソフトです。FlightPath RJTT34R https://t.co/BgO0hraOTR
— KG🌧️XR: REALよりREAL (@Keijipoon) 2019年3月2日
デモ
公式が公開してくれているデモです。
CesiumJS Demos
世界中の開発者のデモがあるのでとても参考になります。
(CejiumのWebサイトより引用)開発環境構築
今回はWindowsでの環境構築を説明していきます。
1.Node.jsのインストール
今回使用するCesiumはローカルサーバーを立てて、そこで処理を行い描画するため、Node.jsが必要になります。
(JavaScript は、もともとブラウザー側で解釈して、実行するクライアントサイドの言語ですが、Node.js を使うとローカル上で JavaScript を実行できるようになります。)
公式ダウンロードサイト
https://nodejs.org/en/download/
ダウンロードしたインストーラーをクリックすると、インストールが始まります。
2.npm: パッケージ管理ツール
Node.jsのパッケージ管理ツールであるnpmとはnode package managerの略称である。
RubyならGemsというパッケージ管理ツール。
MacOSなら、homebrewというパッケージ管理ツールといった形で、何を使うかでパッケージ管理ツールも変わってくる。
mkdir cesium-project
cd cesium-project
npm init -y
npm init とは → https://techacademy.jp/magazine/16151
npm init -y
とすると、package.jsonというファイルが生成される。
-yはyesを意味しており、「対話形式の答えを全部yesでpackage.jsonを生成する」ことを意味している。
このファイルを、editerで開くと のdependencies のところにあるパッケージがインストールされる。以下の例では、 deck.gl、reactなどがインストールされる。
一例:
"dependencies": {
"d3-request": "^1.0.5",
"deck.gl": "^6.2.0",
"react": "^16.3.0",
"react-dom": "^16.3.0",
"react-map-gl": "^3.3.0"
},
3.Cesiumのインストール
nmpをダウンロードしたので
コマンドプロンプトから
npm install cesium --save
として,ダウンロードしましょう.
あるいは、
公式ページからのダウンロード
https://cesiumjs.org/downloads/
https://cesium.com/downloads/
4.ファイルの準備
以下の3つのファイルを自分で作ります。
(ダウンロードされたファイルの中には用意されていません.)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>cesium</title>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no">
<link rel="stylesheet" href="node_modules/cesium/Build/Cesium/Widgets/widgets.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="cesium" class="cesium"></div>
<script src="node_modules/cesium/Build/Cesium/Cesium.js"></script>
<script src="main.js"></script>
</body>
</html>
body {
margin: 0;
}
.cesium {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
(function() {
"use strict";
var viewer = new Cesium.Viewer("cesium");
//初期の視点(カメラ)の位置 日本の上空にカメラが来るように設定。
viewer.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(138, 29, 4000000),
orientation: {
heading: 0, // 水平方向の回転度(ラジアン)
pitch: -1.4, // 垂直方向の回転度(ラジアン) 上を見上げたり下を見下ろしたり
roll: 0
}
});
}());
node_modulesの中に,地球儀を表示するためのデータなどが入っています.ちなみに,index.html ファイルから,node_modulesフォルダ内のファイルを参照しているので,階層を変えた場合には,index.htmlを修正する必要が出てきます.
5.Cesiumの起動
まずは,開発用にローカルサーバーを立てます。Node.jsを導入してるので、npmで導入できる st が一番簡単だと思います。機能としては、静的ファイルサーバーを提供するモジュールです。
stをターミナルで使えるようにするために、まずはstをグローバルにインストールします。
npm i st -g
:npmで stを globalに install
そして、以下のコマンドでサーバーを起動します。
st -nc -i index.html
ちなみに,st は Static file server、 -nc は no cache でキャッシュを残さないように. -i は, index という名前のファイルに対してというオプションです.
その他のst の詳しいオプション等については以下を参照してください.
https://www.npmjs.com/package/st
ここまで準備できたら、index.htmlファイルをクリックして起動してみましょう。
(または、ローカルサーバーのurlを貼り付けてください。)
日本が真ん中にきて、このように表示されます。
この後は、Cesium上に、情報を可視化していきましょう。
6.CZML形式のデータを作成しよう
Cesiumでは、xml,kml,czmlなどの形式のデータを地球儀上にのっけることができます。
ここでは、CZMLで解説していきます。
CZMLとは、
- Cesiumでの空間データの表現に適したデータ形式
- JSON形式を基本としているため、軽量
- 3次元のデータや時間データの表現が多彩
のため、この形式のデータを作成しましょう。
以下のURLにサンプルが載っているので参考にしましょう。
https://gis-oer.github.io/gitbook/book/materials/web_gis/CZML/CZML.html
この形式で書いた czmlファイルを
Jsonきれい https://tools.m-bsys.com/development_tooles/json-beautifier.php
や
JSON Editor Online https://jsoneditoronline.org/
などの形式を整えてくれるアプリでチェックしてみましょう.
また
cesium viewer
https://cesiumjs.org/Cesium/Build/Apps/CesiumViewer/
を利用すると、czmlファイルをきちんとかけているかチェックができます。
まとめ
これだけのことができる Digital Earth が無料で使用できます.最初の設定はなれていないと少し難しいかもしれませんが,かなりコスパがいいと思います.ぜひ使ってみてはいかがでしょうか.