从Google地球我获取我的KML文件 - 比如 - 地址http://myaddress.com:8080
在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 :(得分:0)
KML可以处理对文件的相对引用,但如果从Web浏览器从Web浏览器访问,至少在Windows中这样做,KML文件将保存到临时/下载文件夹中,并由Google Earth在本地访问。此时,Web服务器上文件的相对链接将丢失。这是Web浏览器和Google Earth作为KML文件的外部处理程序交互的问题。但是,如果KML是在本地文件(例如file:// URL)中在Google地球中打开的,则本地相对引用会按预期工作。
如果您在KMZ文件中包含图标和图片,则可以使用KML中的相对网址引用这些网址。
以下是带有图标或图片的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>
...
以下是KMZ文件的example,其中嵌入的地面叠加图像被引用为相对网址。
可以找到KMZ中URLS的一些其他详细信息here。