image - 将 KMZ 文件上传到我的 Google 地图中,并在地标描述中添加图片
问题描述
我正在创建一个可以导入到我的 Google 地图的 .KMZ 文件,并且我想使用图像来描述一些地标。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 地球桌面应用程序,该文件会被正确上传和处理并显示出来。
当我通过“我的地图”界面手动上传图像时,它会正确显示,如果我将图层导出为 KMZ,我会看到他们的图像链接为
<description><![CDATA[<img src="https://lh3.googleusercontent.com/cbMcdkW0FH86QPYuJH_hOBeH0dMgcgevmf9l37Lk5O2Ap0r_gTrZyuREZumY11XW2E3I0r7hpHOpGlCSVG6jMJJFVFbTpxCw71hZORu8YRtyPdv0nRGprLkMefNBCNj4wpHi" height="200" width="auto" />]]></description>
这显示正确。所以理想情况下,这就是我想要的结果,但我不确定在导入时是否有任何方法让 Google 知道图像,因此它以与手动上传时类似的方式存储它,然后在图像描述中链接它.
解决方案
当您在 KMZ 文件中包含图像并在地球或地图中打开它时,它不会将其“上传”到托管服务器,而是直接在 KMZ 之外的查看器中本地使用它。MyMaps 无法做到这一点,并且需要在某处在线托管图像。如您所见,当您手动添加图像时,MyMaps 会将其上传到托管服务器,但不会对嵌入在导入的 KMZ 中的图像执行此操作,这就是它不适合您的原因。
您的 KMZ 应该在 Google Maps API 中工作,如果您想使用它来显示它。或者,您可以将图像上传到某处的公共主机,然后通过 KMZ 中气球中的公共 URL 添加它们。
推荐阅读
- c++ - 如果没有找到素数,如何打印“否”?
- reactjs - 路由到反应中的不同组件
- python - 根据所选参数记忆函数结果
- perl - 使用 XML:LibXML 替换节点
- vim - 我怎样才能使这个命令工作而不给'%'或'#'的空文件名,只适用于“:p:h”`
- php - 如何从表中获取记录,如果将来某个特定的库获得特定的值然后不获取它,下面将进一步详细展开
- c# - 捕获以避免 System.AccessViolationException
- angular - Firebase 托管重定向到浏览器配置中的首选语言的子目录
- jquery - 如何在 Jquery 中创建影响所选 div 的函数
- c++ - c++ 翻译程序中单词中的撇号