【发布时间】:2020-05-13 10:11:44
【问题描述】:
我使用leaflet.js 和leaflet.draw 让用户绘制一个跋涉的地图。当用户为跋涉画一条线时,它只保存纬度和经度值,我在其他网站上看到(看起来它使用相同的 librers)他们也在保存高度值。我怎么也能做到?用户画完线后的代码:
map.on('draw:created', function (event) {
var layer = event.layer,
feature = layer.feature = layer.feature || {};
feature.type = feature.type || "Feature";
var props = feature.properties = feature.properties || {};
drawnItems.addLayer(layer);
map.removeControl(drawControl);
$('#uploademap').attr('style', 'display:none;');
var str = JSON.stringify(drawnItems.toGeoJSON()).toString();
var hasil = $('#treck_leafletMap').val(str.substring(str.indexOf("coordinates") + 13, str.length - 4));
});
此外,在同一个网站上,他们在画布上绘制了高度图,并获得了路线的总爬升、下降和距离。 我现在使用鞋子高度图leaflet.heightgraph,但我不希望它出现在地图上,我希望它像指定网站一样出现在其他画布上。 知道该怎么做吗?
leaflet.heightgraph 的代码:
var hg = L.control.heightgraph();
hg.addTo(mymap);
hg.addData(FeatureCollections);
【问题讨论】:
-
您可以向 latlng 对象
L.latlng(49.5,-5.8,2)docs 添加高度,但传单没有关于高度的数据,因此您必须使用外部服务来获取它。当您将图层转换为geojson时,高度会“转换”为coordinates数组 -
我正在使用 leaflet.draw 让用户绘制路线。这就是您所说的“外部服务”?
-
不,您需要一个服务人员来为您提供该点的高度/高度。它们被命名为“海拔”,因此搜索
elevation api,然后为每个点加载海拔 -
你能给我举个例子吗?感觉有点复杂
标签: leaflet leaflet.draw