Cordova GeoLocation没有将lat long应用于json get

时间:2017-07-09 01:38:47

标签: json cordova ionic-framework geolocation ngcordova

我使用Cordova Geolocation插件来获取用户的lat和long数据。目的是使用lat和long并将其应用于我对Breezometer进行的api调用。不幸的是我的代码无法正常工作。有人能让我知道我在这里缺少什么:

.controller('GeoCtrl', function($cordovaGeolocation, $scope, $http) {
var posOptions = {timeout: 10000, enableHighAccuracy: false};
$cordovaGeolocation
  .getCurrentPosition(posOptions)
  .then(function (position) {
    var lat  = position.coords.latitude
    var long = position.coords.longitude

    $scope.result = "";
    $http.get('https://api.breezometer.com/baqi/?lat='+ lat + 'lon=-' + long + '&key=c329a5b015f442748e088cfd13726267')
      .success(function(data, status, headers,config){
        console.log('data success');
        console.log(data); // for browser console
        $scope.result = data; // for UI
      })
      .error(function(data, status, headers,config){
        console.log('data error');
      })
      .then(function(result){
        things = result.data;
      });


  }, function(err) {
    // error
  });


var watchOptions = {
  frequency : 1000,
  timeout : 3000,
  enableHighAccuracy: false // may cause errors if true
};

var watch = $cordovaGeolocation.watchPosition(watchOptions);
watch.then(
  null,
  function(err) {
    // error
  },
  function(position) {
    var lat  = position.coords.latitude
    var long = position.coords.longitude
});


watch.clearWatch();
// OR
$cordovaGeolocation.clearWatch(watch)
  .then(function(result) {
    // success
    }, function (error) {
    // error
  });

})

1 个答案:

答案 0 :(得分:0)

http请求的网址错误。

尝试以下方法,

$http.get(https://api.breezometer.com/baqi/?lat='+ lat + '&lon='+ long +'&key='+ key)

你在lat和lon之间已经&。并且lon不需要以-

作为前缀

实施例: https://api.breezometer.com/baqi/?lat=13.082680199999999&lon=80.2707184&key=c329a5b015f442748e088cfd13726267

点击here查看结果。