2016-05-12 76 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