2015-03-30 3 views
1

Я использую Leaflet.Draw, и я хочу разрешить линии, которые я рисую, чтобы иметь гиперссылки в них, чтобы кто-то мог щелкнуть ссылку и открыть новую страницу.Как вы добавляете гиперссылки на полилинии листов, созданные через Leaflet.Draw?

Как добавить ссылку на полилинию, созданную через Leaflet.Draw? Когда я добавляю слой к 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); 
    }); 
+1

Это было разрешено по ссылке http://gis.stackexchange.com/questions/140909/how-do-you-add-hyperlinks-to-leaflet-polylines-created-via-leaflet-draw-crossp – PolyGeo

ответ

3

Следующие откроет новую страницу, когда нарисованная функция щелкнула:

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); 
}); 

Это будет связывать всплывающее окно с 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' - это место, где вы бы добавили эту функциональность.

+0

Спасибо @toms! Это имеет смысл. Я хочу, чтобы пользователи этой карты добавили ссылку в себя после того, как они поместили полилинию, но я должен был понять, что сам, возможно, использовал layer.bindPopup. – John

Смежные вопросы