OpenLayers 3: Проблемы при написании «хорошего» KML-файла с помощью ol / format / KML - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь записать объекты в файл .kml с помощью анализатора OpenLayers 3 (см. https://openlayers.org/en/latest/apidoc/module-ol_format_KML-KML.html#writeFeatures), но вывод не совсем такой, как ожидалось, структура, кажется, не соблюдается, и это создайте проблемы для дальнейших операций:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd">
  <Placemark>
      <ExtendedData>
         <Data name="author">
            <value>im the author</value>
         </Data>
         <Data name="creationDate">
            <value>20/02/2020</value>
         </Data>
      </ExtendedData>
      <name>MyKMLexport</name>
      <Polygon>
         <outerBoundaryIs>
            <LinearRing>
               <coordinates>62.51844418093625,-42.633058995032435 81.50281918093627,-29.01667857813891 81.51758651853537,-29.007359030474692 81.53419966915676,-29.000835042814817 81.55197588079018,-28.997375279435218 81.57018460301177,-28.997122237072155 81.58807751047468,-29.00008633829274 81.60491925689703,-29.006145499380445 81.62001769564819,-29.015050191105914 81.63275232495555,-29.026433777355955 81.64259978871658,-29.039827693167595 93.24416228871661,-46.892472571366355 93.25071734175398,-46.90408051459709 93.25371193545833,-46.91635048460802 93.25302302847511,-46.92877805559908 93.24867892649678,-46.94085267086238 93.24085811924326,-46.952078609826636 93.22988194670677,-46.96199529119887 93.21620139598923,-46.970196088559405 93.20037857122118,-46.976344902999344 93.18306359792338,-46.98018983378578 93.16496791076045,-46.98157340794681 93.14683502223488,-46.98043896805551 62.56089752223484,-42.74721303877395 62.5435596670384,-42.74335837092467 62.527627400519044,-42.737027061957065 62.51374860341454,-42.72847586321884 62.50248765275787,-42.71805167208804 62.49430247165814,-42.70617755987346 62.48952590799752,-42.693335700624566 62.488352199274175,-42.68004787364901 62.4908290739938,-42.66685431489089 62.496855810804625,-42.65429176600727 62.50618733430031,-42.64287161094244 62.51844418093625,-42.633058995032435</coordinates>
            </LinearRing>
         </outerBoundaryIs>
      </Polygon>
   </Placemark>
</kml>

Как видите, нет ни тега <Document>, ни <Folder>, поэтому после импорта KML (например, на картах Google) нет «дерева» структура.

Функция, которую я передаю синтаксическому анализатору, является стандартной функцией OL3 (здесь показана как зарегистрированная в консоли Chrome):

Feature {
    disposed_: false
    ol_uid: "229"
    values_: { 
          geometry: Polygon {disposed_: false, pendingRemovals_: {…}, dispatching_: {…}, listeners_: 
                    {…}, revision_: 1, …}
          name: "MyKMLexport"
          creationDate: "20/02/2020"
          author: "im the author"
          __proto__: Object
    }
    id_: undefined
    geometryName_: "geometry"
    style_: null
    __proto__: BaseObject
}
...