1

我正在创建一个 KMZ 文件作为程序的输出(使用 SharpKML)。如何设置初始视图,以便在 Google 地球中打开此文件时,它会围绕我的数据居中并缩放?

当我在 GE 中打开 KML 文件时,默认情况下会出现这种行为,但是当我打开 KMZ 时,浏览器只会打开以用户国家/地区为中心的默认全局视图。如果我双击我的 KMZ 文件中的主 KML,那么我会得到正确的缩放并以我的数据为中心。当 Google 地球加载 KMZ 时,如何自动实现这一点?

谢谢。

4

3 回答 3

4

如果您将LookAtCamera添加到根 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>
      ...
于 2013-06-06T00:20:00.553 回答
2

在 Google Earth/Google Earth pro 中还有一个非常简单的方法可以做到这一点:

  1. 只需右键单击并在 Places 中显示文件夹的属性。

  2. 转到视图选项卡并单击快照当前视图。

  3. 然后保存位置以更新 kmz/kml。

这会<LookAt>在您单击的级别更新 - 因此对于地标级别的点,或者您可以在文件夹级别执行此操作。

于 2016-08-10T03:21:49.587 回答
0

我以前用 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);
于 2013-12-08T00:59:03.630 回答