【问题标题】:How to add the KML layer for Openlayers switcher?如何为 Openlayers 切换器添加 KML 层?
【发布时间】:2021-08-11 11:13:46
【问题描述】:

如何通过ol-ext Viglino向切换器添加 KML 层?

当我添加时:

var vectorSource = new ol.layer.Vector({
  source: new ol.source.Vector({
  url: "IG1.kml",
  format: new ol.format.KML()
})

图层未显示在地图上。

【问题讨论】:

    标签: javascript html dictionary openlayers kml


    【解决方案1】:

    要出现在图层切换器中,图层必须具有标题属性

    var vectorSource = new ol.layer.Vector({
      title: "KML Layer",
      source: new ol.source.Vector({
        url: "IG1.kml",
        format: new ol.format.KML()
      })
    })
    

    如果图层未显示在地图上,请检查您的服务器 MIME 类型中是否启用了 .kml 扩展。

    【讨论】:

    • "title" 不是必需的,但我添加了。还是不行。在哪里检查扩展是否启用? KML 文件正在处理openlayers.org/en/latest/examples/drag-and-drop-custom-kmz.html
    • 你能通过网络浏览器打开kml吗?例如http://myserver.com/path/IG1.kml
    • 我在geologie.tk/IG1.kml 上的 KML,当我打开这个 URL 时,KML 被下载。
    • 下载的文件被压缩。您可以使用示例中的自定义格式将其视为 KMZ,或者将下载的文件重命名为 .zip,提取 doc.kml 文件并将其复制到您的服务器。
    • 复制到您自己的服务器是最佳选择,因为该链接未启用 CORS。
    【解决方案2】:

    试试:

    import KML from 'ol/format/KML';
    import VectorSource from 'ol/source/Vector';
    import {Vector as VectorLayer} from 'ol/layer';
    
    const vector = new VectorLayer({
      source: new VectorSource({
        url: 'IG1.kml',
        format: new KML(),
      }),
    });
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多