Я использую выходные данные контрольно-измерительных приборов через регулярные промежутки времени в течение периода времени, чтобы генерировать <gx:track>
информацию для сотен элементов. Когда я генерирую KML, все элементы имеют одинаковый массив значений <when>
..., и все значения просты и предсказуемы - но поскольку мне нужно <when>
... в каждом треке, мой в конечном итоге размер файла составляет десятки гигабайт, что слишком велико для рендеринга и слишком велико для передачи через Интернет при воспроизведении данных - даже если бы я переключился на метод потоковой передачи данных.
Согласно документации, количество значений <when>
... должно точно соответствовать количеству координат.
https://developers.google.com/kml/documentation/kmlreference#gxtrack
Конечно, я открыт для идей, но сейчас у меня есть следующие:
- Сконфигурируйте некоторый
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
- Каким-то образом напишите
<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
- Создайте какой-нибудь экзотический метод потоковых перехватчиков, где я могу отправить
<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 или определения интервала), я могу примерно вдвое сократить размер файла / передать данные одним махом.
Спасибо за ваши идеи и знания.