如何将已解析的 kml 文件中的扩展数据存储到变量中
How to store extended data from parsed kml files into variables
我通过 geoxml3 解析了一个 kml 文件,其中地标具有扩展的数据字段。使用 kmz 分支中的 geoxml.js(尝试遵循此处的解决方案:Load kml extendeddata into variable with Geoxml3),我仍然发现 geoXmlDoc.gpolylines[0].title 有效,但 geoXmlDoc.gpolylines[0] .vars.val 未定义。参考地标格式:
<Placemark>
<name>Left to Right</name>
<description><![CDATA[One Way: True<br>Crossing: false<br>Closure: True]]></description>
<styleUrl>#line-000000-1200</styleUrl>
<ExtendedData>
<Data name="One Way">
<value>True</value>
</Data>
<Data name="Crossing">
<value>0</value>
</Data>
<Data name="Closure">
<value>True</value>
</Data>
</ExtendedData>
<LineString>
<tessellate>1</tessellate>
<coordinates>
115.8350241,-31.928985,0
115.8409465,-31.9267996,0
115.8470404,-31.9297863,0
115.8533061,-31.9272367,0
</coordinates>
</LineString>
</Placemark>
我设法通过在 geoxml3 的 polyoptions 变量(第 1255 行)中添加最后一行来做到这一点。
var polyOptions = geoXML3.combineOptions(parserOptions.polylineOptions, {
map: parserOptions.map,
path: path,
strokeColor: kmlStrokeColor.color,
strokeWeight: placemark.style.line.width,
strokeOpacity: kmlStrokeColor.opacity,
title: placemark.name,
visible: placemark.visibility,
polyDesc: placemark.description,
eData: placemark.vars.val
});
然后我可以使用 geoXmlDoc.gpolylines[x].eData['Closure'] 访问变量,其中 'Closure' 是我的扩展数据字段的名称。
我通过 geoxml3 解析了一个 kml 文件,其中地标具有扩展的数据字段。使用 kmz 分支中的 geoxml.js(尝试遵循此处的解决方案:Load kml extendeddata into variable with Geoxml3),我仍然发现 geoXmlDoc.gpolylines[0].title 有效,但 geoXmlDoc.gpolylines[0] .vars.val 未定义。参考地标格式:
<Placemark>
<name>Left to Right</name>
<description><![CDATA[One Way: True<br>Crossing: false<br>Closure: True]]></description>
<styleUrl>#line-000000-1200</styleUrl>
<ExtendedData>
<Data name="One Way">
<value>True</value>
</Data>
<Data name="Crossing">
<value>0</value>
</Data>
<Data name="Closure">
<value>True</value>
</Data>
</ExtendedData>
<LineString>
<tessellate>1</tessellate>
<coordinates>
115.8350241,-31.928985,0
115.8409465,-31.9267996,0
115.8470404,-31.9297863,0
115.8533061,-31.9272367,0
</coordinates>
</LineString>
</Placemark>
我设法通过在 geoxml3 的 polyoptions 变量(第 1255 行)中添加最后一行来做到这一点。
var polyOptions = geoXML3.combineOptions(parserOptions.polylineOptions, {
map: parserOptions.map,
path: path,
strokeColor: kmlStrokeColor.color,
strokeWeight: placemark.style.line.width,
strokeOpacity: kmlStrokeColor.opacity,
title: placemark.name,
visible: placemark.visibility,
polyDesc: placemark.description,
eData: placemark.vars.val
});
然后我可以使用 geoXmlDoc.gpolylines[x].eData['Closure'] 访问变量,其中 'Closure' 是我的扩展数据字段的名称。