gpt4 book ai didi

leaflet - 在折线上创建缓冲区 - Leaflet

转载 作者:行者123 更新时间:2023-12-05 06:15:44 25 4
gpt4 key购买 nike

我正在尝试实现类似于 Leaflet.buffer 的缓冲区在我的 map 上。然而,Leaflet.buffer 似乎只适用于 Leaflet.Draw。

我正在使用 Leaflet Editable绘制我的图层,我有一条多段线,我想添加一个缓冲区。但是,我找不到任何插件可以完成这项工作。

我知道我可以用 Turf 创建一个缓冲区@缓冲区:

let lineString = turf.lineString(coordArr);
let bufferedLine = turf.buffer(lineString, 0.5, {units: 'miles'});

但我希望它类似于 Leaflet.buffer这样您就可以在 map 上滑动缓冲区。 (更加用户友好)

有没有办法通过使用 Turf.js 来实现?与 Leaflet.Editable

最佳答案

您可以使用 Turf.js 的缓冲模块来执行此操作。您在多段线周围创建一个缓冲区,并在传单 map 上绘制生成的 geojson。这是一个工作示例。

var center = [37.78791180770003, -122.40962505340575];

var map = L.map('map').setView(center, 14);;

L.tileLayer(
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 18
}).addTo(map);


var line = {
"type": "Feature",
"properties": {
"color": "blue"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-122.40447521209718,
37.79367718768535
],
[-122.40803718566895,
37.79171022624846
],
[-122.40769386291502,
37.79096412372944
],
[-122.40662097930908,
37.789641468930114
],
[-122.40941047668457,
37.789675383451495
],
[-122.40992546081543,
37.78875968591083
],
[-122.40962505340575,
37.78791180770003
]
]
}
};



L.geoJSON(line, {
style: function(feature) {
return {
color: feature.properties.color
};
}
}).addTo(map);

var polygon = turf.buffer(line, 0.5, {
units: 'miles'
});

L.geoJSON(polygon, {
style: function(feature) {
return {
color: feature.properties.color
};
}
}).addTo(map);
#map {
height: 300px;
}
<script src="https://npmcdn.com/@turf/turf/turf.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.js"></script>
<div id="map"></div>

关于leaflet - 在折线上创建缓冲区 - Leaflet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62350830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com