javascript - Openlayers:feature.get 返回属性路径
问题描述
我有一个带有点图层的 openlayers 地图,单击某个要素会打开一个弹出窗口。在弹出窗口中,我显示了一个可点击的链接,该链接应该指向存储在图层属性表中的 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>' + ' ' + feature.get('ERHEB_NR') +
'</br><b>2: </b>' + '   ' + '<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')
正确的链接(但因为它不在语句内,所以它是不可点击的)。
解决方案
用该选项初始化弹出框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>' + ' ' + feature.get('ERHEB_NR') +
'</br><b>2: </b>' + '   ' + '<a id="link" target="_blank" href="'+feature.get('KATASTER')+'" rel="noopener noreferrer">Link</a>'
});
});
推荐阅读
- python - 使用 Pandas 在 Python 中提取相同的命名值
- typo3 - TYPO3 8.7 更新子元素 m:n 不起作用
- ios - UITableViewController.tableView=nil 创建子类并覆盖 loadView()
- java - 如何在 Eclipse IDE 中调试基于 Play java 的应用程序?
- timeout - 使用“-n”选项时的“rsh”超时
- sql - 分析 SQL 查询
- python - C++程序的Python文本解析器?
- python - 逐字节读取二进制数据并使用python提取数据
- jit - Android 7.0 Nougat - 在 ART 中检查 AOT 和 JIT 编译
- robotframework - 我们如何在机器人框架中运行特定的测试用例