我正在使用Google Maps API的Max Zoom Service获取给定坐标的最大缩放级别。大多数情况下它很快,每个请求只需要大约150毫秒。但是,有一些情况下服务变得非常缓慢,大约20秒。
maxZoomService = new google.maps.MaxZoomService();
maxZoomService.getMaxZoomAtLatLng(center, function(response) {
// my process
});
您是否遇到过类似的问题?
答案 0 :(得分:0)
是的,我们遇到了同样的问题。 我们正在使用wkhtmltoimage生成地图图像,以便使用wkhtmltopdf包含在PDF文件中。 我们必须设置生成图像的最长时间。如果它太短,那么您通常不会下载所有地图图块以创建图像。太长了,用户有一个非常明显的延迟(我们的连接5秒似乎是最佳的) 我们希望使用MaxZoomService确保生成的卫星地图不超过最大缩放级别,并且当我们遇到服务问题时就是这样。
由于它是一个异步服务,理想情况下我们会等待服务在创建地图之前报告最大缩放级别,从而触发正确的.map图块下载。
如果服务真的很慢,为地图设置默认的“后备”缩放实际上不是一个选项,因为在从服务获取返回值时随后更新缩放级别在大多数情况下会导致重新加载新的切片,需要更多延迟...
如果像我们一样,您对特定的,可重复的位置(例如来自数据库)感兴趣,那么一个选项可能是提前缓存(存储)最大缩放级别并定期检查更新的值。
在我们的特定情况下,唯一的另一个选择是允许服务在特定的时间内(例如2秒),如果它没有响应,则回退到默认缩放。
不理想,但可以处理“糟糕的日子”服务......