2013-03-25 240 views
-1

我正在研究一个应用程序,我想要在Google地图上显示覆盖的kml文件。这个kml文件由我想为它们设置一个自定义图标的标记组成。图标存储在我的电脑上。xml文件中的图标标记

我的问题是我如何能够从我的kml文件访问这些图标,以便在地图上显示它们。

以下是我试图通过将图标存储在kkml文件的相同文件中,但它不起作用。

<?xml version="1.0" encoding="utf-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2"> 
    <Document> 
    <name>route</name> 
    <Placemark> 
     <name>445</name> 
     <description>Market</description> 
     <Style> 
      <IconStyle> 
       <Icon> 
       <href>0.png</href> 
       </Icon> 
      </IconStyle> 
     </Style> 
     <Point> 
     <coordinates>14.5139685555926,35.898079278121</coordinates> 
     </Point> 
    </Placemark> 
    </Document> 
</kml> 
+1

你有什么问题?你的问题是什么? – geocodezip 2013-03-25 13:30:15

+0

感谢您的回复。我刚刚解决了这是一个问题从JavaScript我已经设置标记选项,而不是从kml文件。再次感谢:) – 2013-03-25 13:36:29

+0

一个快速的问题?我可以显示本地图标图像作为标记吗?因为我测试过的只是从网页拍摄的图像,但本地存储的图像不起作用。 @geocodezip – 2013-03-25 13:41:13

回答

2

你必须在相同的水平KML(同一web服务器上,例如在相同的文件夹)中存储的图标的选择或子文件夹中,使得相对URL正确解析或嵌入内的KMZ文件,它基本上是一个带有根KML文件的“ZIP”文件,以及KML中引用的任意数量的其他KML文件和内联图标或叠加层。

例1:如果你同时下载KML和图像

<description> 
     <![CDATA[ 
     Here is an image: 
     <img src="images/googleearth.gif"/> 
     ]]> 
     </description> 

在某些平台上的图像不工作,但: http://kml-samples.googlecode.com/svn/trunk/kml/kmz/balloon/balloon-image-rel.kml

这里的KML图像相对的引用KML文件在本地,它将按照您所期望的内嵌图像显示。

例2:

http://kml-samples.googlecode.com/svn/trunk/kml/kmz/balloon/balloon-image-rel.kmz

在这个例子中图像googleearth.gif存储在KMZ文件在内的子文件夹的图像,以便下载所述KMZ文件既包括KML和图片。

您可以按照在Web服务器上的内容来布置KMZ文件。

Google Maps documentation表示它支持KMZ(压缩的KML,包括附加图像)。

+0

因此无法从本地引用图像。因为我目前在本地主机上工作@ JasonM1 – 2013-03-25 20:42:00

+0

如果图标与KML文件位于同一个文件夹中,那么它可能会正确解析。取决于Maps API如何解析本地链接。如果打包为KMZ,则图标始终与KML文件位于同一位置。您可以使用绝对URL来开发图像,以便让应用程序能够正常工作。 – JasonM1 2013-03-25 21:53:16