javascript - 如何将超链接添加到通过 Leaflet.Draw 创建的 Leaflet 折线?

标签 javascript leaflet openstreetmap

我正在使用 Leaflet.Draw,并且我希望允许我绘制的线条包含超链接,以便其他人可以单击该链接并打开新页面。

如何将链接添加到通过 Leaflet.Draw 创建的折线?当我将Layer添加到drawItems时,如何为该层提供另一个可以是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);
});

这将绑定(bind)一个带有 url 的弹出窗口:

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”回调是您添加此功能的地方。

关于javascript - 如何将超链接添加到通过 Leaflet.Draw 创建的 Leaflet 折线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29357814/

相关文章:

javascript - Bootstrap-vue 延迟加载显示旧图像

javascript - 使用 onBlur 隐藏表单,但这与提交按钮有冲突

javascript - 如何传递对象上下文

angularjs - Angular-Leaflet 热图数据更新

javascript - 使用 OpenLayers 在 OSM 中显示自定义本地镜像标记

c++ - 在 C++ 中处理 OpenStreetMaps (OSM)

javascript - 每次点击后增加的数字?

javascript - Leaflet JS 中的多个圆圈

javascript - 如何在平铺图像上绘制圆形或矩形 leaflet.js

leaflet - 缩放以适合 leaflet.js 标记