Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 调整或显示2+;GB KMZ文件_Python 3.x_Google Earth_Simplekml - Fatal编程技术网

Python 3.x 调整或显示2+;GB KMZ文件

Python 3.x 调整或显示2+;GB KMZ文件,python-3.x,google-earth,simplekml,Python 3.x,Google Earth,Simplekml,我正在使用创建一个包含约600张地理标记图片的列表(每个图钉都有一个图像作为描述。因此,我单击地图上的一个图钉,它显示了我在该坐标处拍摄的图片) KMZ文件大约为1GB,在Google Earth Pro中似乎无法打开。我一直在网上查看,似乎文件太大,无法打开。然而,我已经看到地球能够显示超过一百万个坐标。如果我不添加图像作为描述,文件会缩小到~5kb,并且可以正常工作 如何打开文件,将图像保留为描述?文件大小确实有上限吗 (注意:我不确定这是Python/编程问题还是Google Earth问

我正在使用创建一个包含约600张地理标记图片的列表(每个图钉都有一个图像作为描述。因此,我单击地图上的一个图钉,它显示了我在该坐标处拍摄的图片)

KMZ文件大约为1GB,在Google Earth Pro中似乎无法打开。我一直在网上查看,似乎文件太大,无法打开。然而,我已经看到地球能够显示超过一百万个坐标。如果我不添加图像作为描述,文件会缩小到~5kb,并且可以正常工作

如何打开文件,将图像保留为描述?文件大小确实有上限吗


(注意:我不确定这是Python/编程问题还是Google Earth问题,所以现在我假设这是一个通用的Google Earth问题)。

Google Earth是一个32位应用程序,它限制了对2GB内存的访问。1-2 GB KMZ文件在未压缩时很可能大于2 GB,这超过了Google Earth可用的内存

Google Earth本身可以处理很多GB的数据,但不能同时处理所有数据。让Google Earth能够获得这么多数据的唯一方法是让KML文件一次加载一部分图片

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

您的根KML的结构如下:

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

...
1.5公里
...
让这些区域发挥作用需要反复试验。您可以使用此选项测量区域的“屏幕”像素尺寸

以下是两个用于处理区域的教程:

或者,您可以创建多个KMZ文件,每个文件都带有地理标记图片的子集。您可以将子KMZ文件与具有radioFolder列表样式的父KML文件以及与每个KMZ文件的网络链接绑定在一起。这允许您选择任何带有照片的子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>

无线电文件夹
#射电方式
0
1.5公里
0
2.2公里

如果您希望其中一个KML文件在Google Earth中打开时默认可见,则将其可见性更改为“1”,并将其他文件保留为“0”。

该.kmz文件的大小为1GB或未压缩的内容为1GB?-差别很大。GE只是一款32位应用程序,只能访问2GB内存。您是否尝试过先按原样访问未压缩的文件,而不将其放入KMZ文件中?当谷歌地球试图打开它时,它只是将其解压缩。一个只有100或300张照片的KML文件怎么样?这样行吗?@JasonM1-不确定它是否被压缩。在文件资源管理器中,
.kmz
文件为~2GB。今天晚些时候我会尝试只拍100/300/500张照片,看看这是否有帮助。也许是图片链接?根据参考说明,可以包含HTML和“如果包含在标记中,则始终允许链接到本地文件系统上的图像文件”。“@rheitzman-我使用图像链接。我是通过
point.description='
添加的,我相信这就是您所指的,是吗?哦,我必须看看如何使用Python创建
NetworkLinks
。我想这就是答案!干杯只是为了评论/澄清-看起来即使我创建了~6 KMZ的文件(比如每个~400 MB),我也无法将它们全部加载到地球上,而不会崩溃。所以,它不仅不能处理大于2GB的单个文件,而且不能处理这么大的文件总量,不能一次全部加载并“显示”。(注:我认为,正如你最后一段所述,下一步是将这些6Kmz文件与NetworkLinks/radioFolder列表样式绑定在一起)。没错,这不是单个文件<2GB的问题。GE可访问的总内存为2GB,因此通过网络链接和区域或通过radioFolder样式的单个手动选择,任何时候加载的数据总量必须小于2GB。