我正在创建一个.KMZ文件,可以将其导入“我的Google地图”,并且我想在一些地标的描述中使用图像。 KMZ格式只是一个压缩文件夹,其中包含带有结构的KML文件,然后是图像文件。问题是我不知道是否/如何在KML中链接图像文件以供Google解析并使用它们。目前我的结构是这样的:
main.kmz
-main.kml
-image.jpg
在main.kmz中,我链接为我的图片
<Placemark>
<name>test</name>
<description>
<![CDATA[<img src="image.jpg" width='600' />]]>
</description>
<Point><coordinates>153.4380409849745,-28.07224651054966,10.2340928109942</coordinates></Point>
</Placemark>
但是这不起作用,“我的地图”不处理图像,我得到的只是一个黑色矩形。奇怪的是,如果我将同一文件导入Google Earth Desktop应用程序,则该文件将被正确上传和处理并显示出来。
当我通过“我的地图”界面手动上传图像时,它会正确显示,然后将图层导出为KMZ,我会看到其图像链接为
<description><![CDATA[<img src="https://lh3.googleusercontent.com/cbMcdkW0FH86QPYuJH_hOBeH0dMgcgevmf9l37Lk5O2Ap0r_gTrZyuREZumY11XW2E3I0r7hpHOpGlCSVG6jMJJFVFbTpxCw71hZORu8YRtyPdv0nRGprLkMefNBCNj4wpHi" height="200" width="auto" />]]></description>
这正确显示。因此,理想情况下,这就是我想要的结果,但是我不确定在导入时是否有任何方法可以让Google知道图像,因此它的存储方式与手动上传时类似,然后将其链接到图像描述中。
答案 0 :(得分:0)
将图像包含在KMZ文件中并在Earth或Maps中打开时,它不会将其“上传”到托管服务器,而是直接在KMZ中的查看器中本地使用。 MyMaps无法做到这一点,需要在线托管在某个地方的图像。如您所见,当您手动添加图像时,MyMaps会将其上载到托管服务器,但对导入的KMZ中嵌入的图像不执行此操作,这就是为什么它对您不起作用的原因。
如果您想使用KMZ来显示它,则它应该可以在Google Maps API中使用。或者,您可以将图像上传到某个地方的公共托管,然后通过KMZ中气球中的公共URL添加它们。