kml - 使用区域、网络链接、kml 中的时间跨度,但 GE 在启动时加载整个文件
问题描述
我有涵盖三天的全球火灾数据。将整个数据投影到一个 kml 中最终会产生巨大的 kml。我试图将数据分解为更小的区域和更小的时间间隔。
所以我有数百个覆盖全球的区域,每个区域的数据分为 6 kmls(每个区域的时间跨度为 12 小时)以涵盖 3 天。
问题是即使将全局数据分成更小的块,一旦我加载主文件,GE 想要加载整个数据并且变得太慢。有没有更好的方法来做到这一点,或者强调我可能做错了什么?
我的 kml 文件概述如下:
主kml:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Region>
<LatLonAltBox>
<north>90</north>
<south>-90</south>
<east>360</east>
<west>0</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>1024 </maxLodPixels>
</Lod>
</Region>
<NetworkLink>
<name> Region NHAf</name>
<TimeSpan>
<begin>2011-06-01T00:30:00Z</begin>
<end>2011-06-04T00:30:00Z</end>
</TimeSpan>
<Region>
<LatLonAltBox>
<north>30</north>
<south>0</south>
<east>60</east>
<west>-30</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>1024 </maxLodPixels>
</Lod>
</Region>
<Link>
<href>NHAf_base.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
...
//more network links for other regions
</Document></kml>
这个针对不同区域的网络链接进一步链接到子区域,整个时间跨度也被划分为更小的 kmls:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Region>
<LatLonAltBox>
<north>30</north>
<south>0</south>
<east>60</east>
<west>-30</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>1024 </maxLodPixels>
</Lod>
</Region>
<Folder>
<name>NHAf 1 0050</name>
<NetworkLink>
<name> Region 1 resolution 0050</name>
<TimeSpan>
<begin>2011-06-01T00:30:00Z</begin>
<end>2011-06-01T12:30:59Z</end>
</TimeSpan>
<Region>
<LatLonAltBox>
<north>30</north>
<south>10</south>
<east>-10</east>
<west>-30</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>1024 </maxLodPixels>
</Lod>
</Region>
<Link>
<href>NHAf_1_hr01_frpfire_20110601_1130_0050_1.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink></Folder>
<Folder>
<name>NHAf 1 0050</name>
<NetworkLink>
<name> Region 1 resolution 0050</name>
<TimeSpan>
<begin>2011-06-01T13:30:00Z</begin>
<end>2011-06-01T23:30:59Z</end>
</TimeSpan>
<Region>
<LatLonAltBox>
<north>30</north>
<south>10</south>
<east>-10</east>
<west>-30</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>1024 </maxLodPixels>
</Lod>
</Region>
<Link>
<href>NHAf_1_hr01_frpfire_20110601_2330_0050_1.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink></Folder>
...
//more network links till end of time step
//more network links with different sub-regions
</Documents>
</kml>
解决方案
如果您将多个时间段拆分为多个 KML 文件,则可以在<gx:TimeSpan>
KML 文件的根 Document 元素中使用 KML 扩展名预先选择启动时加载的默认时间。这会为此时间间隔初始化时间滑块。要使其正常工作,您必须添加一个带有<gx:TimeSpan>
.
<?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>2011-06-01T13:30:00Z</begin>
<end>2011-06-01T23:30:59Z</end>
</gx:TimeSpan>
<longitude>...</longitude>
<latitude>...</latitude>
<altitude>...</altitude>
<heading>...</heading>
<tilt>...</tilt>
<range>...</range>
</LookAt>
...
您可以通过以下步骤将 TimeSpan 添加到 Google 地球中的 KML:
- 定位要启动的视图
- 右键单击根 KML 元素并选择属性
- 单击查看选项卡
- 单击“快照当前视图”
- 选择/编辑您想要开始的开始和结束时间
- 点击确定
参考:https ://developers.google.com/kml/documentation/kmlreference#gxtimespan
推荐阅读
- javascript - 找到 5 个随机数组合,除了一组组合
- python-3.x - 有没有办法创建我自己的一批图像?
- azure - 需要有关 Azure 的持续访问评估的更多详细信息
- python - 用 BeautifulSoup 刮掉桌子的一部分
- python - Python - 语音识别:属性错误:__enter__
- python - 词根的词形还原
- javascript - 使用脚本设置为选中的复选框
- c++ - 如何将外部代码包含到虚幻引擎 4 C++ 项目中
- python-3.x - Python3 - 插入许多不同长度的数组
- javascript - 在 React 的循环中新添加 div 重叠