Mapbox GL JSとwebpackでビルド環境を構築したメモ。Mapbox GL JSのバージョンはv1.13.0を利用。
GitHubでも公開しています。Mapbox GL JSでのビルド環境を手軽に始めたい方ぜひご利用ください。
Mapbox GL JSは、WebGLを利用したオープンソースのマップクライアントライブラリです。Leafletよりもベクトルを軽快に表示することが特徴です。
ディレクトリ構成
package.json
{
"name": "mapboxgljs-starter",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"build": "webpack",
"dev": "webpack-dev-server"
},
"keywords": [],
"author": "Yasunori Kirimoto",
"license": "ISC",
"devDependencies": {
"webpack": "^3.10.0",
"webpack-dev-server": "^2.7.1"
},
"dependencies": {
"css-loader": "^0.28.7",
"file-loader": "^1.1.5",
"mapbox-gl": "^0.45.0",
"style-loader": "^0.19.0",
"url-loader": "^0.6.2"
}
}
webpack.config.js
var webpack = require("webpack");
module.exports = {
entry: './_resouce/main.js',
output: {
path: __dirname + '/dist',
filename: 'app.js'
},
module: {
rules: [
{
test: /\.css$/,
loaders: ['style-loader', 'css-loader']
},
{
test: /\.(png|svg|jpg|gif)$/,
use: {
loader: 'url-loader',
options: {
name: './dist/img/icon/[name].[ext]'
}
}
}
]
},
plugins: [
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false,
comparisons: false
}
}),
new webpack.ProvidePlugin({
mapboxgl: 'mapbox-gl'
})
],
devServer: {
contentBase: __dirname + '/dist',
publicPath: '/',
watchContentBase: true,
open: true
}
};
./_resouce
main.js
// CSS一式を読み込んでパッケージ
import "mapbox-gl/dist/mapbox-gl.css";
import "./css/style.css";
// JS一式を読み込んでパッケージ
import './js/script.js';
./_resouce/css
style.css
html, body {
height: 100%;
padding: 0;
margin: 0;
}
#map {
z-index: 0;
height: 100%;
}
./_resouce/js
script.js
//MIERUNE MONO読み込み
var map = new mapboxgl.Map({
container: "map",
style: {
"version": 8,
"sources": {
"MIERUNEMAP": {
"type": "raster",
"tiles": ['https://tile.mierune.co.jp/mierune_mono/{z}/{x}/{y}.png'],
"tileSize": 256
}
},
"layers": [{
"id": "MIERUNEMAP",
"type": "raster",
"source": "MIERUNEMAP",
"minzoom": 0,
"maxzoom": 18
}]
},
center: [139.767, 35.681],
zoom: 11
});
//コントロール関係表示
map.addControl(new mapboxgl.NavigationControl());
./dist
app.jsは自動でビルド
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MapboxGLJS Starter</title>
</head>
<body>
<div id="map"></div>
<script src="./app.js"></script>
</body>
</html>
ファイルの準備ができたら対象ディレクトリでコマンド実行
パッケージインストール
npm install
ビルド
npm run build
開発
npm run dev
- 参考文献
Mapbox GL JS
webpack