【发布时间】:2019-08-27 08:58:13
【问题描述】:
最近我正在开发一个包含压缩为 KMZ 文件(约 45mb)的 KML 图层的地图。 由于存在文件重量限制,我首先将文件拆分为 3mb 的文件。 然后我注意到一些拆分的文件每次都没有显示,导致地图上出现一些“空白”。 所以我在很多论坛上进行了研究,发现为了让一切正常工作,文件的真正限制是 2mb。 更新后,KML Layer 确实完整显示了。
但是,经过多次测试,我发现某些部分又消失了。 目前大约有一半的部分没有显示,就像它们被 Google Maps API 拒绝一样(被拒绝的部分总是相同的,而且它们没有增加,所以我认为它们是无效的)。 我再次对 Google Maps KML Layer API 和限制/验证进行了许多研究,但找不到与我的问题匹配的任何信息。
Google Maps API 没有发送错误,只是得到如下的空响应:
/**/_xdc_._swjxb2 && _xdc_._swjxb2( [0,null,null,null,null,null,4,[["client","2"]]] )
有人知道文件限制/验证的规则吗? 一个 KMZ URL 是否有访问限制?还是因为文件无效?如果是,如何检查我的文件是否有效?
这是从被拒绝的 KML 文件之一中提取的 KML:
下载地址:https://mega.nz/#!zohkmSAQ
键:!4HfbSLDpazhXHsTpFLOgfgXirRbt2usNFVy-ZYoDNcw
由于某些原因,我只删除了 . 但这是它的格式:
<![CDATA[<html xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<head>
<META http-equiv="Content-Type" content="text/html">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<table>
<td>NAME</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>LABEL</td>
<td>VALUE</td>
</tr>
<tr>
<td>LABEL</td>
<td>VALUE</td>
</tr>
<tr>
<td>LABEL</td>
<td>VALUE</td>
</tr>
<tr>
<td>LABEL</td>
<td>VALUE</td>
</tr>
<tr>
<td>LABEL</td>
<td>VALUE</td>
</tr>
<tr>
<td>LABEL</td>
<td></td>
</tr>
<tr>
<td>LABEL</td>
<td>VALUE</td>
</tr>
<tr>
<td>LABEL</td>
<td>VALUE</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>]]>
我尝试将扩展名重命名为 xml 并用 Chrome 打开它以检查它是否格式正确,但它已被 Chrome 正确解析。
编辑:通过升级服务器以上传 KMZ 文件解决了问题。
【问题讨论】:
标签: javascript google-maps kml layer invalidation