如何使用 geoxml3 获取 KMZ 或 KML 文件的边界?
How to get bounds of a KMZ or KML file using geoxml3?
我的项目涉及从包含大约 600 多个 kmz/kml 文件的目录加载多个 kmz 文件。当用户移动地图并单击按钮加载相关的 kmz 文件时,将加载最多 5 个文件。将进行检查以确保缩放比例足够大,以便覆盖的区域不会太宽。
要加载相关的 kmz/kml 文件,想法是如果 kmz/kml 中的地标甚至部分落在视口内,则加载文件。为了快速加载这些 kmz/kml 个文件,我想到了以下步骤:
步骤1:分别提取每个kmz/kml文件的边界,并将其存储在一个文件中。我知道如何获取视口的边界,map.getBounds()
,以及 kmz 中的特定多边形,geoXmlDoc.placemarks[i].polygon.bounds
。但是有没有办法获取包含所有点、线、多边形的整个 kmz 文件的边界?
我知道此步骤只需执行一次即可生成包含所有 kmz/kml 文件边界的边界文件。我尝试通过循环分别加载每个文件并调用视口的 getBounds 但不幸的是视口并不完全适合 kmz 的边界。视口通常更大。
第 2 步: 当用户将地图移动到新位置并单击加载相关的 kmz 文件时,如果视口边界与任何kmz 范围。
if (currentBounds.intersects(all_bounds_array[i]))
{
// load the kmz file for index i
}
创建一个空的 LatLngBounds 对象。忽略地图的当前边界。
var bounds = new google.maps.LatLngBounds();
遍历 KMZ 文件的所有内容,扩展文件中各种坐标的范围
bounds.extend(/* your coords */);
我的项目涉及从包含大约 600 多个 kmz/kml 文件的目录加载多个 kmz 文件。当用户移动地图并单击按钮加载相关的 kmz 文件时,将加载最多 5 个文件。将进行检查以确保缩放比例足够大,以便覆盖的区域不会太宽。
要加载相关的 kmz/kml 文件,想法是如果 kmz/kml 中的地标甚至部分落在视口内,则加载文件。为了快速加载这些 kmz/kml 个文件,我想到了以下步骤:
步骤1:分别提取每个kmz/kml文件的边界,并将其存储在一个文件中。我知道如何获取视口的边界,map.getBounds()
,以及 kmz 中的特定多边形,geoXmlDoc.placemarks[i].polygon.bounds
。但是有没有办法获取包含所有点、线、多边形的整个 kmz 文件的边界?
我知道此步骤只需执行一次即可生成包含所有 kmz/kml 文件边界的边界文件。我尝试通过循环分别加载每个文件并调用视口的 getBounds 但不幸的是视口并不完全适合 kmz 的边界。视口通常更大。
第 2 步: 当用户将地图移动到新位置并单击加载相关的 kmz 文件时,如果视口边界与任何kmz 范围。
if (currentBounds.intersects(all_bounds_array[i]))
{
// load the kmz file for index i
}
创建一个空的 LatLngBounds 对象。忽略地图的当前边界。
var bounds = new google.maps.LatLngBounds();
遍历 KMZ 文件的所有内容,扩展文件中各种坐标的范围
bounds.extend(/* your coords */);