2017-03-09 3 views
0

Ich muss eine GMSMarker für meine Google Maps-Bildschirm in einer iOS-App erstellen. Ich brauche die Markierung als eine Kombination von Bildern, d. H. Ein generisches Markierungsbild und ein Benutzerbild. zB Generic markerSo erstellen Sie GMSMarker mit kombinierten Bildern in Swift

In diesem Marker muss ich das Bild des Benutzers anpassen. Ich habe beide Bilder in meinem Vermögen. versucht

func image(byDrawingImage image: UIImage, inRect rect: CGRect) -> UIImage! { 
     UIGraphicsBeginImageContext(size) 

     draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height)) 

     image.draw(in: rect) 
     let result = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     return result 
    } 

Aber dies ein unvollkommenes Bild zurückgegeben. Gibt es eine alternative Lösung? Hinweis: Das Beispiel Marker Bild hier ist nicht das, das ich tatsächlich verwende. Das ist ein rechteckiger Marker.

+0

können Sie hier: https://developers.google.com/ Karten/Dokumentation/IOS-SDK/Marker – Pushp

Antwort

1

Hier habe ich Ihnen einige Beispiel-Code bin bietet, versuchen Sie es, es & anpassen arbeiten/ändern entsprechend Ihrer Anforderung:

let marker = GMSMarker() 
let lat = Double("13.063754") 
let long = Double("80.24358699999993") 
marker.position = CLLocationCoordinate2DMake(lat!,long!) 

///Creating UIView for Custom Marker 
let DynamicView=UIView(frame: CGRectMake(0, 0, 50, 50)) 
DynamicView.backgroundColor=UIColor.clearColor() 

//Creating Marker Pin imageview for Custom Marker 
var imageViewForPinMarker : UIImageView 
imageViewForPinMarker = UIImageView(frame:CGRectMake(0, 0, 40, 50)); 
imageViewForPinMarker.image = UIImage(named:"LocationPin") 

//Creating User Profile imageview 
var imageViewForUserProfile : UIImageView 
imageViewForUserProfile = UIImageView(frame:CGRectMake(0, 0, 35, 35)); 
imageViewForUserProfile.image = UIImage(named:"userprofile") 

//Adding userprofile imageview inside Marker Pin Imageview 
imageViewForPinMarker.addSubview(imageViewForUserProfile) 

//Adding Marker Pin Imageview isdie view for Custom Marker 
DynamicView.addSubview(imageViewForPinMarker) 

//Converting dynamic uiview to get the image/marker icon. 
UIGraphicsBeginImageContextWithOptions(DynamicView.frame.size, false, UIScreen.mainScreen().scale) 
DynamicView.layer.renderInContext(UIGraphicsGetCurrentContext()!) 
let imageConverted: UIImage = UIGraphicsGetImageFromCurrentImageContext() 
UIGraphicsEndImageContext() 

marker.icon = imageConverted 
marker.map = self.mapView 
Verwandte Themen