1

我正在使用 Java API for KML(JAK) 编写一些 KML。基本上,我有一条路线,路线的每个顶点都是一个航路点。每个航路点都有可能具有不同的图标图像,因此所需的 KML 看起来像这样:

<Placemark>
    <description>Hello World!</description>
    <Style>
        <IconStyle>
            <Icon>
                <href>image2.png</href>
            </Icon>
        </IconStyle>
    </Style>
    <Point>
        <coordinates>0,1,2</coordinates>
    </Point>
</Placemark>

相反,我得到这样的东西:

<Placemark>
<description>Hello World!</description>
    <Style>
        <IconStyle>
            <scale>0.0</scale>
            <heading>0.0</heading>
            <Icon>
                <href>image2.png</href>
                <refreshInterval>0.0</refreshInterval>
                <viewRefreshTime>0.0</viewRefreshTime>
                <viewBoundScale>0.0</viewBoundScale>
            </Icon>
        </IconStyle>
    </Style>
    <Point>
        <coordinates>0,1,2</coordinates>
    </Point>
</Placemark>

我试图了解什么是强制标签喜欢<scale><refreshInterval>在我正在编写的 KML 中(如果我没有指定比例,我根本不希望标签在那里)。建立JAK 表明这些元素的.xsdminOccurs = 0 ,并且我尝试将值显式设置为-1.0并设置@XmlElement(required = false)关于编写 xml 或只是阅读它。

我应该补充一点,我还没有更改.xsd文件,所以这里是帮助生成代码的相关部分:

<element name="IconStyle" type="kml:IconStyleType" substitutionGroup="kml:AbstractColorStyleGroup" />
<complexType name="IconStyleType" final="#all">
    <complexContent>
        <extension base="kml:AbstractColorStyleType">
            <sequence>
                <element ref="kml:scale" minOccurs="0" />
                <element ref="kml:heading" minOccurs="0" />
                <element name="Icon" type="kml:BasicLinkType" minOccurs="0" />
                <element ref="kml:hotSpot" minOccurs="0" />
                <element ref="kml:IconStyleSimpleExtensionGroup" minOccurs="0" maxOccurs="unbounded" />
                <element ref="kml:IconStyleObjectExtensionGroup" minOccurs="0" maxOccurs="unbounded" />
            </sequence>
        </extension>
    </complexContent>
</complexType>

关于我需要更改哪些内容以使这些标签不包含在 0.0s 中的任何想法?如果我最终过于深入,那么我还不如自己编写 KML,但到目前为止,我发现 JAK 库非常有用。

4

0 回答 0