3

我正在使用 Google Maps API 的 Max Zoom Service 来获取给定坐标的最大缩放级别。大多数时候它很快,每个请求只需要大约 150 毫秒。但是,有几次服务变得非常慢,大约 20 秒。

maxZoomService = new google.maps.MaxZoomService();
maxZoomService.getMaxZoomAtLatLng(center, function(response) {

// my process

});

你遇到过类似的问题吗?

4

1 回答 1

0

是的,我们也遇到过同样的问题。我们正在使用 wkhtmltoimage 生成地图图像,以便使用 wkhtmltopdf 将其包含到 PDF 文件中。我们必须设置生成图像的最长时间。如果它太短,那么您通常不会下载所有地图图块来创建图像。太长了,而且对用户来说有一个非常明显的延迟(我们的 5 秒似乎是最佳的连接) 我们希望确保生成的卫星地图不超过使用 MaxZoomService 的最大缩放级别,这就是我们遇到服务问题的时候。

由于它是异步服务,理想情况下,我们等待服务报告最大缩放级别,然后再创建地图并触发正确的 .map 切片下载。

为地图设置默认的“后备”缩放以防服务非常慢并不是一个真正的选择,因为随后在从服务获取返回值时更新缩放级别将在大多数情况下导致重新加载新图块,需要更多延迟...

如果您像我们一样对特定的、可重复的位置(例如来自数据库)感兴趣,那么一种选择可能是提前缓存(存储)最大缩放级别并定期检查更新的值。

在我们的特定情况下,唯一的其他选择是允许服务特定的时间量(比如 2 秒),如果它没有响应,则回退到默认缩放。

不理想,但可以处理服务的“糟糕的头发日子”......

于 2013-03-15T10:41:02.353 回答