dayjournal memo

Total 963 articles!!

Turf.js #014 – ラインオフセット

Yasunori Kirimoto's avatar


画像



ラインをオフセットするメモ。



画像



script.js

// MIERUNE MONO読み込み
var map = new mapboxgl.Map({
    container: "map",
    style: {
        version: 8,
        sources: {
            m_mono: {
                type: "raster",
                tiles: ["https://tile.mierune.co.jp/mierune_mono/{z}/{x}/{y}.png"],
                tileSize: 256
            }
        },
        layers: [{
            id: "m_mono",
            type: "raster",
            source: "m_mono",
            minzoom: 0,
            maxzoom: 18
        }]
    },
    center: [139.770, 35.676],
    zoom: 13
});


map.on("load", function () {
    // ライン取得
    var line = turf.lineString([[139.7506, 35.6611], [139.7648, 35.6736], [139.7689, 35.6854]]);

    // ライン表示
    map.addSource("LineSample", {
        type: "geojson",
        data: line
    });
    map.addLayer({
        id: "LineSample",
        type: "line",
        source: "LineSample",
        layout: {
            "line-join": "round",
            "line-cap": "round"
        },
        paint: {
            "line-color": "#1253A4",
            "line-width": 5,
            "line-opacity": 0.6
        }
    });

    // ラインオフセット
    var options = {
        units: "kilometers"
    };
    var offsetLine = turf.lineOffset(line, 0.5, options);

    // ライン表示
    map.addSource("NextLineSample", {
        type: "geojson",
        data: offsetLine
    });
    map.addLayer({
        id: "NextLineSample",
        type: "line",
        source: "NextLineSample",
        layout: {
            "line-join": "round",
            "line-cap": "round"
        },
        paint: {
            "line-color": "#8DCF3F",
            "line-width": 5,
            "line-opacity": 0.6
        }
    });

});

// コントロール関係表示
map.addControl(new mapboxgl.NavigationControl());



Turf.jsを手軽に始めるビルド環境公開しています。
turfjs-starter



book

Q&A