我正在创建一个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中也有一种非常简单的方法:
-
只需右键单击并调出文件夹的属性。
-
进入视图选项卡,单击快照当前视图
-
然后保存位置为更新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);