KML IconStyle цвет введен как синий, но отображается красным в Google Планета Земля.

Я использую шестнадцатеричные цвета для обозначения значков. Для синего я использую 0000ff. В файле KML это <color>ff0000ff</color>. Однако, когда KML открыт в Google Планета Земля, метка значка становится красной.

Просматривая https://developers.google.com/kml/documentation/kmlreference мою take is цвет должен быть закодирован как ff + hexadecimal number, поэтому черный представлен как ff000000, что работает, а ff0000ff для синего - нет.

Я безуспешно пробовал различные стили и варианты значков. Я читал и видел, как есть эффект наслоения, который объединяет значок и цвет. Кажется, что использование wht-blank.png было бы нейтральным холстом для нанесения цвета, но я подозреваю, что это может мешать.

Ниже мой тестовый kml.

<?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">
    <Document>
        <name>kml_test</name>
        <Placemark>
            <name>uniq_name</name>
            <Style>
                <IconStyle>
                    <scale>1</scale>
                    <color>ff0000ff</color>
                    <Icon>
                        <href>http://maps.google.com/mapfiles/kml/paddle/wht-blank.png</href>
                    </Icon>
                </IconStyle>
            </Style>
            <LabelStyle>
                <color>ffffffff</color>
                <scale>0.6</scale>
            </LabelStyle>
            <LookAt>
                <longitude>-118.000000</longitude>
                <latitude>34.000000</latitude>
                <range>1000</range>
            </LookAt>
            <Point>
                <altitudeMode>clampToGround</altitudeMode>
                <extrude>0</extrude>
                <coordinates>-118.000000,34.000000,0</coordinates>
            </Point>
        </Placemark>
    </Document>
</kml>

Я ожидаю, что <color>ff0000ff</color> будет отображать синий значок при открытии kml в Google Планета Земля, а не красный.


person Stuber    schedule 03.04.2019    source источник


Ответы (1)


KML не использует нормальный порядок цветов, вместо этого он находится в обратном порядке: синий, зеленый, красный или: AABBGGRR, где AA - альфа или прозрачность, BB - синий, GG - зеленый, а RR - красный.

Дополнительную информацию см. В документации по тегу <color> здесь: https://developers.google.com/kml/documentation/kmlreference#elements-specific-to-colorstyle

конкретно эта строка:

The order of expression is aabbggrr

Для синего значка вы захотите использовать: <color>ffff0000</color>

person Christiaan Adams    schedule 03.04.2019
comment
Документация не имела смысла, но ваш ответ проясняет. Шестнадцатеричный формат - R-G-B, а шаблон KML необходимо перевернуть на B-G-R. Идеально! - person Stuber; 03.04.2019