来自KML的标记中的文本在OL3中不显示

时间:2014-12-11 13:26:54

标签: openlayers-3

我正在将KML文件导入地图上的叠加层。

OL3在几何图形方面做得很好,但似乎忽略了应该显示的文本标签。

此代码段会竖起一个图钉,但不会像在Google地球和地图中那样在<name>元素中显示文字

<Placemark>
    <name>Text I want to show</name>
    <Point>
        <coordinates>-81.11918192120308,32.27372446636573,0</coordinates>
    </Point>
</Placemark>

1 个答案:

答案 0 :(得分:1)

KML规范中没有任何内容表明<name>的{​​{1}}标记应该与图钉或图标一起呈现 - Google只是选择以这种方式实现它。

如果您查看OpenLayers Swiss hotels KML示例,您可能会同意自动显示文本标签会使屏幕太忙。但是,使用<Placemark>函数在鼠标悬停时添加标签相当简单,就像在此kml earthquake例程中所做的那样,它将KML标记的name属性推送到info div中,就像你可以一样请参阅此代码段:

map.forEachFeatureAtPixel

因此,解析了var feature = map.forEachFeatureAtPixel(pixel, function(feature, layer) { return feature; }); if (feature) { info.tooltip('hide') .attr('data-original-title', feature.get('name')) .tooltip('fixTitle') .tooltip('show'); } else { info.tooltip('hide'); } 的{​​{1}}标记,但显示在OpenLayers中由设计而非缺陷留给您。