Google maps Google提升API-拆分多个提升请求

Google maps Google提升API-拆分多个提升请求,google-maps,google-maps-api-3,google-api,Google Maps,Google Maps Api 3,Google Api,我试图将一个大的提升请求拆分为多个请求,以避免每个请求中的1秒/请求和512个coords限制 我面临的问题是,对我的请求的答复并不总是井然有序。使用setInterval是否足够可靠? 以下是一个以错误顺序接收的响应示例,它会导致问题(在使用setInterval之前): 这是我的最新代码: 函数getCourseElevationData(){ var path=bikePathCoordinates;//一堆横向坐标、长坐标 //numberRequestToDo=Math.ceil(p

我试图将一个大的提升请求拆分为多个请求,以避免每个请求中的1秒/请求和512个coords限制

我面临的问题是,对我的请求的答复并不总是井然有序。使用setInterval是否足够可靠? 以下是一个以错误顺序接收的响应示例,它会导致问题(在使用setInterval之前):

这是我的最新代码:

函数getCourseElevationData(){ var path=bikePathCoordinates;//一堆横向坐标、长坐标 //numberRequestToDo=Math.ceil(path.length/512);//TODO:在多个512包中拆分请求(google配额) numberRequestToDo=2;//临时用于测试 currentRequestNumber=-1;//在第一次调用get512Elevation时将为0 arrayOfRequest=[]; //1 var ptrStart=0; var path sliced=path.slice(ptrStart,ptrStart+512); ArrayFrequest.push(路径切片); //2 ptrStart+=512; pathSliced=path.slice(ptrStart,ptrStart+512); ArrayFrequest.push(路径切片); timerElevation=setInterval(request512Elevation,1000);//1秒 } //--------------------------------------------------------- 函数请求512elevation(){ 警报(“请求512提升”); //还有一个要求要做 如果(currentRequestNumber+1我的第一个想法是使用函数闭包将请求与响应关联起来。您是否有示例数据显示问题?以下是一个结果示例,其中有两个512坐标的请求有效:我正在使用一个文件示例:有时似乎只有第一个请求成功,而第二个请求没有触发回调,我认为这可能是由于配额和请求速度太快,试图找到一种方法在每个请求之间睡眠1秒钟。我只想在最后一个请求完成时才显示图表,但我不知道如何像你提到的那样识别它。我已经用我从现在开始采用的解决方案更新了我的代码。我只需要弄清楚如何确保每个请求成功(失败时重试),并在请求之间添加延迟,以避免google 1sec/请求限制。不确定延迟的最佳方式,繁忙的while循环等待最后一次回调成功似乎是个坏主意。谢谢你的帮助,我已经能够用这种方式解决回调问题。1-跟踪已成功完成的响应2-如果前一个请求尚未完成,请不要尝试另一个请求。我曾面临类似问题,并使用计时器和处理布尔值修复了它,以确保在继续下一个请求之前已完成请求,但我现在遇到高程标记放置不准确的问题。您也遇到过这种情况吗?我的第一个想法是使用函数闭包将请求与响应关联起来。您是否有示例数据显示问题?以下是一个结果示例,其中有两个512坐标的请求有效:我正在使用一个文件示例:有时似乎只有第一个请求成功,而第二个请求没有触发回调,我认为这可能是由于配额和请求速度太快,试图找到一种方法在每个请求之间睡眠1秒钟。我只想在最后一个请求完成时才显示图表,但我不知道如何像你提到的那样识别它。我已经用我从现在开始采用的解决方案更新了我的代码。我只需要弄清楚如何确保每个请求成功(失败时重试),并在请求之间添加延迟,以避免google 1sec/请求限制。不确定延迟的最佳方式,繁忙的while循环等待最后一次回调成功似乎是个坏主意。谢谢你的帮助,我已经能够用这种方式解决回调问题。1-跟踪已成功完成的响应2-如果前一个请求尚未完成,请不要尝试另一个请求。我曾面临类似问题,并使用计时器和处理布尔值修复了它,以确保在继续下一个请求之前已完成请求,但我现在遇到高程标记放置不准确的问题。你也面临过这个问题吗?