在GE中打开KMZ时设置初始视图



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

当我在GE中打开KML文件时,这种行为是默认的,但是当我打开我的KMZ时,浏览器只打开默认的以用户国家为中心的整个世界观。如果双击KMZ文件中的主KML,就可以获得正确的缩放并以数据为中心。当Google Earth加载KMZ时,我如何使其自动发生?

谢谢。

如果您在根KML文件(KMZ中的第一个. KML文件)的第一个元素中添加LookAt或Camera, Google Earth将在该文件加载时从该位置启动。

<?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中也有一种非常简单的方法:

  1. 只需右键单击并调出文件夹的属性。

  2. 进入视图选项卡,单击快照当前视图

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

这将在您点击的级别更新<LookAt> -所以在Placemark级别的一个点,或者您可以在文件夹级别进行操作。

我曾经用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);

相关内容

  • 没有找到相关文章

最新更新