2012-11-28 24 views
0

我剛開始學習如何操作KML文件。這裏有一個問題,我不知道如何克服....我創建了一個多邊形並添加了一個描述以顯示爲一個氣球,但是一旦Google Earth開始工作,就會在多邊形可見之前立即出現。我想要的是從多邊形出現的特定距離(例如在LookAt元素的距離範圍內)顯示氣球。有人知道如何管理它嗎? 我的代碼如下:延遲KML代碼中的氣球組件

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2" mlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 
    <LookAt> 
    <longitude>17.99514610290434</longitude> 
    <latitude>59.36293893395309</latitude> 
    <altitude>0</altitude> 
    <range>597.51212259908</range> 
    <tilt>52.34415598649959</tilt> 
    <heading>105.3974737169693</heading> 

</LookAt> 
<Placemark> 
    <name>Stadium</name> 

    <description> 
     <![CDATA[ 
     this is <b><i>Råsunda soccer stadium</i></b> 
     ]]> 
    </description> 
     <gx:balloonVisibility>1</gx:balloonVisibility> 


     <styleUrl>#msn_ylw-pushpin</styleUrl> 
    <Polygon> 
     <extrude>1</extrude> 
     <tessellate>1</tessellate> 
     <altitudeMode>absolute</altitudeMode> 
     <outerBoundaryIs> 
      <LinearRing> 
       <coordinates> 
        17.99514610290434,59.36293893395309,100 17.99651951950199,59.36209399425741,100 17.99752330705672,59.36252751885282,100 17.99613146514916,59.36335387902954,100 17.99514610290434,59.36293893395309,100 
       </coordinates> 
      </LinearRing> 
     </outerBoundaryIs> 
    </Polygon> 
</Placemark> 
</Document> 
</kml> 

回答

1

通常情況下,你可以跳過渲染多邊形,直到你得到「接近」足夠它通過由當給定區域映射到最小或最大#計算確定的Region元素定義的像素。

另外,<gx:balloonVisibility>標籤強制在加載KML時顯示描述氣球,無論區域是否處於活動狀態。在KML中直接添加地區仍會顯示彈出式氣球。

要做你想做的事情,你必須用KML文件包裝第二個KML文件,NetworkLink帶有一個區域,只有當區域處於活動狀態(又足夠接近)時才加載秒KML,與多邊形一起顯示。

<?xml version="1.0" encoding="utf-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2"> 
<Document> 

    <LookAt> 
     <longitude>17.99514610290434</longitude> 
     <latitude>59.36293893395309</latitude> 
     <altitude>0</altitude> 
     <heading>105.3974737169693</heading> 
     <tilt>52.34415598649959</tilt> 
     <range>597.51212259908</range> 
    </LookAt> 

    <NetworkLink> 
    <Region> 
     <LatLonAltBox> 
      <north>59.363792</north> 
      <south>59.361556</south> 
      <east>17.998029</east> 
      <west>17.994443</west> 
     </LatLonAltBox> 
     <Lod> 
      <minLodPixels>128</minLodPixels> 
      <maxLodPixels>-1</maxLodPixels> 
     </Lod> 
     </Region> 

     <Link> 
     <href>target.kml</href> 
     </Link>  
    </NetworkLink> 

</Document> 

</kml> 

而且target.kml文件包含原始KML你給:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<kml xmlns="http://www.opengis.net/kml/2.2">  
<Placemark> 
    <name>Stadium</name> 
    ... 
</Placemark>  
</kml> 

你可以改變的距離功能+氣球出現通過調整minLodPixels值和/或大小地區。目前,當由多邊形周圍區域定義的區域在屏幕上至少有128個像素時,該功能將顯示。更改爲32或64和/或使區域面積更大以使其看起來更快。

注意谷歌地球客戶端不給你一個工具來編輯,甚至看到地圖上的區域邊界框,所以調試這很棘手。您可以將KML粘貼到此tool中以生成KML,使區域邊界區域可見。這有助於更容易地調試區域。

+0

關於,我用它,因爲氣球沒有它,只有通過點擊該功能纔會被激活...所以我想在沒有點擊的情況下顯示它,但是距離功能合適的距離.... – msc87

+1

更新了我的答案。檢查新的解決方法。 – JasonM1

+0

它確實工作..... TNX .... 我該如何改變出現的距離?和PLZ給我一個簡短的解釋?(如果可能的話) – msc87