我是OL的初学者 - 只是一个家谱网站所有者试图保存我依赖的地图,从G ** gle在6月11日切断我。“没有CC信息=没有地图......” / p>
除最基本的地图外,所有地图都可见且有效。
我正在使用OL 4.6.5。以下是该地图的示例:https://xerxx.se/clicktest.html
我的问题是只有第一个标记对鼠标点击和悬停做出反应。我尝试过这个在这个网站上找到的解决方案:
map.on('singleclick', function(event) {
map.forEachFeatureAtPixel(event.pixel, function(feature,layer) {
alert("A SC NAME = *"+feature.get('name')+"*");
});
});
/*
map.on('singleclick', function(e) {
var iconFeatureA = map.getFeaturesAtPixel(e.pixel);
if (iconFeatureA !== null) {
var name = iconFeatureA[0].get("name");
alert("B SC NAME = *"+name+"*");
e.preventDefault(); // avoid bubbling
}
});
*/
该示例中当前使用了第一个片段
我设法将此处的热图示例https://openlayers.org/en/latest/examples/earthquake-clusters.html转换为可行的非常好 - 示例:https://xerxx.se/heattest.html
每个单一位置标记显示信息,所以我尝试构建基本地图(读取.kml-string),但它也只是第一个“活动”的标记。 (我无法获得不同颜色的标记)
请:有人可以解释我如何让所有标记都像热图一样活跃 - 我很绝望:我不想给G ** gle我的CC信息!
我不再需要JS警报() - 弹出窗口(“文本气球”)可以在以后添加。
提前谢谢,
Erik - 100%OL新手
答案 0 :(得分:1)
你的代码很好。坐标不是。
有效坐标在[-180; 180]范围内。你的位置2点在
var lon = 291.620235443;
将其设为
var lon = 291.620235443 - 360;
它会起作用。
如果您使用浏览器调试器,您会看到,对于当前地图,为#2点调用了函数map.on('singleclick', function(event) {...});
,但在此位置未找到任何功能。