优步API无效纬度和经度

时间:2016-05-12 15:43:46

标签: node.js geocoding uber-api

我正在尝试在输入地址时在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);
});
});

1 个答案:

答案 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作为地理编码提供程序检查了一些示例地址,但我无法重现该错误。