2013-05-22 27 views
9

sdk GMSMarker konumlandırma haritalar ve ben bunun bir özel boyut açmanın 200 * 150 ve bir kısmını gösteriyorumiOS google Google haritaları ile çalışıyorum

GMSCameraPosition *camera = 
    [[GMSCameraPosition alloc] initWithTarget:marker.position 
             zoom:MAP_ZOOM_LEVEL 
             bearing:0 
           viewingAngle:0]; 
    [mapView animateToCameraPosition:camera]; 

kullanarak GMSMarker haritayı ortalamak mümkün duyuyorum kamera pozisyonu değiştiğinde gizlenir ancak belirtme çizgisinin merkezde olmasını ve harita noktasının altında kalmasını istiyorum. Bunun nasıl yapıldığına dağir fikri olan.

cevap

17

GMSProjection'u kullanarak bir göz atın. işaretleyici olmak

- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker { 
    CGPoint point = [mapView_.projection pointForCoordinate:marker.position]; 
    point.x = point.x + 100; 
    GMSCameraUpdate *camera = 
     [GMSCameraUpdate setTarget:[mapView_.projection coordinateForPoint:point]]; 
    [mapView_ animateWithCameraUpdate:camera]; 
    return YES; 
} 
+0

3 Bunu denedim, ancak harita merkezleri kendisi: Eğer böyle bir şey yapsın işaretçileri yerden haritası 100px merkezini kaydırmak için orta nokta. – satheeshwaran

+0

Evet, yazdığım kod budur. İstediğiniz zaman denkleminizin olması için point.x ve point.y'yi değiştirmeniz gerekir. – skarE

+0

Ben x ve y'ye 1000 gibi ekledim, aynı şey oluyor. – satheeshwaran

2

Swift 4,

func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool { 
    var point:CGPoint = mapView.projection.point(for: marker.position) 
    point.x = point.x + 100 

    let camera:GMSCameraUpdate = GMSCameraUpdate.setTarget(mapView.projection.coordinate(for: point)) 
    mapView.animate(with: camera) 

    return true 
} 
İlgili konular