QGISでGPXトラックをGeoJSONに変換します。
GeoJSONが次のようになっているとします。GeoJSONにはelevation
、標高の値を持つ属性があります。
var yourGeoJSON = [
{ "type": "Feature", "properties": { "id": 2, "elevation": 50 }, "geometry": { "type": "LineString", "coordinates": [ [ 11.836395263671875, 47.75317468890147 ], [ 11.865234375, 47.73193447949174 ] ] } },
{ "type": "Feature", "properties": { "id": 1, "elevation": 750 }, "geometry": { "type": "LineString", "coordinates": [ [ 11.865234375,47.73193447949174 ], [ 11.881027221679688, 47.700520033704954 ] ] } },
{ "type": "Feature", "properties": { "id": 0, "elevation": 1700 }, "geometry": { "type": "LineString", "coordinates": [ [ 11.881027221679688, 47.700520033704954 ], [ 11.923599243164062, 47.706527200903395 ] ] } },
{ "type": "Feature", "properties": { "id": 0, "elevation": 3000 }, "geometry": { "type": "LineString", "coordinates": [ [ 11.923599243164062, 47.706527200903395 ], [ 11.881027221679688, 47.700520033704954 ], ] } }
];
次のコードを使用して、GeoJSONをリーフレットマップに追加します。関数を使用してファイルをスタイルします。"color"
要素は、関数を呼び出すget color
とに渡すelevation
パラメータとしてあなたの機能の値。
L.geoJson(yourGeoJSON, {
style: function (feature) {
return {
"color": getColor(feature.properties.elevation),
"opacity": 1,
}}
}).addTo(map);
この関数getColor
は、標高値に基づいて色を返します。
function getColor(x) {
return x < 500 ? '#bd0026':
x < 1000 ? '#f03b20':
x < 1500 ? '#fd8d3c':
x < 2000 ? '#fecc5c':
'#ffffb2' ;
};
サンプルGeoJSONと上記の関数を使用してJSFiddleを作成しました:http ://jsfiddle.net/2VY5z/1/