我如何从 Ti.Geolocation.getCurrentPosition access/store 纬度和经度?
How do I access/store latitude and longitude from Ti.Geolocation.getCurrentPosition?
我正在使用 Titanium Studio (3.4.1) 并在 JavaScript 中为 iOS 和 Android 编写。
我正在尝试获取设备的纬度和经度并将其 return 传递给一个函数,以便我可以在另一个模块中调用该函数并将其传递给另一个函数。
这是 geo.js,我正在加载 Ti.Geolocation.getCurrentPosition 并尝试 return 函数 getLat() 的纬度。然后,通过导出使其可供 app.js 使用。
exports.getLat = function(){
Ti.Geolocation.getCurrentPosition(function(e) {
console.log(e);
timeout : 10000;
return JSON.stringify(e.coords.latitude);
});
};
这是 app.js,它会检查应用程序是哪个平台 运行。它看到它是一个 iPhone,然后需要 geo.getLat()。之后,我想将纬度存储到变量 lat 中,稍后使用它作为参数将其提供给另一个函数,例如 getWdata(lat);
if (Ti.Platform.osname === 'android') {
console.log('android version\n');
var geo = require('geo');
var lat = geo.getLat(0);
var lng = geo.getLng(0);
console.log('Android Coordinates: ' + lat, lng);
}
else if (Ti.Platform.osname === 'iphone' || 'ipad'){
console.log('iOS version\n');
var geo = require('geo');
var lat = geo.getLat();
geo.getLat();
console.log('iOS Coordinates: ' + lat);
}
使用:
Titanium.Geolocation.getCurrentPosition(function(e) {
if (e.success) {
Ti.API.info("Cords longitude" + e.coords.longitude);
Ti.API.info("Cords latitude" + e.coords.latitude);
}
});
您将需要使用回调来完成此任务。简单的过程是传递一个函数(称为回调)作为参数,而不是使用 return
;调用回调函数。
另外你不需要调用两个方法来获取latitude/longitude,因为它可以只使用一个方法来完成。
示例如下:
在geo.js:
exports.getLatLong = function(callback){
Ti.Geolocation.getCurrentPosition(function(e) {
if (e.success) {
Ti.API.info("Cords latitude" + e.coords.latitude);
Ti.API.info("Cords longitude" + e.coords.longitude);
callback(e.coords.latitude, e.coords.longitude);
} else {
alert("Unable to fetch cords");
}
});
};
现在在app.js中,调用getLatLong函数为:
var geo = require('geo'), lat = 0, long = 0;
geo.getLatLong(function(latitude,longitude) {
lat = latitude;
long = longitude;
});
注意:使用 Ti.API.info
而不是 console.log
。
我正在使用 Titanium Studio (3.4.1) 并在 JavaScript 中为 iOS 和 Android 编写。
我正在尝试获取设备的纬度和经度并将其 return 传递给一个函数,以便我可以在另一个模块中调用该函数并将其传递给另一个函数。
这是 geo.js,我正在加载 Ti.Geolocation.getCurrentPosition 并尝试 return 函数 getLat() 的纬度。然后,通过导出使其可供 app.js 使用。
exports.getLat = function(){
Ti.Geolocation.getCurrentPosition(function(e) {
console.log(e);
timeout : 10000;
return JSON.stringify(e.coords.latitude);
});
};
这是 app.js,它会检查应用程序是哪个平台 运行。它看到它是一个 iPhone,然后需要 geo.getLat()。之后,我想将纬度存储到变量 lat 中,稍后使用它作为参数将其提供给另一个函数,例如 getWdata(lat);
if (Ti.Platform.osname === 'android') {
console.log('android version\n');
var geo = require('geo');
var lat = geo.getLat(0);
var lng = geo.getLng(0);
console.log('Android Coordinates: ' + lat, lng);
}
else if (Ti.Platform.osname === 'iphone' || 'ipad'){
console.log('iOS version\n');
var geo = require('geo');
var lat = geo.getLat();
geo.getLat();
console.log('iOS Coordinates: ' + lat);
}
使用:
Titanium.Geolocation.getCurrentPosition(function(e) {
if (e.success) {
Ti.API.info("Cords longitude" + e.coords.longitude);
Ti.API.info("Cords latitude" + e.coords.latitude);
}
});
您将需要使用回调来完成此任务。简单的过程是传递一个函数(称为回调)作为参数,而不是使用 return
;调用回调函数。
另外你不需要调用两个方法来获取latitude/longitude,因为它可以只使用一个方法来完成。
示例如下:
在geo.js:
exports.getLatLong = function(callback){
Ti.Geolocation.getCurrentPosition(function(e) {
if (e.success) {
Ti.API.info("Cords latitude" + e.coords.latitude);
Ti.API.info("Cords longitude" + e.coords.longitude);
callback(e.coords.latitude, e.coords.longitude);
} else {
alert("Unable to fetch cords");
}
});
};
现在在app.js中,调用getLatLong函数为:
var geo = require('geo'), lat = 0, long = 0;
geo.getLatLong(function(latitude,longitude) {
lat = latitude;
long = longitude;
});
注意:使用 Ti.API.info
而不是 console.log
。