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的主要内容,如果未能解决你的问题,请参考以下文章