javascript - 如何从 Ti.Geolocation.getCurrentPosition 访问/存储纬度和经度?

标签 javascript ios geolocation titanium latitude-longitude

我正在使用 Titanium Studio (3.4.1) 并为 iOS 和 Android 编写 JavaScript。

我正在尝试获取设备的纬度和经度并将其返回给一个函数,以便我可以在另一个模块中调用该函数并将其传递给另一个函数。

这是 geo.js,我正在加载 Ti.Geolocation.getCurrentPosition 并试图将纬度返回给函数 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);
        }

最佳答案

您将需要使用回调来完成此任务。简单的过程是传递一个函数(称为回调)作为参数,并使用 return;调用回调函数。

此外,您不需要调用两个方法来获取纬度/经度,因为只需使用一种方法即可完成。

示例如下:

在 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

关于javascript - 如何从 Ti.Geolocation.getCurrentPosition 访问/存储纬度和经度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28662876/

相关文章:

javascript - 我应该担心清理 Node.js 中的大对象还是留给垃圾收集器?

ios - 如何让 UITableViewCell 图像更新为下载的图像而无需滚动 UITableView

javascript - meteor 自动将地理位置保存到用户文档中

ios - Cordova geolocation.getCurrentPosition 在 iPad 上抛出超时

javascript - 删除已经绘制的对象三

javascript - JSON.parse() 不起作用

ios - 快速总结 Realm 对象数组中的属性

ios - 无法将类型 'UITableViewCell' 的值转换为指定类型

react-native - 类型错误 : undefined is not an object (evaluating 'navigator.geolocation.requestAuthorization' )

javascript - 具有自定义样式的Html5文件上传表单无法使用ie10触发提交按钮