我正在尝试在输入地址时在Node.JS中创建一个脚本,它会告诉您所在地区的产品。但我得到[Error: Invalid latitude & longitude]
我用地理编码做到了这一点,但每次我使用相同或不同的地址运行应用程序时,我都会这样做。这是代码
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);
});
});
答案 0 :(得分:1)
更新:自May 17th起,方法
getAllForLocation
不检查lat&已经有效了。这取决于Uber API端点 决定是否应该采取这些价值。
我参与了node-uber项目。方法getAllForLocation
使用RegEx来识别lat& amp; lon值落入正确的范围。它会创建一个“[lat],[long]”字符串并尝试匹配此RegEx(取自Iain Fraser):
^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$
您是否介意检查您的具体值是否与此匹配:https://regex101.com/r/wQ8bX9/1?
我刚刚使用google作为地理编码提供程序检查了一些示例地址,但我无法重现该错误。