首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >buffer TurfJS的Leaflet控制层

buffer TurfJS的Leaflet控制层
EN

Stack Overflow用户
提问于 2021-04-28 21:50:03
回答 1查看 54关注 0票数 1

如何从turf js到我的控制层创建buffer?

下面是我的buffer代码:

代码语言:javascript
复制
var Transportasi = L.geoJSON(geojsonPointSarprasTransportasi, {
            
            pointToLayer: function (feature, latlng) {
                return L.marker(latlng, {
                    icon: IconTransportasi
                }).bindTooltip(feature.properties.nama_sarpras);
            },
            onEachFeature: function (feature, latlng) {
                var bufferedtransportasi = turf.buffer(feature, 10, {units: 'kilometers'});
                L.geoJSON(bufferedtransportasi).addTo(map)
            }
            
        }).addTo(map);

这是我的控制层代码。我想要到我的控制层的layer bufferedtransportasi:

代码语言:javascript
复制
var baseLayers = {
        "OpenStreetMap": LayerKita,
        "OpenCycleMap": L.tileLayer('http://{s}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png'),
        "Outdoors": L.tileLayer('http://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png')
    };

    var overlays = {
        "Sekolah": Sekolah,
        "Kesehatan": Kesehatan,
        "Transportasi": Transportasi
    };

    L.control.layers(baseLayers, overlays).addTo(map);
EN

回答 1

Stack Overflow用户

发布于 2021-04-28 22:01:18

如果您想要一起启用/禁用所有缓冲层,您需要将它们添加到LayerGroup,然后将LayerGroup添加到layer控件:

代码语言:javascript
复制
var bufferGroup = L.featureGroup().addTo(map);
var Transportasi = L.geoJSON(geojsonPointSarprasTransportasi, {
            
            pointToLayer: function (feature, latlng) {
                return L.marker(latlng, {
                    icon: IconTransportasi
                }).bindTooltip(feature.properties.nama_sarpras);
            },
            onEachFeature: function (feature, latlng) {
                var bufferedtransportasi = turf.buffer(feature, 10, {units: 'kilometers'});
                L.geoJSON(bufferedtransportasi).addTo(bufferGroup)
            }
            
        }).addTo(map);


var overlays = {
        "Sekolah": Sekolah,
        "Kesehatan": Kesehatan,
        "Transportasi": Transportasi,
        "Buffer": bufferGroup
    };

L.control.layers(baseLayers, overlays).addTo(map);

若要将每个缓冲区添加为自己的控件,请将buffer层添加到overlays对象:

代码语言:javascript
复制
    var overlays = {
        "Sekolah": Sekolah,
        "Kesehatan": Kesehatan,
        "Transportasi": Transportasi
    };

var Transportasi = L.geoJSON(geojsonPointSarprasTransportasi, {
            
            pointToLayer: function (feature, latlng) {
                return L.marker(latlng, {
                    icon: IconTransportasi
                }).bindTooltip(feature.properties.nama_sarpras);
            },
            onEachFeature: function (feature, latlng) {
                var bufferedtransportasi = turf.buffer(feature, 10, {units: 'kilometers'});
                var buffer = L.geoJSON(bufferedtransportasi).addTo(map)
                overlays[feature.properties.nama_sarpras] = buffer;
            }
            
        }).addTo(map);


 L.control.layers(baseLayers, overlays).addTo(map);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67301558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档