1

嘿人,

我写了一些东西来找到我的 iphone 的 gps 位置。如果找到我的位置,它应该在警报框中显示我的位置。

但显然它一遍又一遍地向我显示我的 iphone 上的警报框。

我已经编写了我的类,以便我可以设置一个回调函数。因为当您尝试获取您的位置时,直到您找到它才设置。

找到您的位置后,将执行回调函数。

谁能告诉我在我被发现后如何停止位置跟踪器?

我的课:

GPS = function() {
this.constructor();

}

var gpsLatitude = 0.0, gpsLongitude = 0.0, gpsCallback;

GPS.prototype.constructor = function(){ 
    this.getLocation();
}

 var afterNotification = function(){
    //Do something
};

GPS.prototype.setCallback = function(myfunction){ 
    gpsCallback = myfunction;
}

GPS.prototype.getLocation = function(){
    if (navigator.geolocation)
    {
        navigator.geolocation.getCurrentPosition(this.showPosition, this.showError);
    }
    else{
        Lungo.Notification.error(
                "Error",                      //Title
                "Your device doesnt support GPS",     //Description
                "cancel",                     //Icon
                7,                            //Time on screen
                afterNotification             //Callback function
            );
    }
  }

GPS.prototype.showPosition = function(position)
{
    gpsLatitude = position.coords.latitude;
    gpsLongitude = position.coords.longitude;
    gpsCallback();

}

GPS.prototype.getLatitude = function()
{
    return gpsLatitude; 
}

GPS.prototype.getLongitude = function()
{
    return gpsLongitude;    
}

GPS.prototype.showError = function(error)
  {
  switch(error.code) 
    {
    case error.PERMISSION_DENIED:
          Lungo.Notification.error(
                    "Error",                      //Title
                    "Gebruiker staat geolocatie niet toe",     //Description
                    "cancel",                     //Icon
                    7,                            //Time on screen
                    afterNotification             //Callback function
                );
      break;
    case error.POSITION_UNAVAILABLE:
          Lungo.Notification.error(
                    "Error",                      //Title
                    "Locatie niet beschikbaar",     //Description
                    "cancel",                     //Icon
                    7,                            //Time on screen
                    afterNotification             //Callback function
                );
      break;
    case error.TIMEOUT:
        Lungo.Notification.error(
                "Error",                      //Title
                "Locatie timeout",     //Description
                "cancel",                     //Icon
                7,                            //Time on screen
                afterNotification             //Callback function
            );
      break;
    case error.UNKNOWN_ERROR:
        Lungo.Notification.error(
                "Error",                      //Title
                "Unkown location error",     //Description
                "cancel",                     //Icon
                7,                            //Time on screen
                afterNotification             //Callback function
            );
      break;
    }
  }

var GPS = new GPS();

我使用课程的方式:

var callback = function()
            {
                alert(GPS.getLongitude() + ", " + GPS.getLatitude());
            }
            GPS.setCallback(callback);
4

1 回答 1

0

我发现了我的问题,我在 getLattitude 方法中再次请求了我的位置。删除后这是完美的。

于 2013-02-19T07:29:15.250 回答