使用 Geoxml3 将 kml 扩展数据加载到变量中

编程入门 行业动态 更新时间:2024-10-08 06:26:24
本文介绍了使用 Geoxml3 将 kml 扩展数据加载到变量中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我知道 Geoxml3 有一个内置功能可以将 kml extendeddata 加载到变量中(来自其源代码 - 见下文),但在解析后我找不到访问这些变量的方法.有谁知道怎么做?谢谢,干杯.

(kmz分支的geoxml3.js第544行):

//给变量添加扩展数据var extDataNodes = node.getElementsByTagName('ExtendedData');如果 (!!extDataNodes && extDataNodes.length > 0) {var dataNodes = extDataNodes[0].getElementsByTagName('Data');for (var d = 0; d < dataNodes.length; d++) {var dn = dataNodes[d];var name = dn.getAttribute('name');如果(!名称)继续;var dName = geoXML3.nodeValue(dn.getElementsByTagName('displayName')[0], name);var val = geoXML3.nodeValue(dn.getElementsByTagName('value')[0]);placemark.vars.val[name] = val;placemark.vars.display[name] = dName;}}

解决方案

geoxml3的kmz分支版本,扩展数据存放在placemark.vars.val

name: "Alvarães"百分位:29.8"总计:1699"

所以,这应该有效:

 var contentString = '

'+'<h1>'+地标.名称+'</h1>'+'fora da escola: '+placemark.vars.val.total+'<br>''百分比:'+placemark.vars.val.percentil+'</div>';多边形鼠标悬停(placemark.polygon,contentString);

I understand that Geoxml3 has a built in feature to load kml extendeddata into variables (from its source code - see bellow), but I couldn't find the way to access those variables after parsing. Does anyone know how to do it? Thanks, cheers.

(line 544 of geoxml3.js of kmz branch):

// add extended data to variables
var extDataNodes = node.getElementsByTagName('ExtendedData');
if (!!extDataNodes && extDataNodes.length > 0) {
var dataNodes = extDataNodes[0].getElementsByTagName('Data');
for (var d = 0; d < dataNodes.length; d++) {
var dn    = dataNodes[d];
var name  = dn.getAttribute('name');
if (!name) continue;
var dName = geoXML3.nodeValue(dn.getElementsByTagName('displayName')[0], name);
var val   = geoXML3.nodeValue(dn.getElementsByTagName('value')[0]);

placemark.vars.val[name]     = val;
placemark.vars.display[name] = dName;
}
}

解决方案

In the kmz branch version of geoxml3, the extended data is stored in placemark.vars.val

name: "Alvarães"
percentil: "29.8"
total: "1699"

So, this should work:

    var contentString = '<div class="maptab">'+
        '<h1>'+placemark.name+'</h1>'+
        'fora da escola: '+placemark.vars.val.total+'<br>'
        'percentual: '+placemark.vars.val.percentil+
        '</div>';
    polygonMouseover(placemark.polygon,contentString);

这篇关于使用 Geoxml3 将 kml 扩展数据加载到变量中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

更多推荐

[db:关键词]

本文发布于:2023-03-31 21:48:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/815300.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:变量   加载   数据   kml

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!