Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openlayers 3 OpenLayer 3读取KML/文档/名称_Openlayers 3 - Fatal编程技术网

Openlayers 3 OpenLayer 3读取KML/文档/名称

Openlayers 3 OpenLayer 3读取KML/文档/名称,openlayers-3,Openlayers 3,有没有办法读取KML/Document/name来在OpenLayers 3地图中设置图层标题 我有一些动态的KML层,我想阅读KML层本身的标题 我目前正在使用这样的代码来加载我的KML层 layer = new ol.layer.Vector({ source: new ol.source.Vector({ url: kmlurl, format: new ol.format.KML({ extractStyles: true

有没有办法读取KML/Document/name来在OpenLayers 3地图中设置图层标题

我有一些动态的KML层,我想阅读KML层本身的标题

我目前正在使用这样的代码来加载我的KML层

layer = new ol.layer.Vector({
    source: new ol.source.Vector({
        url: kmlurl,
        format: new ol.format.KML({
           extractStyles: true
        })
    })
});

map.addLayer(layer);
目前正在使用OL 3.6.0。 是否有任何事件可以挂接到原始KML中,以便手动解析它


谢谢

使用jQuery就可以做到这一点。使用以下代码

代码获取标记为“Folder”的第一个元素,并给出名为“name”的第一个标记的内容

var url = 'data/my_kml_file.kml';   // your kml file 
var elemTagName = 'Folder';         // the element you want the name

// jQuery
$.get( url , function( kmlDatas ) {

    var myElem = kmlDatas.getElementsByTagName( elemTagName )[0];
    var myElemName = myElem.getElementsByTagName( "name" )[0].innerHTML;

    console.info( "KML " + elemTagName  + " name: " + myElemName );
});
“elemTagName”的值为“Folder”,因为我在KML文件的“Document”中没有看到“name”标记。取而代之的是一个“文件夹”>“名称”


如果您真的想使用“Document”>“name”,只需将elemTagName替换为“Document”。

我认为目前查看代码不可能做到这一点,但欢迎使用。我编辑了这个问题,添加了一个用于加载KML数据的代码的简化示例。是否有任何事件可用于手动解析KML?