[英]Google Maps API In Apps Script Keeps Failing
我正在使用谷歌應用程序腳本為谷歌地圖編寫測距儀。 我找到了這樣的例子,但它們一直失敗,所以我想我會自己編寫代碼。 可悲的是,這失敗了,並出現了同樣的錯誤:
TypeError: Cannot read property "legs" from undefined. (line 16).
似乎它有時有效,有時無效。 我的工作表中有幾 (3) 個地方正在調用相同的函數,有時一個或多個將返回有效響應。
我在其他地方看到人們建議使用 API 密鑰來確保您得到良好的響應,所以這就是我在下面實現的。 (api 鍵已編輯!有沒有什么好方法可以判斷它們是否已被識別?)
任何想法可能會出錯?!
提前致謝,
麥克風
function mikeDistance(start, end){
start = "CV4 8DJ";
end = "cv4 9FE";
var maps = Maps;
maps.setAuthentication("#####", "#####");
var dirFind = maps.newDirectionFinder();
dirFind.setOrigin(start);
dirFind.setDestination(end);
var directions = dirFind.getDirections();
var rawDistance = directions["routes"][0]["legs"][0]["distance"]["value"];
var distance = rawDistance/1609.34;
return distance;
}
這是我在解決問題時的短期解決方案。
不理想,但至少盡可能減少使用您的 API 限制。
function getDistance(start, end) {
return hackyHack(start, end, 0);
}
function hackyHack(start, end, level) {
if (level > 5) {
return "Error :(";
}
var directions = Maps.newDirectionFinder()
.setOrigin(start)
.setDestination(end)
.setMode(Maps.DirectionFinder.Mode.DRIVING)
.getDirections();
var route = directions.routes[0];
if (!route) return hackyHack(start, end, level+1); // Hacky McHackHack
var distance = route.legs[0].distance.text;
// var time = route.legs[0].duration.text;
return distance;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.