【发布时间】:2014-08-13 00:38:00
【问题描述】:
有没有办法引用地标(可能通过使用地标 ID 属性)?
用例:
假设您有一个城市的公交车站列表。许多公交线路都有一些站点。如果可以引用地标,则可能会有所有站点的主列表,并且每一行(设置在单独的文件夹中)可以仅引用上述地标之一。选择多个文件夹将显示这些行的其他地标,但已显示的地标不会显示多次。
这样会减少很多混乱,尤其是在名称只显示一次的情况下。
【问题讨论】:
标签: kml google-earth
有没有办法引用地标(可能通过使用地标 ID 属性)?
用例:
假设您有一个城市的公交车站列表。许多公交线路都有一些站点。如果可以引用地标,则可能会有所有站点的主列表,并且每一行(设置在单独的文件夹中)可以仅引用上述地标之一。选择多个文件夹将显示这些行的其他地标,但已显示的地标不会显示多次。
这样会减少很多混乱,尤其是在名称只显示一次的情况下。
【问题讨论】:
标签: kml google-earth
不幸的是,Kml Schema 不支持一对多关系或符号链接(除了样式,但这对您没有任何用处。)
但是,您可以模拟这一点的一种方法是在文件夹描述中使用链接。
以您的示例为例,假设您有一个文件,其中定义了“巴士站”地标的主列表。然后,您可以在文件夹中定义所有路线,并附上相关站点的描述链接。
显然所有地标都会显示,但每个“路线文件夹”至少允许您在该路线的停靠点之间移动,而无需复制停靠点数据。
例如
<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。
【讨论】: