2016-05-19 11 views
0

Derzeit mache ich App wie Uber hier ich möchte zeigen, Treiber Umzug Ort auf Benutzerkarte. Ich habe bereits Treiberkoordinaten basierend auf diesen Koordinaten, wie man Marker auf meiner Karte bewegt.Wie ich meine Marker Position einen Ort an einen anderen Ort basierend auf Koordinaten in Google Map bewegen

Bsp .: Momentan mache ich zwei Apps, eine ist User-Ende und eine andere Treiber-Ende. wenn der Benutzer von einem Ort zu einem anderen Ort reisen möchte. Zu diesem Zeitpunkt sollte der Benutzer einen bestimmten Treiber anfordern.

Wenn Fahrer diese Anforderung akzeptieren bedeutet in Seite Benutzer i Treiber aktuellen Standort Breite & Longitude sind immer, aber die Sache ist, ich, dass die Fahrer-Auto (Custom Image) Bild auf Googlemaps zeigen muß mit Animation bewegen

Wenn ein man weiß es. Bitte helfen Sie mir, wie Sie dieses Problem lösen können?

Antwort

0
  1. zu einem eigenen Bild auf Marker zeigen:
marker = [[GMSMarker alloc] init]; 

    marker.position = CLLocationCoordinate2DMake(lat, 
               lng); 
    [marker setIcon:[UIImage imageNamed:kMarkerImage]]; 
    marker.map = self.mapView_; 
  1. Um Animation,

machen den Transport Ihrer mussmachenAnfrage kontinuierlich (1-2 sec delay in each call), wenn Sie Driver Co-Ordinates bekommen.

Wenn Sie Benutzer-Koordinaten verwenden, dann müssen Sie auch denselben Schritt tun.

Dann müssen Sie zuerst Clear die Karte sonst erhalten Sie multiple Marker hinzugefügt werden. und dann neue Marker mit neuen Koordinaten hinzufügen.

[self.mapView_ clear]; 
+0

Dies ist nicht die machbare Lösung für diese Frage? . Was ich will, ist in Uber Anwendung kontinuierlich Fahrerhaus Shold bewegen wie Treiberstandort in USER Seite Anwendung. Ich freue mich auch gleich –

+0

ja bro ... sie sind in der Lage, dies zu tun, weil sie kontinuierlich Treiber Standort holen und auf Server hochladen und in Benutzer endet ihre ist API Anruf, der häufig überprüft die Fahrerpositionen ... – Dalvik

0

Nehmen Sie zwei Variablen vom Typ CLLocationCoordinate2D:

Last_Location = last locaiton of your marker 
Current_Location = current location of marker 

zunächst Last_Location und CURRENT_LOCATION wird nach dem Aufstehen erste Location Update gleich sein, schreiben folgenden Code:

let p1: MKMapPoint = MKMapPointForCoordinate(Last_Location) 
    let p2: MKMapPoint = MKMapPointForCoordinate(Current_Location) 
    let dist: CLLocationDistance = MKMetersBetweenMapPoints(p1, p2) 
    CATransaction.begin() 
    CATransaction.setAnimationDuration(6.0) 
    your_marker.position = Last_Location 
    your_marker.position = Current_Location 
    CATransaction.commit() 

    Last_Location = Current_Location 

Anruf über Codezeile nachdem Sie ein neues Standort-Update erhalten haben. Hoffe, das wird helfen :-)

Verwandte Themen