HTML5 地理定位 iphone

Posted

技术标签:

【中文标题】HTML5 地理定位 iphone【英文标题】:HTML5 geolocation iphone 【发布时间】:2013-02-19 00:09:54 【问题描述】:

大家好,

我写了一些东西来查找我 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);

【问题讨论】:

获得第一个位置后尝试 navigator.geolocation.clearWatch()。 谢谢提示,但它不能正常工作的原因是因为我在 getLattitude 函数中犯了一个错误,在那里再次请求它 【参考方案1】:

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

【讨论】:

以上是关于HTML5 地理定位 iphone的主要内容,如果未能解决你的问题,请参考以下文章

如何使用HTML5地理位置定位功能

HTML5 地理定位精度 Android 与 iOS 非常不同

使用 html5 进行地理定位

HTML5 Geolocation(地理定位)简介

HTML5 Geolocation(地理定位)简介

带有地理围栏的 html5 地理定位 API