我正在尝试将我的 kml 样式移动到外部文档以与 OpenLayers 一起使用。当这些样式直接包含在 kml 文件中时,它们就会起作用。
起初我以为我可以使用直接的 kml 和 styleUrl 标签来实现此目的:
<styleUrl>http://localhost/map.kml#myIcon</styleUrl>
但是,当我尝试这样做时,map.kml 文件永远不会被请求,并且标记不会显示。我已经验证 styleUrl 网址有效。
我正在使用以下方式加载我的 KML:
new OpenLayers.Layer.GML('Name', 'kml_path', {
format: OpenLayers.Format.KML,
formatOptions: {
extractStyles: true,
extractAttributes: true
},
projection: map.displayProjection
});
OpenLayers.Format.KML API 中有一些名为“styles”和“styleBaseUrl”的诱人选项,但我找不到任何有关它们的用途或如何使用它们的文档。有人有这方面的经验吗?
最佳答案
一种方法是,拥有一个带有样式的单独的 SLD 外部文件,并将其应用到您的 GML 图层。
查看 SLD OpenLayers 代码示例 http://openlayers.org/dev/examples/sld.html只需将示例图层替换为您的图层并替换 sld-tasmania.xml 文件中的样式即可。这样,您就不需要 formatOptions 中的 extractStyles 选项。
关于kml - 具有外部样式的 openlayers kml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5461437/