2017-09-22 136 views
1

我使用SimpleKML创建了约600个带有地理标记的图片列表(其中每个图钉都有一个图像作为描述),因此我点击地图上的其中一个图钉并显示我在那个坐标上拍的照片)。调整大小或显示2+ GB KMZ文件

KMZ文件大致为1GB,似乎并未在Google地球专业版中打开。我一直在网上寻找,它似乎可能是太大的文件大小打开。但是,我看到地球能够显示超过一百万个坐标。如果我不添加图像作为描述,文件缩小到〜5kb并且能够工作。

如何打开保存图片的描述文件?文件大小真的有上限吗? (注意:我不确定它是Python /编程问题还是Google Earth问题,所以现在我假设它是一个通用的Google Earth问题)。

+0

.kmz文件的大小是1GB或未压缩的内容是1GB? - 巨大差距。 GE只是一款32位应用程序,只能访问2GB内存。您是否先尝试只按原样访问未压缩的文件,而不将其放入KMZ文件中?Google Earth只是在试图打开它时解压缩它。那么只有100或300张照片的KML文件怎么样 - 这是否奏效? – JasonM1

+0

@ JasonM1 - 不确定它是否被压缩。在文件资源管理器中,'.kmz'文件是〜2GB。我今天晚些时候会尝试做100/300/500照片,看看是否有帮助。 – BruceWayne

+0

也许图片链接?根据参考描述可以包含HTML和'本地文件系统上的图像文件链接总是被允许的,如果包含在标签内.' – rheitzman

回答

1

Google地球是一个32位应用程序,它限制访问2GB内存。当未压缩超过Google地球可用内存时,1-2 GB KMZ文件最可能大于2 GB。

Google地球本身可以处理很多GB的数据,但不是一次全部处理。向Google地球提供大量数据的唯一方法是让KML文件一次加载一部分图片。

如果地理标记的图片在物理上是可分的,那么您可以创建多个KML,其中每个KML代表一个区域以及该区域中的照片。每个KML文件都可以通过NetworkLink由父KML文件引用。 NetworkLink将需要Region元素来指定何时在给定区域中加载具有地理标记图片的KML文件。该地区包含一个边界框(<LatLonAltBox>),描述了由地理坐标和海拔高度定义的感兴趣区域。此外,区域包含一个LOD(详细程度)范围,以投影的屏幕大小(以像素为单位)定义相关区域的有效范围。

你的根KML会像下面这样的结构:

<Document> 
<NetworkLink> 
    <Region> 
    ... 
    </Region> 
    <Link> 
    <href>1.kml</href> 
    </Link> 
</NetworkLink> 
... 
</Document> 

获取区域的工作需要试验和错误。您可以使用此KML screen ruler来测量区域的“屏幕”像素尺寸。

下面是与区域合作两个教程:

或者,你可以创建几个KMZ与地理标记的图片的子集文件的每个。您可以将子KMZ文件与带有radioFolder列表样式的父KML文件以及每个KMZ文件的NetworkLinks绑定在一起。这使您可以选择带有照片的任何子KMZ文件,但一次只能选择一个,以防止内存过载。

<Document> 
    <Style id="radioStyle"> 
     <ListStyle> 
      <listItemType>radioFolder</listItemType> 
     </ListStyle> 
    </Style> 
    <styleUrl>#radioStyle</styleUrl> 
    <NetworkLink> 
     <visibility>0</visibility> 
     <Link> 
      <href>1.kml</href> 
     </Link> 
    </NetworkLink> 
    <NetworkLink> 
     <visibility>0</visibility> 
     <Link> 
      <href>2.kml</href> 
     </Link> 
    </NetworkLink> 
</Document> 

如果你想在谷歌地球打开然后改变其可见性为“1”,离开别人为“0”的时候,KML文件中的一个默认查看。

+0

哦,我得看看如何用Python创建'NetworkLinks'。我认为这是答案!干杯! – BruceWayne

+0

只是为了评论/澄清 - 即使我创建了〜6个KMZ文件(比如说每个〜400MB),我也无法将它们全部加载到地球,而不会崩溃。所以不仅仅是它不能处理大于2GB的单个文件,而且它不能处理大量的,全部加载并且一次“显示”的总*文件。 (注:我认为,正如你最后一段所述,下一步是将这6个KMZ文件与NetworkLinks/radioFolder列表样式结合在一起)。 – BruceWayne

+1

对,这不是单个文件<2GB的问题。 GE可访问的总内存为2GB,因此通过NetworkLinks和区域随时加载的数据总量必须小于2GB,或者通过radioFolder风格进行单个手动选择。 – JasonM1

相关问题