Могу ли я установить высотный режим или выдавливать глобально (только один раз)? - PullRequest
0 голосов
/ 15 мая 2019

Я хочу использовать выдавливание / высоту absolute для моих очков. Я могу сделать это, как показано ниже, но затем я должен повторить это для каждой точки (файл kml большего размера).

Интересно, смогу ли я установить это глобально и только один раз? Как разновидность значения по умолчанию для <Point>.

<Placemark><Point><altitudeMode>absolute</altitudeMode><extrude>1</extrude><coordinates>9.38916000,49.83081000,8457.590000</coordinates></Point><name>1: 18:53:29.477 </name> .... </Placemark>

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Джейсон прав, что нет способа установить altitudeMode или выдавить в одном месте в KML и использовать его для всех геометрий, скорее его нужно применять в каждом теге геометрии (Point, LineString, Polygon и т. Д.).

Один из относительно быстрых способов сделать это, если вы вручную редактируете файл KML в текстовом редакторе, который его поддерживает, - это использовать инструмент «Найти и заменить все». Например, вы можете использовать:

Найти: <Point>

Заменить на: <Point><extrude>1</extrude><altitudeMode>absolute</altitudeMode>

Если уже установлен другой режим высоты над уровнем моря (например: ClampToGround), то вы можете сделать что-то попроще, например:

Найти: <altitudeMode>clampToGround</altitudeMode>

Заменить на: <extrude>1</extrude><altitudeMode>absolute</altitudeMode>

Также обратите внимание, что в вашем примере KML у вас есть несколько тегов в неправильном порядке, согласно схеме KML. Тег <name> должен быть первым после <Placemark>, а <extrude> должен стоять перед <altitudeMode>. Google Планета Земля игнорирует большинство подобных проблем и по-прежнему отображает файл KML, но рекомендуется придерживаться порядка тегов в схеме, чтобы избежать необычных ошибок. Вы можете найти правильные заказы в Справочнике KML, например:

Метка: https://developers.google.com/kml/documentation/kmlreference#placemark

и точка: https://developers.google.com/kml/documentation/kmlreference#point

1 голос
/ 16 мая 2019

Свойства extrude и altitudeMode определены только в контексте заданной геометрии, а KML не предоставляет глобальную настройку, которая может быть определена глобально и унаследована.

Один из способов уменьшить размер файла KML - добавить файл KML в файл KMZ, чтобы файл был сжат.

KML имеет концепцию наследования и повторного использования для устранения избыточных элементов, как показано ниже:

1.общие стили

В KML есть концепция общих стилей, которые можно определить один раз и повторно использовать в многократной метке.Стили являются глобальными, и на него можно ссылаться в любом месте файла KML по его «id».

2.наследование

Для удобства построения иерархий объектов KML значения следующих четырех элементов наследуются всеми элементами меток, папок и документов иерархии объектов.Подробнее см. KML 2.2 Standard (раздел 9.6.2).

  • atom: автор
  • atom: ссылка
  • kml: регион
  • kml: AbstractTimePrimitiveGroup (например, TimeSpan или TimeStamp)

Например, если документ или папка имеет элемент Region, тогда этот регион применяется ко всем дочерним документам, папкам и меткам, если только дочерний элемент явно не определяет егособственный регион.

...