调整大小或显示 2+ GB KMZ 文件
Resize or show a 2+ GB KMZ file
我正在使用 SimpleKML 创建一个包含约 600 张地理标记图片的列表(其中每个图钉都有一个图像作为描述。所以我点击地图上的一个图钉,它显示了我的图片拍摄于那个坐标)。
KMZ 文件大约为 1GB,似乎无法在 Google 地球专业版中打开。我一直在网上四处寻找,似乎文件太大而无法打开。但是,我已经看到地球能够显示超过一百万个坐标。如果我不添加图像作为描述,文件会缩小到 ~5kb 并且能够工作。
如何打开保存有图片描述的文件?文件大小确实有上限吗?
(注意:我不确定这是一个 Python/programming 问题,还是 Google 地球问题,所以现在我假设它是一个通用的 Google 地球问题)。
Google 地球专业版有 32 位和 64 位版本。 32 位版本限制了对 2GB 内存的访问,一个 1-2 GB 的 KMZ 文件在未压缩时很可能大于 2 GB,这超出了 Google Earth 的可用内存。
Google Earth 本身可以处理许多 GB 的数据,但不能同时处理所有数据。 Google 地球可以使用这么多数据的唯一方法是让 KML 文件一次加载图片的一个子集。
如果地理标记的图片在物理上是可分离的,那么您可以创建多个 KML,其中每个 KML 代表一个区域和该区域中的照片。每个 KML 文件都可以通过 NetworkLink 由父 KML 文件引用。 NetworkLink 需要一个 Region 元素来指定何时加载具有给定区域中的地理标记图片的 KML 文件。 Region 包含一个边界框 (<LatLonAltBox>
),它描述了一个由地理坐标和高度定义的感兴趣区域。此外,一个区域包含一个 LOD(细节级别)范围,该范围根据以像素为单位的投影屏幕大小定义相关区域的有效范围。
您的根 KML 的结构如下:
<Document>
<NetworkLink>
<Region>
...
</Region>
<Link>
<href>1.kml</href>
</Link>
</NetworkLink>
...
</Document>
让区域正常工作需要反复试验。您可以使用此 KML screen ruler.
测量区域的“屏幕”像素尺寸
这里有两个使用区域的教程:
- https://developers.google.com/kml/documentation/regions
- https://www.google.com/earth/outreach/learn/avoiding-overload-with-regions/
或者,您可以创建多个 KMZ 文件,每个文件都带有一个带有地理标记的图片子集。您可以将子 KMZ 文件与具有 radioFolder 列表样式的父 KML 文件和每个 KMZ 文件的 NetworkLinks 绑定在一起。这允许您 select 任何带有照片的子 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>
如果您希望其中一个 KML 文件在 Google 地球中打开时默认可见,请将其可见性更改为“1”并将其他文件保留为“0”。
SimpleKML API 支持网络链接、区域、KMZ 等,因此最好试验并尝试不同的 KML 输出,看看哪种效果更好。
我正在使用 SimpleKML 创建一个包含约 600 张地理标记图片的列表(其中每个图钉都有一个图像作为描述。所以我点击地图上的一个图钉,它显示了我的图片拍摄于那个坐标)。
KMZ 文件大约为 1GB,似乎无法在 Google 地球专业版中打开。我一直在网上四处寻找,似乎文件太大而无法打开。但是,我已经看到地球能够显示超过一百万个坐标。如果我不添加图像作为描述,文件会缩小到 ~5kb 并且能够工作。
如何打开保存有图片描述的文件?文件大小确实有上限吗?
(注意:我不确定这是一个 Python/programming 问题,还是 Google 地球问题,所以现在我假设它是一个通用的 Google 地球问题)。
Google 地球专业版有 32 位和 64 位版本。 32 位版本限制了对 2GB 内存的访问,一个 1-2 GB 的 KMZ 文件在未压缩时很可能大于 2 GB,这超出了 Google Earth 的可用内存。
Google Earth 本身可以处理许多 GB 的数据,但不能同时处理所有数据。 Google 地球可以使用这么多数据的唯一方法是让 KML 文件一次加载图片的一个子集。
如果地理标记的图片在物理上是可分离的,那么您可以创建多个 KML,其中每个 KML 代表一个区域和该区域中的照片。每个 KML 文件都可以通过 NetworkLink 由父 KML 文件引用。 NetworkLink 需要一个 Region 元素来指定何时加载具有给定区域中的地理标记图片的 KML 文件。 Region 包含一个边界框 (<LatLonAltBox>
),它描述了一个由地理坐标和高度定义的感兴趣区域。此外,一个区域包含一个 LOD(细节级别)范围,该范围根据以像素为单位的投影屏幕大小定义相关区域的有效范围。
您的根 KML 的结构如下:
<Document>
<NetworkLink>
<Region>
...
</Region>
<Link>
<href>1.kml</href>
</Link>
</NetworkLink>
...
</Document>
让区域正常工作需要反复试验。您可以使用此 KML screen ruler.
测量区域的“屏幕”像素尺寸这里有两个使用区域的教程:
- https://developers.google.com/kml/documentation/regions
- https://www.google.com/earth/outreach/learn/avoiding-overload-with-regions/
或者,您可以创建多个 KMZ 文件,每个文件都带有一个带有地理标记的图片子集。您可以将子 KMZ 文件与具有 radioFolder 列表样式的父 KML 文件和每个 KMZ 文件的 NetworkLinks 绑定在一起。这允许您 select 任何带有照片的子 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>
如果您希望其中一个 KML 文件在 Google 地球中打开时默认可见,请将其可见性更改为“1”并将其他文件保留为“0”。
SimpleKML API 支持网络链接、区域、KMZ 等,因此最好试验并尝试不同的 KML 输出,看看哪种效果更好。