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 elevationvớ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 colorvà truyền vào elevationgiá 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 getColortrả 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/