如何在JavaScript中检测getTileUrl(谷歌Map)中的请求是否成功?

8xiog9wr  于 2023-01-01  发布在  Java
关注(0)|答案(1)|浏览(243)

我是新的社区,我有一个简单的谷歌Map覆盖,我从外部服务获得的瓷砖(格式png),例如:https://example.tiles.com/我需要监视器或JavaScript中的某种机制来跟踪或检测getTileUrl向外部服务发出的成功或失败的请求,我搜索了官方文档,但一无所获。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Map</title>
    <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
    <style> 
    #map { 
        width: 600px; 
        height: 500px; 
    }
    </style>
</head>
<body>
    <div id="map"></div>
    <script>
        let gmap;
        function initMap() {
            gmap = new google.maps.Map(document.getElementById('map'), {
                center: {lat: 44.9648, lng: -93.252},
                zoom: 5
            });

            const layers = new google.maps.ImageMapType({
                getTileUrl: function(coord, zoom) {
                    return ['https://example.tiles.com/', zoom, '/', coord.x, '/', coord.y, '/current.png'].join('');
                },
                tileSize: new google.maps.Size(256, 256)
            });
            gmap.overlayMapTypes.push(layers);
        };
    </script>
    <script src="https://maps.googleapis.com/maps/api/js?key=GOOGLE_API_KEY&callback=initMap" async defer></script>
</body>
</html>

我尝试过使用tilesloaded侦听器,但它不支持函数参数。

google.maps.event.addListenerOnce(gmap, 'tilesloaded', function(){
..
});

tilesloaded
所需要的只是对getTileUrlhttps://example.tiles.com/发出的成功请求进行计数

5uzkadbs

5uzkadbs1#

我试着使用'tilesloaded',它对我很有效:

google.maps.event.addListenerOnce(gmap, 'tilesloaded', function(){
alert("Tile is loaded!")
});

我只是将第一个参数map更改为gmap,因为这是您在代码中定义map示例的方式。
下面是一个代码片段,您可以检查这是否是您希望它发生的方式:
x一个一个一个一个x一个一个二个一个x一个一个三个一个
这里发生的是当tilesloaded被触发时,它将发送一个带有文本"Tile is Loaded!"的警报。
希望这个有用。

相关问题