7

iOS için Google Haritalar SDK'sının 2013 sürümünü kullanıyorum. Geçerli konum için varsayılan mavi noktayı başka bir simgeyle veya etrafında dönen dairelerle özelleştirmek istiyorum.Geçerli konum için Google Haritalar mavi noktasını özelleştirme

Bunu MKMapView'da mapView:viewForAnnotation: ile yapabileceğimizi biliyorum, ancak Google Haritalar ile nasıl yapılacağını öğrenemiyorum.

cevap

11

Bunu, SDK'nın (1.4.3) geçerli sürümü ile yapmanın bir yolu yoktur ve aslında bu istekte açık bir sorun vardır: Look here.

etrafında bir iş, sen varsayılan düğmesini gizleyebilirsiniz gibi:

_map.myLocationEnabled = NO; 

her zaman göstermek Ardından, özel bir GMSMarker

GMSMarker *pointMarker = [GMSMarker markerWithPosition:currentPosition]; 
pointMarker.icon = [UIImage imageNamed:@"YourImage"]; 
pointMarker.map = _map; 

oluşturmak Ve CLLocationManager kullanarak ona konumunu değiştirmek geçerli konum. Bu biraz zor ama bunu başarabileceğini düşünebilmemin tek yolu. Daha eksiksiz bir örneğe ihtiyacınız varsa, bana bildirin.

+0

Ya, denedim ama kullanıcıların geçerli konumu etrafında birden fazla işaretçi gösteriliyor. Lütfen daha ayrıntılı bir kod verin. –

+0

Üzgünüm, Gmaps'i uzun zamandır kullanmadım, bu cevabın hala geçerli olup olmadığından emin değilim. Her neyse, bir sorununuz varsa, lütfen yeni bir soru sorun, sorununuzu eski bir cevabı değiştirerek size yardımcı olamam. – Raspu

+0

Cevabınız için teşekkürler. Bana çok yardımcı oluyor. –

0

Swift 4

class MasterMapViewController: UIViewController, CLLocationManagerDelegate, GMSMapViewDelegate { 


    let currentLocationMarker = GMSMarker() 


    override func loadView() { 

     addCurrentLocationMarker() 

    } 


    func addCurrentLocationMarker() { 

     let currentLocationMarkerView = UIView() 
     currentLocationMarkerView.frame.size = CGSize(width: 40, height: 40) 
     currentLocationMarkerView.layer.cornerRadius = 40/4 
     currentLocationMarkerView.clipsToBounds = true 
     let currentLocationMarkerImageView = UIImageView(frame: currentLocationMarkerView.bounds) 
     currentLocationMarkerImageView.contentMode = .scaleAspectFill 
     currentLocationMarkerImageView.image = UIImage(named: "masterAvatar") 
     currentLocationMarkerView.addSubview(currentLocationMarkerImageView) 
     currentLocationMarker.iconView = currentLocationMarkerView 
     currentLocationMarker.isTappable = false 
     currentLocationMarker.map = mapView 

    } 


    // location manager delegate 
    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 

     let lastLocation = locations.last! 
     currentLocationMarker.position = CLLocationCoordinate2D(latitude: lastLocation.coordinate.latitude, longitude: lastLocation.coordinate.longitude) 

    } 


} 

işaretin hareket sarsıntılı ve harita üzerinde konumunu sürekli güncellenmesi önemli performans sürükle olabilir, çünkü bu benim için çok cazip bir alternatif değildir. Ama bu böyle yapıldı.

İlgili konular