OL 4 - 只有第一个标记(功能)处于活动状态,为什么?

时间:2018-06-05 16:40:44

标签: javascript openlayers

我是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新手

1 个答案:

答案 0 :(得分:1)

你的代码很好。坐标不是。

有效坐标在[-180; 180]范围内。你的位置2点在

 var lon = 291.620235443;

将其设为

var lon = 291.620235443 - 360;

它会起作用。

如果您使用浏览器调试器,您会看到,对于当前地图,为#2点调用了函数map.on('singleclick', function(event) {...});,但在此位置未找到任何功能。