簡體   English   中英

在GE中打開KMZ時設置初始視圖

[英]Set Initial View When Opening KMZ in GE

我正在創建一個KMZ文件作為我程序的輸出(使用SharpKML)。 如何設置初始視圖,以便在Google地球中打開此文件時,它會居中並縮放我的數據?

當我在GE中打開KML文件時,默認情況下會出現這種情況,但是當我打開KMZ時,瀏覽器只會打開以用戶所在國家/地區為中心的默認全局視圖。 如果我雙擊KMZ文件中的主要KML,那么我將獲得正確的縮放並以數據為中心。 當Google地球加載KMZ時,如何自動完成此操作?

謝謝。

如果將LookAtCamera添加到根KML文件中的第一個元素(KMZ中的第一個.kml文件),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地球/ Google地球專業版中,還有一種非常簡單的方法:

  1. 只需右鍵單擊並顯示“場所中的文件夾”的屬性。

  2. 轉到視圖選項卡,然后單擊快照當前視圖。

  3. 然后保存位置以更新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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM