【问题标题】:kml layers google maps limits changed?kml 层谷歌地图限制改变了吗?
【发布时间】:2015-09-17 19:14:04
【问题描述】:

我的应用程序这样做:

  1. 生成大量标记
  2. 将它们放入每个带有 20k 标记的 kml 文件中
  3. 将文件导出到服务器
  4. 将每个文件作为 kmllayer 打开并将图层设置为地图对象

我的问题是:

在更改 API 之前(一个月前),我可以毫无问题地在同一张地图上显示超过 10 万个标记。 IE 会慢很多,但大部分时间仍能正确加载点。

现在(我身边没有更改代码)IE 甚至不会用 10k 标记绘制单层。 Chrome 可以达到约 20k,但仅此而已。 如果点的数量很大,地图根本不会绘制单个标记。

你们知道限制有什么变化吗?有什么解决办法吗?

代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>KML Layers</title>
    <style>
      html, body, #map-canvas {
        height: 100%;
        margin: 0px;
        padding: 0px
      }
    </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
    <script type="text/javascript" src="htmlConfig.js" ></script>
    <script>
    var map;    
    function initialize()
    {
        var chicago = new google.maps.LatLng(-47.19105,-22.857302);
        var mapOptions =
        {
            zoom: 6,
            center: chicago
                }   

        map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

        for(i = 0; i < _files; i++)
        {
            foo = (_url+'/'+(i)+'.kml');
            var ctaLayer = new google.maps.KmlLayer({url: foo});
            ctaLayer.setMap(map);
        }

    }
    google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
    <div id="map-canvas"></div>
  </body>
</html>

url 是服务器的路径,_files 是文件的数量,分别命名为 0.kml、1.kml 等等

【问题讨论】:

  • 您的服务器名称或 KML 文件的路径是否更改 (_url)?
  • 我发现当缩放距离很远时,chrome只是不绘制标记,因为某种原因。 IE 还是不行...
  • 你能提供一个Minimal, Complete, Tested and Readable example 来证明这个问题吗?

标签: javascript google-maps google-maps-api-3 google-maps-markers kml


【解决方案1】:

KML 存在限制,并在此 document 主要中进行了描述,限制是 kml 的大小而不是元素的数量

【讨论】:

  • 是的,但是 kml 的大小与元素的数量成正比
【解决方案2】:

刚刚在家中测试了该软件,它可以正常工作。所以我发现问题是安装了网络过滤器 IT 部门。不知何故,它扰乱了与公共服务器或谷歌服务器中的 kml 文件的通信。我猜在这种情况下没什么可做的......

【讨论】:

    【解决方案3】:

    Reference to the URL length limit in the documentation:

    可以在单个 Google 地图上显示的 KML 图层的数量是有限制的。如果超出此限制,则不会显示任何图层。该限制基于传递给 KMLLayer 类的所有 URL 的总长度,因此会因应用程序而异;平均而言,您应该能够加载 10 到 20 层而不会达到限制。

    限制可能已根据 API 的更改而更改。

    尝试使用“URL Shortener”(如 tinyurl)来缩短 KML 文件的 URL 长度。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-10
    • 2015-07-25
    • 2012-05-24
    • 2019-08-06
    • 2012-04-19
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多