默认情况下,Google 地球会显示 KML 的完整时间。但是,一种常见的情况是当多个 KML 文件打开/可见时,Google 地球默认显示所有KML 功能中最早和最晚时间的完整时间范围。此外,通过NetworkLinks加载 KML不会像直接在 Google 地球中打开它那样显示完整的时间范围。
为了说明,首先取消选中您保存的位置以禁用其他 KML,然后加载此 KML 文件。您会注意到时间线显示 1787 到 1959 的全部范围。https://developers.google.com/kml/documentation/us_states.kml
如果您想预先定义一个时间范围,您可以显式添加一个限制时间视图的Camera或LookAt 。例如,要将视图限制在前 100 年,您可以将<gx:TimeSpan>
具有年份范围的元素添加到 KML 中的根级元素。请记住包含 lat/lon/range 元素,否则视图将默认为 lat=0、lon=0、range=0。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
....
<LookAt>
<gx:TimeSpan>
<begin>1787</begin>
<end>1887</end>
</gx:TimeSpan>
<longitude>-95.71</longitude>
<latitude>37.09</latitude>
<range>4119625</range>
...
</LookAt>
...
</Document>
</kml>
如果您在地标或文件夹上单击鼠标右键,然后在 Google 地球中选择“快照视图”,并且计时器滑块可见,则时间范围将在保存的视图中捕获。
因此,您可以做任何您想做的事,而无需随时间复制地标,而是创建一些仅使用受时间范围约束的视图定义的地标。单击这些特殊地标中的每一个都会将时间滑块更改为您要显示的任何时间范围。
具有通过Networklinks检索的时间的 KML 要素具有不同的行为,并且在时间滑块中仅预先选择了一部分时间范围。您必须将flyToView添加到 NetworkLink 以使其行为与直接加载 KML 相同。
<NetworkLink>
<flyToView>1</flyToView>
<Link>
<href>...</href>
</Link>
</NetworkLink>
如果您在父 KML 文件中包含多个具有基于时间的功能的 NetworkLink,则最佳做法是<TimeSpan>
向 NetworkLink 添加一个元素,包括该功能集合的完整时间范围,否则 Google 地球将在启动时自动加载整个文件.
<NetworkLink>
<TimeSpan>
<begin>1787</begin>
<end>1887</end>
</TimeSpan>
<flyToView>1</flyToView>
<Link>
<href>...</href>
</Link>
</NetworkLink>
参考:
https ://developers.google.com/kml/documentation/kmlreference#timespan
https://developers.google.com/kml/documentation/kmlreference#gxtimespan