2016-05-12 28 views
1

我試圖在輸入地址時在Node.JS中創建一個腳本,它會告訴您產品在您所在的位置。但我得到[Error: Invalid latitude & longitude]我用地理編碼做到了這一點,但每次運行具有相同或不同地址的應用程序時,我都能得到它。下面是代碼Uber API無效經度

var Uber = require('node-uber'); 

var geocoderProvider = 'google'; 

var uber = new Uber({ 
    client_id: 'KEY', 
    client_secret: ' key', 
    server_token: 'key', 
    redirect_uri: 'uri', 
    name: 'Uber product list' 
}); 


var httpAdapter = 'http'; 
var geocoder = require('node-geocoder')(geocoderProvider, httpAdapter); 
geocoder.geocode('Address', function(err, res) { 
    console.log(res); 
var latitude = res[0]["latitude"] 
var longitude = res[0]["longitude"] 
console.log(latitude); 
console.log(longitude); 
uber.products.getAllForLocation(latitude, longitude, function (err, res) { 
    if (err) console.error(err); 
    else console.log(res); 
}); 
}); 

回答

1

UPDATE:作爲May 17thgetAllForLocation不檢查緯度& LON有效性的方法了。這取決於優步API端點 決定是否應該採取的值。

我對node-uber項目做出了貢獻。方法getAllForLocation使用RegEx來確定緯度值是否落入正確的範圍。它創建了一個「[LAT],[長]」字符串,並試圖匹配這個表達式(從Iain Fraser拍攝):https://regex101.com/r/wQ8bX9/1

^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$

,如果你的具體數值都在這裏匹配你介意檢查?

我剛剛檢查了一些示例地址與谷歌作爲地理編碼提供商,但我不能重現錯誤。

+0

我進入了一些美國的地址,法國,從優步是可用的吉隆坡市(檢查優步的網站) – MatejMecka

+0

從版本0.9.4,這種方法沒有再拉和檢查了。 Uber API決定是否應該採取這些值。如果您仍然遇到問題,請在GitHub上創建問題。謝謝! – agraebe

+0

感謝您的幫助 – MatejMecka