0

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

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

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

4

1 回答 1

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.');
        }
    });

});
于 2012-09-09T17:27:21.397 回答