我是新的社区,我有一个简单的谷歌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
所需要的只是对getTileUrl
向https://example.tiles.com/发出的成功请求进行计数
1条答案
按热度按时间5uzkadbs1#
我试着使用
'tilesloaded'
,它对我很有效:我只是将第一个参数
map
更改为gmap
,因为这是您在代码中定义map示例的方式。下面是一个代码片段,您可以检查这是否是您希望它发生的方式:
x一个一个一个一个x一个一个二个一个x一个一个三个一个
这里发生的是当
tilesloaded
被触发时,它将发送一个带有文本"Tile is Loaded!"
的警报。希望这个有用。