Как сохранить расширенные данные из проанализированных файлов kml в переменные - PullRequest
0 голосов
/ 25 октября 2018

Я анализирую файл kml через geoxml3, где метки имеют расширенные поля данных.Используя geoxml.js из ветви kmz (пытаясь следовать решению здесь: Загрузка расширенных данных kml в переменную с помощью 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>

1 Ответ

0 голосов
/ 20 декабря 2018

Мне удалось сделать это, добавив эту последнюю строку в переменную polyxtions geoxml3 (в строке 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 [«Закрытие»], где «Закрытие» было именем моего расширенного поля данных.

...