我正在创建一个 KMZ 文件作为程序的输出(使用 SharpKML)。如何设置初始视图,以便在 Google 地球中打开此文件时,它会围绕我的数据居中并缩放?
当我在 GE 中打开 KML 文件时,默认情况下会出现这种行为,但是当我打开 KMZ 时,浏览器只会打开以用户国家/地区为中心的默认全局视图。如果我双击我的 KMZ 文件中的主 KML,那么我会得到正确的缩放并以我的数据为中心。当 Google 地球加载 KMZ 时,如何自动实现这一点?
谢谢。
我正在创建一个 KMZ 文件作为程序的输出(使用 SharpKML)。如何设置初始视图,以便在 Google 地球中打开此文件时,它会围绕我的数据居中并缩放?
当我在 GE 中打开 KML 文件时,默认情况下会出现这种行为,但是当我打开 KMZ 时,浏览器只会打开以用户国家/地区为中心的默认全局视图。如果我双击我的 KMZ 文件中的主 KML,那么我会得到正确的缩放并以我的数据为中心。当 Google 地球加载 KMZ 时,如何自动实现这一点?
谢谢。
如果您将LookAt或Camera添加到根 KML 文件(KMZ 中的第一个 .kml 文件)的第一个元素中,则加载该文件时,Google 地球将在该位置启动。
<?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">
<Placemark>
<name>Google office</name>
<LookAt>
<longitude>-122.087387</longitude>
<latitude>37.422130</latitude>
<altitude>0</altitude>
<heading>-0.23</heading>
<tilt>47.81</tilt>
<range>115.5</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<Point>
<coordinates>-122.087461,37.422069</coordinates>
</Point>
</Placemark>
</kml>
如果您有多个功能,则将其添加<LookAt>
到根级文档。
<kml>
<Document>
<LookAt>
...
</LookAt>
<Placemark>
</Placemark>
...
在 Google Earth/Google Earth pro 中还有一个非常简单的方法可以做到这一点:
只需右键单击并在 Places 中显示文件夹的属性。
转到视图选项卡并单击快照当前视图。
然后保存位置以更新 kmz/kml。
这会<LookAt>
在您单击的级别更新 - 因此对于地标级别的点,或者您可以在文件夹级别执行此操作。
我以前用 Javascript 打开我的 kmz 文件,它们会自动居中,但现在几周前,我的地图在北极上方打开。很久以前我创建了 kmz 文件,我不想查看或编辑它们。有没有我可以添加的代码让它像以前一样工作?我在我的开放代码之前
var overlay = new GGeoXml(\"http://www.mysite.com/data/file.kmz" ) ;
map.addOverlay( overlay ) ;
这个看起来很假的代码似乎没有初始化任何东西,但是有效
var bounds = new GLatLngBounds();
// initialize bounds ??
var SWcorner= new GLatLng(parseFloat(87),parseFloat(-1));
var NEcorner= new GLatLng(parseFloat(89),parseFloat(1));
bounds.extend(SWcorner);
bounds.extend(NEcorner);
map.setCenter(new GLatLng(88.0, 0), map.getBoundsZoomLevel(bounds),
G_PHYSICAL_MAP);