Class Veery
requestPredictionUpdate(PredictionUpdate callback)
Request Veery to be warned when a new prediction is computed by the backend.
This could be used to refresh a Maps activity.
Parameters
Param name | Type | Usage |
---|---|---|
callback | PredictionUpdate | Callback that will be triggered |
Returns
void
Usage / Example
Inline pattern
veery.requestPredictionUpdate(new Veery.PredictionUpdate() { @Override public void onPredictionUpdate(Predictions predictions) { // // do whatever you need with the Prediction object // } });
Interface on activity pattern
The following example implement a Google Maps activity and update it when a POIs update happens
import android.location.Location; import com.roofstreet.android.veery.*; public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback, Veery.PredictionUpdate { private final Veery veery = new Veery(this); private GoogleMap mMap = null; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); veery.serviceConnect(); veery.setApiKeySecret("SuPeRScrET12345789GhJ"); FirebaseApp.initializeApp(this); veery.setFirebaseToken(FirebaseInstanceId.getInstance().getToken()); // / veery.activate(Veery.GEOPROFILE); // required for Predictions // Requires Android Veery 1.3.2 //veery.activate(Veery.BACKGROUND_GEOLOC | Veery.PREDICTION ); setContentView(R.layout.activity_maps); // Added by Google Maps // Obtain the SupportMapFragment and get notified when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override protected void onResume() { super.onResume(); veery.serviceResume(); veery.requestPredictionUpdate(this); } @Override protected void onPause() { super.onPause(); veery.servicePause(); } @Override protected void onDestroy() { super.onDestroy(); try { veery.stopPredictionUpdate(); veery.serviceDisconnect(); } catch (Throwable t) { } } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; mMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() { @Override public void onMapLoaded() { mMap.setPadding(200, 100, 0, 200); } }); } @Override public void onPredictionUpdate(Predictions predictions) { if (mMap!=null) { mMap.clear(); JSONObject geoJsonData = predictions.toGeojson(); if (geoJsonData!= null){ GeoJsonLayer layer = new GeoJsonLayer(mMap, geoJsonData); layer.addLayerToMap(); } } } }
Info
GeoJsonLayer classes are available on Google Maps API
User interaction
none
See also
getNextTrip
Get the next estimated trip for that user.
requestPredictionUpdate
Request for a callback event when a new prediction is computed by the Veery Backend.
stopPredictionUpdate
Cancel the call to requestPredictionUpdate.
Predictions.isOK
Return true if a prediction is in the Cache.
Predictions.isOutdated
Return true if the prediction is outdated (made previously, but now concerns a time in the past)
Predictions.getProbability
Get the level of certainty of the predictive algorithm.
Predictions.getDestinationLongitude getDestinationLatitude
Get the coordinates of the next predicted destination
Predictions.getTrip toGeojson
Get the next predicted trip in GeoJSON format.
Predictions.toLocations
Get the next trip in the form of a Location array.
Predictions.getStartTrip
Get the next start point of the prediction.
Predictions.getStartTime
Get the estimated start time predicted for the next trip.
Predictions.getStartName
Get the name (street name) of the predicted departure place.
Predictions.getArrivalTime
Get the estimated arrival time predicted for the next trip.
Predictions.getArrivalTimeUTC
Get the estimated arrival time predicted for the next trip (returns EPOCH).
Predictions.getArrivalName
Get the name (street name) of the predicted arrival place.
PredictionUpdate.onPredictionUpdate
Callback triggered every time a new prediction is computed by the Veery backend.