Как мне указать интервал для gx: track в KML? - PullRequest
0 голосов
/ 17 апреля 2019

Я использую выходные данные контрольно-измерительных приборов через регулярные промежутки времени в течение периода времени, чтобы генерировать <gx:track> информацию для сотен элементов. Когда я генерирую KML, все элементы имеют одинаковый массив значений <when> ..., и все значения просты и предсказуемы - но поскольку мне нужно <when> ... в каждом треке, мой в конечном итоге размер файла составляет десятки гигабайт, что слишком велико для рендеринга и слишком велико для передачи через Интернет при воспроизведении данных - даже если бы я переключился на метод потоковой передачи данных.

Согласно документации, количество значений <when> ... должно точно соответствовать количеству координат.

https://developers.google.com/kml/documentation/kmlreference#gxtrack

Конечно, я открыт для идей, но сейчас у меня есть следующие:

  1. Сконфигурируйте некоторый Time<X> объект, который я не нашел через веб-поиск, который позволяет мне указать <when> как время начала, время окончания и интервал
<gx:track>
   <WhenCollection 
      starttime="2019-01-01T00:00:00.000Z" 
      stoptime="2019-01-01T12:00:00.000Z" 
      interval_ms="1000" />
   <gx:coord>...</gx:coord>
   ...
</gx:track>

OR

  1. Каким-то образом напишите <when> один раз, а затем укажите его во всех <gx:track>
<gx:WhenCollection id="masterTimeline">
   <when>...</when>
   ...
</gx:WhenCollection>

...
<gx:track>
   <when ref="#masterTimeline" />
   <gx:coord>A...</gx:coord>
   ...
</gx:track>
<gx:track>
   <when ref="#masterTimeline" />
   <gx:coord>B...</gx:coord>
   ...
</gx:track>

OR

  1. Создайте какой-нибудь экзотический метод потоковых перехватчиков, где я могу отправить <when> один раз, а затем подавать его в поток KML каждый раз, когда это необходимо
//save the <when>
String w = input.when;

//loop through items and build each track on the client side
while(...) {
  String track = generateTrack(input.next(), w);
  output.write(track);
}

Повторно используя мои значения <when> ... или иным образом сжимая их (с помощью ZIP или определения интервала), я могу примерно вдвое сократить размер файла / передать данные одним махом.

Спасибо за ваши идеи и знания.

...