台灣最大程式設計社群網站
線上人數
680
 
會員總數:245214
討論主題:189087
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 呼叫多次google map api 再把值ajax回寫db
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
呼叫多次google map api 再把值ajax回寫db
價值 : 50 QP  點閱數:144 回應數:5

樓主

芋頭
初學者
247 455
3074 452
發送站內信

請問各位大大
我在前端寫了一個function -->會迴圈去呼叫google map API 計算兩點的行駛里程(因為不只一個案件需要計算) ,
每一次計算完成後 , 會呼叫ajax把算完的資料寫入後端 , 所以假設有50筆要算里程 , 就會ajax呼叫50次 ,
測試google跑了50次 , 但是ajax後端該處理的卻只有10次 ,
請問這個需要怎麼解決?
謝謝~~

搜尋相關Tags的文章: [ google map api ] , [ ajax ] ,
本篇文章發表於2019-10-02 17:58
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
測試google跑了50次 , 但是ajax後端該處理的卻只有10次


這應該是Google API的限制
每秒最多10次的要求

您可以修改您的程式,每10次後,休息1秒,然後再下個10次
這樣試試看

詳細請參考Google API的說明

https://developers.google.com/analytics/devguides/config/mgmt/v3/limits-quotas
本篇文章回覆於2019-10-03 09:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

芋頭
檢舉此回應
原來如此 學習了
另外再請教 呼叫GOOGLE API試非同步的方式 , 能否改設為同步的方式呢??
謝謝
本篇文章回覆於2019-10-04 17:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

芋頭
檢舉此回應
程式碼如下 請問要如何調整
謝謝~~
我測試程式的順序會是 156234 ,但是我想要的是123456阿 ><
function beg() {
{
var i = 0;
var Arr1 = new Array();
var Arr2 = new Array();
var Arr3 = new Array();

Arr1 = $("#txt1").val().split(',');
Arr2 = $("#txt2").val().split(',');
Arr3 = $("#txt3").val().split(',');

var ret = setInterval(function () {
if (Arr1[i].toString() != "" && Arr1[i].toString().length==10)
{
var request = {
origin: Arr2[i],
destination: Arr3[i],
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
//宣告

var dist = 0;
var status ="";
var strTmp = "";

var directionsService = new google.maps.DirectionsService();
console.log("1");
directionsService.route(request, function (response, status)
{
console.log("2");
if (status == google.maps.DirectionsStatus.OK)
{
var route = response.routes[0];
for (var j = 0; j < route.legs.length; j++)
{
var routeSegment = j + 1;
strTmp += route.legs[j].distance.text;
}
//取得距離(公里)
dist = 0;
dist = parseFloat(parseFloat(strTmp)).toString();
}
console.log("3");
$.ajax(
{
.............................. }
);
console.log("4");
})

console.log("5");
i++;
console.log("6");
}
else
{
clearInterval(ret);
}
}, 1000);

}

}
本篇文章回覆於2019-10-04 18:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
Ajax屬於『非同步』
他是同時有好幾條線,『同時』對Server發出要求
哪個先得到回來,應該都不一定
(每次的順序可能都不同)

如果您非要以123456的順序
則要考慮使用『同步』的方式,也就是『循序執行』的方式
一個做完,取得結果,在執行下一個
速度上會有差,您再思考看看

本篇文章回覆於2019-10-07 09:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
好奇問一下
為何非要123456的順序?
有什麼特別的需求非要這樣的順序嗎?

在還不知道您的需求前,假設,是為了呈現資料的順序
如果要求的時候,傳個序號過去,回傳的時候也可以取得傳過去的序號
在呈現的時候,自己在從資料庫取資料時進行序號的排序,這樣是否會更符合需求?

^.^a
本篇文章回覆於2019-10-07 09:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.