2013-03-13 34 views
7

GMSMapView'da bir çember (MKCircle ile olduğu gibi) göstermem gerekiyor. Bu MKMapView ve MKCircle kullanırken kolaydır, ancak GMSMapView ile MKCircle kullanamazsınız. Herhangi bir fikrin var mı?GMSMapView'da bir daire nasıl görüntülenir

Güncelleme:
Bu akım (2013/03/18) seçenekleri şunlardır:
1. Bir daire resmine içeren bir zemin işaretleyici.
2. Birkaç parçadan oluşan bir daire (çoklu çizgi).

Düzenleme:
3. Google Tamam görünen bir daire resim için 40x40 piksel

GMSGroundOverlayOptions *overlayOptions = [GMSGroundOverlayOptions options]; 
    overlayOptions.icon = [UIImage imageNamed:@"circle"]; 
    overlayOptions.position = touchMapCoordinate; 
    overlayOptions.bearing = 0; 
    overlayOptions.zoomLevel = 14.3; 
[mapView addGroundOverlayWithOptions:overlayOptions]; 

bir GMSCircle (23.04.2013) eklenmiştir. (Çapı yaklaşık olarak 100 m)

küçük parçalara ayrılmış yol çözeltisi:

GMSPolylineOptions *circle = [GMSPolylineOptions options]; 
    CGPoint touchPoint = [mapView.projection pointForCoordinate:touchMapCoordinate]; 
    GMSMutablePath *path = [GMSMutablePath path]; 

    CGPoint circlePoint; 

    for (int i = 0; i < 360; i++) 
    { 
     circlePoint.x = touchPoint.x + radius * cos(i*M_PI/180); 
     circlePoint.y = touchPoint.y + radius * sin(i*M_PI/180); 

     CLLocationCoordinate2D aux = [mapView.projection coordinateForPoint:circlePoint]; 
     [path addCoordinate:aux]; 
    } 

    circle.path = path; 
    circle.width = 1; 

    [mapView addPolylineWithOptions:circle]; 

DÜZENLEME: 08.05.2013

GMSCircle çözeltisi: Şu anda

 CLLocationCoordinate2D circleCenter = CLLocationCoordinate2DMake(latitude, longitude); 
    GMSCircle *circ = [GMSCircle circleWithPosition:circleCenter 
            radius:1000]; 

    circ.fillColor = [UIColor blueColor]; 
    circ.strokeColor = [UIColor redColor]; 
    circ.strokeWidth = 5; 
    circ.map = mapView; 
+0

Eğer şimdiye kadar denedim yayımlayamamak Can: enter image description here

Ve burada, biz biraz küçültme yaptığınız? – Noich

+0

Nasıl başlayacağımı bile bilmiyorum. Bir daire simgesi ekleyerek GMSGroundOverlay ve GMSGroundOverlayOptions kullanmayı düşündüm, ancak bu, dairenin her zaman belirli bir yarıçapa sahip olduğu anlamına gelir. – Bogus

+0

Bu fikir için iOS 8 –

cevap

7

Soru bir yıldan fazla olduğu için biraz gecikti, ancak Google aramaları beni buraya yönlendirdi, bu yüzden bunu güncellemeyi düşündüm. Poster 4TW!

Şu an için GMSCircle var, bildiğim kadarıyla, her şey hakkında bir MKCircle yapabilirsiniz.
Google's documentation on the GMSCircle.

O bir MKCircle (bindirme) çok benzer şekilde davranır
// Build a circle for the GMSMapView 
GMSCircle *geoFenceCircle = [[GMSCircle alloc] init]; 
geoFenceCircle.radius = 130; // Meters 
geoFenceCircle.position = SOME_CLLOCATION.coordinate; // Some CLLocationCoordinate2D position 
geoFenceCircle.fillColor = [UIColor colorWithWhite:0.7 alpha:0.5]; 
geoFenceCircle.strokeWidth = 3; 
geoFenceCircle.strokeColor = [UIColor orangeColor]; 
geoFenceCircle.map = mapView; // Add it to the map. 

o merkezde mavi daireyi dikkate almayın harita vb yakınlaştırma seviyesi ile boyutlandırır; Bu, harita görünümünde gösterilen kullanıcı konumu ve GMSCircle'ın merkez noktası için aynı koordinatı kullandım.

Çok kolay. resimleri inceleyebilirsiniz:

Bir yakınlaştırma düzeyini: enter image description here

+0

daire üzerinde metin çizmek mümkün mü? –

+0

GMSOverlays, belirli işaret türlerine metin eklemek için kullanılabilecek bir 'başlık' özelliğine sahiptir.Eğer bu sizin istediğiniz şeyi almazsa ve bu geçmişte başarı ile yaptığım bir şeydir, GMSMarker'ı alt sınıflara ayırabilir ve simgeyi istediğiniz metin olarak değiştirebilirsiniz (bir resim oluşturmak zorundasınız). hatırladığım gibi). Ardından, dairenizle aynı konuma yerleştirebilir (veya GMSMarker alt sınıfınızda bir çevre olarak üye ekleyebilirsiniz). https://developers.google.com/maps/documentation/ios-sdk/reference/interface_g_m_s_overlay – u2Fan

+0

Hey, haritanın üzerindeki daireyi düzeltmek ve kullanıcının haritayı taşıyabileceği çevreyi çevreleyen yerlere getirmek istiyorum ancak çevre kalacak aynı pozisyonda herhangi bir yardım? Teşekkürler - Kuldeep @ u2Fan – dreamBegin

İlgili konular