Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图:一些KMZ图层在多次访问后消失_Javascript_Google Maps_Kml_Layer_Invalidation - Fatal编程技术网

Javascript 谷歌地图:一些KMZ图层在多次访问后消失

Javascript 谷歌地图:一些KMZ图层在多次访问后消失,javascript,google-maps,kml,layer,invalidation,Javascript,Google Maps,Kml,Layer,Invalidation,最近,我正在开发一个包含KML图层的地图,该图层被压缩为KMZ文件(约45mb)。 由于存在文件重量限制,我首先将文件拆分为3mb文件。 然后我注意到一些被分割的文件并不是每次都显示出来,导致地图上出现了一些“空白”。 所以我在很多论坛上做了研究,发现为了让一切正常工作,文件的真正限制是2mb。 更新后,KML层确实显示出完整性 然而,在做了很多测试之后,我发现一些部件又消失了。 目前大约有一半的部件没有显示出来,就像被Google Maps API拒绝一样(被拒绝的部件总是相同的,并且没有增加

最近,我正在开发一个包含KML图层的地图,该图层被压缩为KMZ文件(约45mb)。 由于存在文件重量限制,我首先将文件拆分为3mb文件。 然后我注意到一些被分割的文件并不是每次都显示出来,导致地图上出现了一些“空白”。 所以我在很多论坛上做了研究,发现为了让一切正常工作,文件的真正限制是2mb。 更新后,KML层确实显示出完整性

然而,在做了很多测试之后,我发现一些部件又消失了。 目前大约有一半的部件没有显示出来,就像被Google Maps API拒绝一样(被拒绝的部件总是相同的,并且没有增加,所以我认为它们是无效的)。 我再次对谷歌地图KML层API和限制/验证进行了大量研究,但找不到任何与我的问题相匹配的信息

Google Maps API没有发送错误,只是得到了空响应,如:

/**/_xdc_._swjxb2 && _xdc_._swjxb2( [0,null,null,null,null,null,4,[["client","2"]]] )
有人知道关于文件限制/验证的规则吗? 一个KMZ URL是否有访问限制?还是因为文件无效?如果是,如何检查我的文件是否有效

以下是从被拒绝的KML文件之一提取的KML:

下载网址:

钥匙:!4HFBSLDPAZHxHTPFLOGFGXIRRBT2USNFVY 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文件上载服务器解决。

KML渲染的大小和复杂性限制
Maps JavaScript API对加载的KML文件的大小和复杂性有限制。以下是当前限制的摘要

注:这些限制随时可能更改

获取的最大文件大小(原始KML、原始GeoRSS或压缩KMZ)3MB
最大未压缩KML文件大小10MB
网络链接的最大数量10
文档范围内功能的最大总数为1000个
KML层的数量
单个谷歌地图上显示的KML层数量有限制。如果超过此限制,地图上将不会显示任何图层,并且会在web浏览器的JavaScript控制台中报告错误。该限制基于创建的Kmlayer类的数量和用于创建这些层的所有URL的总长度。您创建的每个新KML层都将占用该层的一部分限制,并根据加载KML文件的URL的长度进一步占用该限制的一部分。因此,可以添加的层数将因应用程序而异;平均而言,您应该能够加载10到20层而不会达到极限。如果仍然达到限制,请使用URL缩短器来缩短KML URL。或者,创建单个KML文件,其中包含指向各个KML URL的网络链接

您发布的KML为5MB(超过了获取的最大文件大小)

(但这会将其转化为浏览器中的“普通”谷歌地图对象,性能可能会受到影响)


我发布的KML不是一个已获取的文件,而是一个未压缩的KML文件。所以最大容量是10MB,应该没问题吧?顺便说一下,未被拒绝的文件具有完全相同的权重。当压缩为KMZ时,文件大小为1,9 mb。您的意思是压缩的KMZ文件和其中包含的KML文件的最大大小都应为3MB吗?否。“最大未压缩KML文件大小”为10MB。但是如果我将发布的文件压缩到kmz,我仍然会收到一个
FETCH_错误
。我知道,问题是如果我使用KML文件,总大小将变为150mb,这对于仅仅在地图上显示一个图层来说太多了。。。我可以拆分KMZ文件,使KML文件小于3MB,但我担心我会超过一个站点中要加载的KMZ文件数的限制。。。不是吗?还有一个问题是,为什么其他文件在工作?KML文件也有大约5MB,但它们可以工作。我会认为文件验证是完全随机的。。。 Maximum fetched file size (raw KML, raw GeoRSS, or compressed KMZ) 3MB
Maximum uncompressed KML file size 10MB
Maximum number of network Links 10
Maximum number of total document-wide features 1,000