如何将超链接添加到通过传单创建的传单多段线.Draw

How do you add hyperlinks to Leaflet polylines created via Leaflet.Draw?

本文关键字:创建 单多段 Draw 单创建 添加 超链接      更新时间:2023-09-26

我正在使用Leaflet.Draw,我想允许我画的线中有超链接,这样有人可以点击链接并打开新页面。

如何向通过传单创建的多段线添加链接。Draw?当我将layer添加到drawnItems时,如何为该层提供另一个可以是URL的属性?

var map = L.map('map').setView([-41.2858, 174.78682], 14);
    mapLink = 
        '<a href="http://openstreetmap.org">OpenStreetMap</a>';
    L.tileLayer(
        'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
        attribution: '&copy; ' + mapLink + ' Contributors',
        maxZoom: 18,
        }).addTo(map);
    var drawnItems = new L.FeatureGroup();
    map.addLayer(drawnItems);
    var drawControl = new L.Control.Draw({
        edit: {
            featureGroup: drawnItems
        }
    });
    map.addControl(drawControl);
    map.on('draw:created', function (e) {
        var type = e.layerType,
            layer = e.layer;
        drawnItems.addLayer(layer);
    });

单击绘制的特征后,以下内容将打开一个新页面:

map.on('draw:created', function (e) {
    var type = e.layerType,
        layer = e.layer;
    layer.on('click', function(){
       window.open('http://www.example.com','_blank');
    });  
    drawnItems.addLayer(layer);
});

这将绑定一个弹出与网址:

map.on('draw:created', function (e) {
    var type = e.layerType,
        layer = e.layer;
    layer.bindPopup('<a href="http://www.example.com">example</a>');
    drawnItems.addLayer(layer);
});

但不确定你到底在追求什么;您可能需要为该问题添加更多信息。通常,"draw:created"回调是添加此功能的地方。