2016-04-14 57 views
0

來自Google地球我從 - say地址獲取我的KML文件http://myaddress.com:8080KML HREF必須始終是絕對的?

在KML文件中,我爲每個圖標定義了HREF的幾種樣式。 在這個HREF中,我有這個圖標的名稱,我希望Google地球會隱式地從同一個服務器地址獲取這個文件,例如在本例中的http://myaddress.com:8080/aircraft.png,除非指定了另一個地址。

顯然這不起作用。我想它被解釋爲一個本地文件。

我現在不得不告訴我的KML服務器自己在哪個地址上做廣告,並使用該地址爲其生成的每個KML文件中的每個圖標創建一個絕對HREF。

如何防止在KML中爲HREF-ed圖標使用服務器地址?

示例KML文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xal="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"> 
    <Document> 
     <name>GE View</name> 
     <open>1</open> 
     <Style id="style8"> 
      <IconStyle> 
       <scale>1.0</scale> 
       <heading>0.0</heading> 
       <Icon> 
        <href>aircraft.png</href> 
        <refreshInterval>0.0</refreshInterval> 
        <viewRefreshTime>0.0</viewRefreshTime> 
        <viewBoundScale>0.0</viewBoundScale> 
       </Icon> 
      </IconStyle> 
     </Style> 
     <Folder> 
      <name>Entities</name> 
      <open>1</open> 
      <Placemark> 
       <name>HLAobjectRoot.BaseEntity.PhysicalEntity.Platform.Aircraft101</name> 
       <visibility>1</visibility> 
       <open>0</open> 
       <description>HLAobjectRoot.BaseEntity.PhysicalEntity.Platform.Aircraft101: EntityType=1.2.0.-103.57.0.0</description> 
       <styleUrl>style8</styleUrl> 
       <Point> 
        <extrude>1</extrude> 
        <altitudeMode>relativeToGround</altitudeMode> 
        <coordinates>-18.00000000000001,53.999999999219824,1000.0000635553151</coordinates> 
       </Point> 
      </Placemark> 
     </Folder> 
    </Document> 
</kml> 

回答

0

KML可以處理相關資料,文件,但如果從Web瀏覽器的web服務器,至少它在Windows這樣做的方式訪問時,KML文件被保存到臨時/下載文件夾並由Google地球本地訪問。此時,Web服務器上文件的相關鏈接將丟失。這是網絡瀏覽器和Google地球作爲KML文件的外部處理程序進行交互的一個問題。但是,如果KML是從本地文件(例如file:// URL)在Google地球中打開的,則本地相關引用將按預期工作。

如果您將圖標和圖像包含在KMZ文件中,那麼您可以在KML中使用相對URL來引用這些網址。

這裏是您的KMZ文件的與圖標或圖像的結構:

+對於doc.kml
+ aircraft.png

KML相對於參考:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2"> 
    <Document> 
     <name>GE View</name> 
     <open>1</open> 
     <Style id="style8"> 
      <IconStyle> 
       <Icon> 
        <href>aircraft.png</href> 
       </Icon> 
      </IconStyle> 
     </Style> 
... 

下面是一個example KMZ文件,其中嵌入的地面覆蓋圖像被引用爲相對URL。

有關KMZ URLS的其他詳細信息,請參閱here

相關問題