Openlayers: feature.get возвращает путь атрибутов - PullRequest
0 голосов
/ 06 марта 2019

У меня есть карта открытых слоев с точечным слоем, который при нажатии на элемент открывает всплывающее окно. Внутри всплывающего окна я показываю интерактивную ссылку, которая должна привести к URL-адресу, который хранится в таблице атрибутов слоя.

Но если я щелкну слой, откроется ссылка на путь типа "C: / Users / user /.../ URL". URL-адрес - это все, что мне нужно, но браузер также открывает путь к месту сохранения проекта.

Мой код:

map.on('click', function(event) {
var feature = map.forEachFeatureAtPixel(event.pixel, function(feature, layer) {
    if (layer === knoten) {
        return feature;
    }
});
if (feature != null) {
    var pixel = event.pixel;
    var coord = map.getCoordinateFromPixel(pixel);
    popup.setPosition(coord);
    $(elementPopup).attr('data-content', '<b>1: </b>' + '&ensp;' + feature.get('ERHEB_NR') +
        '</br><b>2: </b>' + '&emsp;&emsp;&nbsp;&nbsp;' + '<a id="link" target="_blank" rel="noopener noreferrer">Link</a>');
    $(elementPopup).popover({'placement': 'top', 'html': true});
    $(elementPopup).popover('show');

    document.getElementById('link').href = feature.get('KATASTER')
}
else {
    $(elementPopup).popover({'html': true});
    $(elementPopup).popover('hide');
}
});

Если я заменим '<a id="link" target="_blank" rel="noopener noreferrer">Link</a>' на feature.get('KATASTER'), появится правильная ссылка (но, поскольку она не находится внутри оператора, она не активна).

1 Ответ

0 голосов
/ 06 марта 2019

А как насчет инициализации popever с опцией content, вместо обновления только ссылки?

map.on('click', function(event) {
    var feature = map.forEachFeatureAtPixel(event.pixel, function(feature, layer) {
        if (layer === knoten) {
            return feature;
        }
    });
    // Always hide the popover
    $(elementPopup).popover('hide');
    if (feature != null) {
        var pixel = event.pixel;
        var coord = map.getCoordinateFromPixel(pixel);
        popup.setPosition(coord);

        $(elementPopup).popover({
           placement: 'top',
           animation: false,
           html: true,
           trigger: 'focus',
           title: "",
           content: '<b>1: </b>' + '&ensp;' + feature.get('ERHEB_NR') +
    '</br><b>2: </b>' + '&emsp;&emsp;&nbsp;&nbsp;' + '<a id="link" target="_blank" href="'+feature.get('KATASTER')+'" rel="noopener noreferrer">Link</a>'
        });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...