我正在使用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库到目前为止非常有用。