有没有办法引用地标(可能是使用地标ID属性)?
用例:
假设您有一个城市的公交车站列表。许多公交线路都会有一些停靠点。如果可以进行地标引用,则可能存在所有停靠点的主列表,并且每行(在单独的文件夹中设置)可以仅引用上述地标之一。选择多个文件夹会显示这些行的其他地标,但已显示的地标不会多次显示。
这会产生更少的混乱,特别是只显示一次名称。
答案 0 :(得分:2)
不幸的是,因为Kml Schema不支持一对多关系或符号链接(除了样式之外,但这对您没有任何用处。)
但是,您可以通过在文件夹描述中使用链接来模拟这一点。
要使用您的示例,假设您有一个文件,其中包含定义了“公共汽车站”地点标记的主列表。然后,您可以在文件夹中定义所有路线,并提供相关站点的描述链接。
显然,所有地点标记始终显示,但每个“路径文件夹”至少允许您在该路线的停靠点之间移动,而不必复制停止数据。
e.g。
<kml>
<Folder id="stops">
<Placemark id="p1">
<name>stop 1</name>
</Placemark>
<Placemark id="p2">
<name>stop 2</name>
</Placemark>
<Placemark id="p3">
<name>stop 3</name>
</Placemark>
<Placemark id="p4">
<name>stop 4</name>
</Placemark>
</Folder>
<Folder id="r1">
<name>route 1</name>
<description>
<![CDATA[
<a href="#p1;balloonFlyto">stop 1</a>
<a href="#p3;balloonFlyto">stop 3</a>
]]>
</description>
</Folder>
<Folder id="r2">
<name>route 2</name>
<description>
<![CDATA[
<a href="#p1;balloonFlyto">stop 1</a>
<a href="#p2;balloonFlyto">stop 2</a>
<a href="#p4;balloonFlyto">stop 4</a>
]]>
</description>
</Folder>
</kml>
修改强>
您还可以简单地将数据保存在支持一对多的内容中,例如mysql数据库。然后,您可以查询它,但是您希望根据所请求的要求生成KML。看看这个Database Driven Earth App Using PHP & MySQL with the Earth API,它会介绍如何设置数据库来保存数据,如何查询数据以及从中输出KML。