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

时间:2013-06-05 16:27:03

标签: kml google-earth kmz sharpkml

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

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

感谢。

3 个答案:

答案 0 :(得分:3)

如果您向根KML文件中的第一个元素(KMZ中的第一个.kml文件)添加LookAtCamera,则Google地球将在加载该文件时从该位置开始。< / p>

<?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>
      ...

答案 1 :(得分:1)

在Google地球/ Google地球专业版中,还有一种非常简单的方法:

  1. 只需右键单击并显示“地方信息中的文件夹”的属性。

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

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

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

答案 2 :(得分: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);