在 Google 地图中加载 Kml 图层是偶然的吗?

2023-12-26

我正在使用 Google Maps Javascript API v3 将一些 KML 文件加载到地图上。但是,对于某些层,我会不同程度地返回 TIMED_OUT、FETCH_ERROR 和 OK。我已经获取了每个图层的 URL,并将其放入maps.google.com,其中图层总是加载得很好。还有其他人遇到过图层加载不一致的问题吗?更重要的是,有什么办法可以让 Google 地图在被要求时一致地加载图层吗?

我已经包含了用于加载图层的代码,尽管我相当确定它没有错误,因为图层有时确实会加载。

    function addMapLayer(url) {
        console.log('Attempting to add layer at: ' + url);
        var layer = new google.maps.KmlLayer(url, {
            preserveViewport: true,
            map: maps.BirdMap.map
        });

        google.maps.event.addListener(layer, 'status_changed', function () {
            console.log('KML load: ' + layer.getStatus());
            if (layer.getStatus() != 'OK') {
                $('#maps-error').text('[' + layer.getStatus() + '] Google Maps could not load the layer. Please try again later.');
                $('#maps-error').dialog('open');
            } else {
                layers.push(layer);
            }
        });
    }

正在加载KmlLayers取决于一些无法控制的事情,例如托管 KML 的服务器之间的网络(让我假设这是你的服务器) 文件和必须下载它的 Google 服务器。该网络(或您的服务器)越慢,Google 服务器就越容易无法获取该文件。我很确定Google服务器不会等待你的文件太久,所以如果网络或你的服务器很慢,它可能会放弃并给你这些错误之一。而且我不认为有任何重试机制,因为我已经看到这种情况发生了好几次(在慢速服务器上有大文件),并且重试的唯一方法是重新加载页面,以便 JavaScript API 再次请求该层。

See 这个答案 https://stackoverflow.com/questions/9225819/how-to-create-a-google-map-with-kml-layer-overlay-dynamically/9228379#9228379一些需要注意的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Google 地图中加载 Kml 图层是偶然的吗? 的相关文章