Cussiumオフライン応用を快速に構築する
2361 ワード
CussiumはGISアプリケーションを構築するためのJavascriptオープンソースライブラリであり、Cussiumに基づいてオフラインを迅速に構築するGISアプリケーションdemoを実現します.このアプリケーションはオフラインで地図画像と地形の起伏情報を見ることができます.つまり、オフラインデータセットの2つの部分が含まれています. map imagry terran dataset 地図の映像はたくさんのルートがあります.地図のダウンロード機を使ってダウンロードできます.自分で作るのがおっくうなら、これは全世界の0-7級の地図のテスト映像です.
地形データセットはSRTMオープンデータに基づいて作成され、dockerのこのイメージ:tumgis/ctb-quantizd-meshを使って
オフラインの地図と地形データ集があったら、コードを書いてもいいです.下にnodeに基づいて簡単なサーバーdemoを作ります.
ディレクトリ構造は以下の通りです.
地形データセットはSRTMオープンデータに基づいて作成され、dockerのこのイメージ:tumgis/ctb-quantizd-meshを使って
Quantized-Mesh
形式のデータセットを作成し、SRTMのデータsrtm_56_05(嘉峪関市空港近く)を例に、地形データ集を作成する手順は私のこの文章を参考にしてください.オフラインの地図と地形データ集があったら、コードを書いてもいいです.下にnodeに基づいて簡単なサーバーdemoを作ります.
ディレクトリ構造は以下の通りです.
.
├── node_modules
│ ├── .....
├── package-lock.json
├── package.json
├── public
│ ├── js
│ ├── map
│ ├── terrain
├── server.js
└── views
└── index.html
server.jsのコード例は以下の通りです.let express = require("express")
let url = require('url')
let path = require('path')
let app = express()
let options = {
maxAge: 3600000
};
//
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
next();
});
//
app.use(function (req, res, next) {
// , heightMap Quantized-Mesh
let filePath = path.join(__dirname, url.parse(req.url).pathname);
let pathTmep = path.extname(filePath)
if (pathTmep === '.terrain') {
res.set({
'Content-Type': 'application/octet-stream',
'Content-Encoding': 'gzip',
});
// Content-Disposition: attachment;filename=2948.terrain
res.set('Content-Disposition', 'attachment;filename='+path.basename(filePath))
}
next();
})
app.get("/", function (req, res, next) {
res.sendFile(path.join(__dirname + '/views/index.html'));
})
// , http
app.use(express.static(__dirname + "/node_modules/cesium/Build", options));
app.use(express.static(__dirname + "/public", options));
//
app.use(function (req, res, next) {
res.status(404).send('So sorry, we cannot find that!');
})
app.listen("8080", "localhost")
これは完全なデモです.ダウンロードしてnpm install & node server.js
have fun.