Декабрь 2010 г.
Цель
В этом руководстве вы познакомитесь с несколькими новыми элементами KML, представленными в Google Планета Земля 6.0, и узнаете, как их использовать для создания сложной картографии для стилей линий. Вы узнаете о следующих элементах: <gx:physicalWidth> , <gx:outerColor> , <gx:outerWidth> и <gx:drawOrder> .
Введение
До выхода Google Планета Земля 6.0 возможности определения сложных картографических стилей для объектов LineString были ограничены. Например, если нужно было создать стиль для дороги, где центр объекта LineString имел бы цвет, отличный от цвета его краев, приходилось бы рисовать два отдельных объекта LineString разной ширины, и даже в этом случае нельзя было гарантировать порядок их отображения.
В следующих примерах показано, как создать дорогу. Сначала дорога будет иметь простой стиль. Затем вы добавите тротуар. Наконец, вы добавите путепровод над шоссе.
Простая дорога
Первый интересный элемент — это <gx:physicalWidth> , который позволяет задать ширину LineString в метрах, а не в пикселях. В случае нашего примера с дорогой это означает, что вы можете задать ширину дороги в соответствии с базовым изображением, независимо от того, с какой высоты конечный пользователь смотрит на дорогу. По мере набора высоты ширина дороги уменьшается в пикселях, создавая эффект, когда LineString видна только при близком увеличении. Это может быть полезно, если вы не хотите акцентировать внимание на небольших дорогах издалека или хотите, чтобы ваша картография всегда соответствовала спутниковым снимкам.
<?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:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> <Document> <name>Road Styling</name> <Style id="street"> <LineStyle> <color>ff235523</color> <gx:physicalWidth>12</gx:physicalWidth> </LineStyle> </Style> <Placemark> <styleUrl>#street</styleUrl> <LineString> <coordinates> -122.2442883478408,37.4347536724074,0 -122.2417741446485,37.43594997501623,0 -122.2414951359056,37.43611878445952,0 </coordinates> </LineString> </Placemark> </Document> </kml>
При изменении высоты камеры в Google Earth обратите внимание, насколько точно она всегда соответствует ширине базового изображения.Добавление тротуаров
Теперь можно добавить элементы <gx:outerColor> и <gx:outerWidth> , добавив светло-зелёный цвет к краям дороги, чтобы обозначить тротуары. Задайте 25% от общего числа пикселей дороги светло-серыми.
<?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:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> <Document> <name>Road Styling</name> <Style id="street_sidewalk"> <LineStyle> <color>ff235523</color> <gx:physicalWidth>12</gx:physicalWidth> <gx:outerColor>ff55ff55</gx:outerColor> <gx:outerWidth>0.25</gx:outerWidth> </LineStyle> </Style> <Placemark> <styleUrl>#street_sidewalk</styleUrl> <LineString> <coordinates> -122.2442883478408,37.4347536724074,0 -122.2417741446485,37.43594997501623,0 -122.2414951359056,37.43611878445952,0 </coordinates> </LineString> </Placemark> </Document> </kml>
Поскольку ширина дороги установлена на уровне 12 метров, значение .25 для outsideWidth означает, что 3 метра этой ширины будут окрашены в более светлый зеленый цвет (примерно по 1,5 метра с каждой стороны дороги).Эстакада шоссе
Теперь, когда у вас есть базовая дорога, пора заняться путепроводом. Он будет окрашен в светло-оранжевый цвет с более тёмно-оранжевой разделительной линией. Ключевым дополнением здесь является добавление <gx:drawOrder> со значением 1 (по умолчанию 0) в <LineSring> , чтобы гарантировать, что шоссе будет отображаться поверх дороги. Если вы создаёте более сложную транспортную развязку (или любую картографию, требующую более двух перекрывающихся LineString), вы можете просто добавить большее значение <gx:drawOrder> для того, какой из них должен отображаться сверху.
<?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:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> <Document> <name>Road Styling</name> <Style id="street_sidewalk"> <LineStyle> <color>ff235523</color> <gx:physicalWidth>10</gx:physicalWidth> <gx:outerColor>ff55ff55</gx:outerColor> <gx:outerWidth>0.25</gx:outerWidth> </LineStyle> </Style> <Style id="highway"> <LineStyle> <color>cc1447ff</color> <gx:physicalWidth>20</gx:physicalWidth> <gx:outerColor>cc1473ff</gx:outerColor> <gx:outerWidth>0.75</gx:outerWidth> </LineStyle> </Style> <Placemark> <styleUrl>#street_sidewalk</styleUrl> <LineString> <coordinates> -122.2442883478408,37.4347536724074,0 -122.2417741446485,37.43594997501623,0 -122.2414951359056,37.43611878445952,0 </coordinates> </LineString> </Placemark> <Placemark> <styleUrl>#highway</styleUrl> <LineString> <gx:drawOrder>1</gx:drawOrder> <coordinates> -122.2442692500139,37.43634904345254,0 -122.2415928723012,37.43416417520744,0 </coordinates> </LineString> </Placemark> </Document> </kml>

Что дальше?
Возможность описывать один объект LineString несколькими цветами в сочетании с контролем порядка рендеринга позволяет создавать сложную линейную графику, которая ранее была невозможна. Строите ли вы путепровод или абстрактный арт-проект, получайте удовольствие от этих правил стилизации!
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-24 UTC.