OL 4 - 只有第一个标记(功能)处于活动状态,为什么?
OL 4 - Only first marker (feature) is active, why?
我完全是 OL 的初学者 - 只是一个家谱网站所有者,试图保存我所依赖的地图,G**gle 在 6 月 11 日切断了我的联系。"No CC info = No maps..."
除最基本的地图外,所有地图都可见且有效。
我正在使用 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 into something that works really nice - example: https://xerxx.se/heattest.html
每个单一位置标记都显示信息,所以我尝试构建这样的基本地图(读取 .kml 字符串),但它也只是第一个标记 "active"。 (而且我无法获得不同颜色的标记)
拜托:谁能解释一下我如何才能像热图中那样激活所有标记 - 我很绝望:我不想给 G**gle 我的 CC 信息!
我不再需要 JS alert() - 弹出窗口 ("text balloons") 可以稍后添加。
提前致谢,
Erik - 100% OL新手
你的代码没问题。坐标不是。
有效坐标在 [-180;180] 范围内。您的位置 2 点位于
var lon = 291.620235443;
设置为
var lon = 291.620235443 - 360;
它会起作用。
如果您使用浏览器调试器,您会看到,对于当前地图,为点 #2 调用了函数 map.on('singleclick', function(event) {...});
,但在此位置未找到任何要素。
我完全是 OL 的初学者 - 只是一个家谱网站所有者,试图保存我所依赖的地图,G**gle 在 6 月 11 日切断了我的联系。"No CC info = No maps..."
除最基本的地图外,所有地图都可见且有效。
我正在使用 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 into something that works really nice - example: https://xerxx.se/heattest.html
每个单一位置标记都显示信息,所以我尝试构建这样的基本地图(读取 .kml 字符串),但它也只是第一个标记 "active"。 (而且我无法获得不同颜色的标记)
拜托:谁能解释一下我如何才能像热图中那样激活所有标记 - 我很绝望:我不想给 G**gle 我的 CC 信息!
我不再需要 JS alert() - 弹出窗口 ("text balloons") 可以稍后添加。
提前致谢,
Erik - 100% OL新手
你的代码没问题。坐标不是。
有效坐标在 [-180;180] 范围内。您的位置 2 点位于
var lon = 291.620235443;
设置为
var lon = 291.620235443 - 360;
它会起作用。
如果您使用浏览器调试器,您会看到,对于当前地图,为点 #2 调用了函数 map.on('singleclick', function(event) {...});
,但在此位置未找到任何要素。