Chuyển đổi bản nhạc GPX của bạn thành GeoJSON với QGIS.
Hãy nói rằng GeoJSON của bạn trông như thế này. GeoJSON có một thuộc tính elevation
với giá trị của độ cao.
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 ], ] } }
];
Thêm GeoJSON của bạn với mã sau vào bản đồ tờ rơi của bạn. Sử dụng một chức năng để định kiểu tệp của bạn. Phần "color"
tử gọi hàm get color
và truyền vào elevation
giá trị của tính năng của bạn dưới dạng tham số.
L.geoJson(yourGeoJSON, {
style: function (feature) {
return {
"color": getColor(feature.properties.elevation),
"opacity": 1,
}}
}).addTo(map);
Hàm getColor
trả về màu dựa trên giá trị độ cao.
function getColor(x) {
return x < 500 ? '#bd0026':
x < 1000 ? '#f03b20':
x < 1500 ? '#fd8d3c':
x < 2000 ? '#fecc5c':
'#ffffb2' ;
};
Tôi đã tạo một JSFiddle với GeoJSON mẫu và các hàm được mô tả ở trên: http://jsfiddle.net/2VY5z/1/