13

Qualcuno ha capito come implementare i marcatori trascinabili con il nuovo SDK di Google Maps per iOS? L'API non lo fornisce in modo nativo, ancora. La richiesta di funzione è già stata inviata.Indicatore trascinabile con Google Maps SDK per iOS

Se potessi ottenere una sospensione della vista sottostante di GMSMarker, potrei intercettare gli eventi di tocco. Qualcuno ha provato questo?

+0

soluzioni? Grazie – Mangesh

+0

sì, due e sono entrambi corretti. per favore accettatene uno (robert weindl è bello) quindi questo può essere barrato della lista: D –

risposta

0

I marcatori trascinabili non sono stati ancora aggiunti all'SDK. Si prega di file a feature request.

+0

Fatto così già. Vedi: [http://code.google.com/p/gmaps-api-issues/issues/detail?id=4975](http://code.google.com/p/gmaps-api-issues/issues/ detail? id = 4975) – user1971035

3

Ciao, ho appena implementato una funzionalità di trascinamento della selezione per il marcatore nel nuovo SDK GoogleMaps per iOS. Ho pubblicato il codice su GitHub sotto il seguente link: https://github.com/rweindl/google-maps-sdk-ios-drag-drop

+0

impressionante. grazie! –

+0

sta mostrando un errore errato lat, long after drop un pin :(, per favore cross check – Mangesh

+0

funziona perfettamente per me. Deve essere da qualche parte nel tuo codice ... potresti iniziare mostrandoci un po ' –

17

Ad oggi, non è necessario utilizzare le classi esterne, basta fare i vostri marcatori "trascinabile"

GMSMarker *myMarker = [[GMSMarker alloc] ...]; 
... 
[myMarker setDraggable: YES]; 
// Use some kind of data to identify each marker, marker does not have 'tag' but 'userData' that is an 'id' type 
[myMarker setUserData: markerId]; 

e attuare il rispettivo delegato

@interface YourController: UIViewController<GMSMapViewDelegate> ... 

impostare il proprio delegato

GMSMapView *myMapView = [[GMSMapView alloc] ...]; 
... 
myMapView.delegate = self; 

Quindi è possibile gestire ogni evento marcatore, vale a dire:

-(void)mapView:(GMSMapView *)mapView didEndDraggingMarker:(GMSMarker *)marker{ 
    if ([marker.userData isEqualtoString:@"xMark"]) 
     NSLog(@"marker dragged to location: %f,%f", marker.position.latitude, marker.position.longitude); 
} 
+0

C'è un modo per disabilitare l'animazione a scorrimento di MapView, quando inizi a trascinare il marcatore? – orkenstein

0

Swift 3.0

dolce! Tutto quello che dovevo fare era aggiungere questa variabile al mio marcatore. Quindi, quando selezioni attentamente e tieni premuto il marcatore per un momento, puoi trascinarlo.

marker.isDraggable = true 

Non ho ancora implementato i delegati per salvare i dati del mio marcatore ma ecco come dovrebbe essere.

extension MapVC : GMSMapViewDelegate { 

    func mapView (_ mapView: GMSMapView, didEndDragging didEndDraggingMarker: GMSMarker) { 

     print("Drag ended!") 
     print("Update Marker data if stored somewhere.") 

    } 

} 

Nota: Per un po 'stavo cercando di non-animare lo schermo e marker dal flottante e l'animazione dopo selezionato. Ora vedo che è una "caratteristica" dal momento che il tuo dito è nel modo in cui non riesci a vedere bene se non muove lo schermo durante un trascinamento. (Duh!)

Problemi correlati