Titanium App开发:从智能手机中获取地理位置

时间:2012-09-08 17:24:33

标签: geolocation titanium appcelerator titanium-mobile appcelerator-mobile

我正在尝试开发一个移动应用程序,它基本上可以帮助您根据他们的地理定位信息跟踪您的朋友和家人的位置。所以我理解这将涉及在访问数据之前获得他们的许可。

我对在Titnaium Appcelerator中开发应用程序有基本的了解。但我需要帮助确定如何与第三方设备通信,请求许可并检索其地理位置。

我正在开发的应用程序与此非常相似:http://goo.gl/dvCgP

1 个答案:

答案 0 :(得分:1)

唯一可以做到这一点的方法是设置中央网络服务,手机本身无法相互收集GPS位置,无论如何,您无法将所有其他手机信息存储在您自己的设备上。

设置一个网络服务,当手机发布时保存GPS位置,然后让该服务返回其他连接的手机。一旦你设置了这个服务,在Titanium中使用它是微不足道的:

// First lets get our position
Titanium.Geolocation.accuracy = Titanium.Geolocation.ACCURACY_BEST;
Titanium.Geolocation.distanceFilter = 10;
Titanium.Geolocation.getCurrentPosition(function(e) {

    if (e.error) {
        alert('Cannot get your current location');
        return;
    }

    var longitude = e.coords.longitude;
    var latitude = e.coords.latitude;

    // We need to send an object to the web service verifying who we are and holding our GPS location, construct that here
    var senObj = {userid : 'my_user_id', latitude : latitude, longitude : longitude};
    // Now construct the client, and send the object to update where we are on the web server
    var client = Ti.Network.createHTTPClient({
        onload : function(e) {
            // Parse the response text from the webservice
            // This response should have the information of the other users youre connected too
            var rsp = JSON.parse(this.responseText);

            // do something with the response from the server
            var user = rsp.otherUsers[0];
            alert('Tracking other user named '+user.userid+' at coordinates ('+user.longitude+','+user.latitude+')');
        },
        onerror : function(e) {
            Ti.API.info('[ERROR] communicating with webservice.');
        }
    });

});