2017-05-16 37 views
-3

我正在開發和Android應用程序,其中一個用戶可以通過谷歌地圖實時跟蹤其他用戶的位置。我使用Parse作爲後端來存儲要跟蹤的用戶的lat long。我能夠在實時經緯度變化時成功存儲實時經緯度,但問題是我如何從每秒鐘的解析中查詢,或者何時數據在谷歌地圖上解析和顯示時發生變化。谷歌地圖上的移動跟蹤android應用

示例:我們有2個用戶:user1和user2 - user1將其位置連續存儲在Parse中。 - user2根據解析數據庫中的經緯度來跟蹤user1的位置,並顯示在user2地圖上。

注意:它與UBER中的相同我們可以跟蹤汽車的運動。

保存到Parse的User1位置。

@Override 
public void onLocationChanged(Location location) { 
    Log.d(TAG, "Location Detected*****************"); 
    mLatLng = new LatLng(location.getLatitude(), location.getLongitude()); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(mLatLng)); 

    // Update Map 
    //updateCamera(); 
    updatePolyline(); 
    service.saveGeoPoints(String.valueOf(location.getLatitude()), String.valueOf(location.getLongitude())); 

} 

用戶2顯示在地圖上

public ParseObject[] getGeoPoints(String followUser){ 
    final ParseObject[] result = new ParseObject[10]; 
    ParseQuery<ParseObject> query = ParseQuery.getQuery("LatLong"); 
    query.whereEqualTo("userId", followUser); 
    query.findInBackground(new FindCallback<ParseObject>() { 
     @Override 
     public void done(List<ParseObject> objects, ParseException e) { 
      if(e == null){ 
       Iterator itr = objects.iterator(); 
       int count =0; 
       while(itr.hasNext()){ 
        result[count++] = (ParseObject) itr.next(); 
       } 
      } 
     } 
    }); 
    return result; 
} 

user1的位置如何使它像聽者

請幫助我如何做實現這一目標。如果您有其他更好的解決方案,請告訴我。謝謝

+0

顯示一些代碼。 –

回答

0

我不會延長如果你的問題得到的人的位置或使它不斷,但我認爲你的問題正在更新。嘗試查看AsyncTank函數,您需要創建一個,以便每秒更新一次而不會崩潰應用程序。

採取看看here

+0

我正在使用Parse作爲後端並將所有Lat Long存儲在那裏。所以我的問題是我如何能從Parse每秒請求位置饋送。有沒有類似的東西?請求每秒都很好嗎? – Sushil

0

使用mlocmanager

https://developer.android.com/reference/android/location/LocationManager.html

requestLocationUpdates(java.lang.String中,長,浮動,android.location.LocationListener)

mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener); 

這每秒都會發送一次feed,你也可以給距離

+0

我的問題是我使用Parse作爲後端並將所有Lat Long存儲在那裏。所以我如何能從Parse請求位置饋送。有沒有類似的東西?請求每秒都很好嗎? – Sushil

+0

使用上面的代碼保存您的位置提要解析。然後從解析中得到它。 –