我正在使用 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 表明这些元素的.xsd
minOccurs = 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 库非常有用。