Ich versuche, Marker mit Textview setzen. Ist es möglich, Text über Marker auf Google-Karte in IOS hinzuzufügen. Hinzufügen von Text auf benutzerdefinierten Marker auf Google-Karte für iOS
Antwort
Sie müssen eine Ansicht erstellen, in der Sie ein imageView (mit Ihrem Markerbild) und Label (mit Ihrem Text) erstellen und einen Screenshot dieser Ansicht erstellen und als Symbol für Ihren GMSMarker festlegen müssen. Etwas wie folgt aus:
- (void)foo
{
GMSMarker *marker = [GMSMarker new];
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,60,60)];
UIImageView *pinImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myPin"]];
UILabel *label = [UILabel new];
label.text = @"1";
//label.font = ...;
[label sizeToFit];
[view addSubview:pinImageView];
[view addSubview:label];
//i.e. customize view to get what you need
UIImage *markerIcon = [self imageFromView:view];
marker.icon = markerIcon;
marker.map = self.mapView;
}
- (UIImage *)imageFromView:(UIView *) view
{
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, [[UIScreen mainScreen] scale]);
} else {
UIGraphicsBeginImageContext(view.frame.size);
}
[view.layer renderInContext: UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
Hi ich habe die gleiche Prozedur verfolgt, aber das Problem ist, dass mein Bild nicht angezeigt wird. – Diksha
Wenn Sie so etwas wie dies anzuzeigen, und dann die folgenden Schritte aus. Es ist sehr einfach, Sie können diese Methode verwenden.
-(UIImage *)createImage:(NSUInteger)count{ //count is the integer that has to be shown on the marker
UIColor *color = [UIColor redColor]; // select needed color
NSString *string = [NSString stringWithFormat:@"%lu",(unsigned long)count]; // the string to colorize
NSDictionary *attrs = @{ NSForegroundColorAttributeName : color };
NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:string attributes:attrs]; // add Font according to your need
UIImage *image = [UIImage imageNamed:@"ic_marker_orange"]; // The image on which text has to be added
UIGraphicsBeginImageContext(image.size);
[image drawInRect:CGRectMake(0,0,image.size.width,image.size.height)];
CGRect rect = CGRectMake(20,5, image.size.width, image.size.height);// change the frame of your text from here
[[UIColor whiteColor] set];
[attrStr drawInRect:rect];
UIImage *markerImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return markerImage;}
und wenn Sie Marker auf der Karte setzen dann setzen gerade
GMSMarker *marker = [[GMSMarker alloc] init];
marker.icon = [self createImage:[model.strFriendCount integerValue]]; // pass any integer to the method.
Hier ist die schnelle Version von Kunal's answer:
func createImage(_ count: Int) -> UIImage {
//count is the integer that has to be shown on the marker
let color = UIColor.red
// select needed color
let string = "\(UInt(count))"
// the string to colorize
let attrs = [NSForegroundColorAttributeName: color]
let attrStr = NSAttributedString(string: string, attributes: attrs)
// add Font according to your need
let image = UIImage(named: "ic_marker_orange")!
// The image on which text has to be added
UIGraphicsBeginImageContext(image.size)
image.draw(in: CGRect(x: CGFloat(0), y: CGFloat(0), width: CGFloat(image.size.width), height: CGFloat(image.size.height)))
let rect = CGRect(x: CGFloat(20), y: CGFloat(5), width: CGFloat(image.size.width), height: CGFloat(image.size.height))
attrStr.draw(in: rect)
let markerImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return markerImage
}
Hope this jemand anderes hilft.
Hatte einige Probleme, wenn Marker ein Haufen sind, aber nicht zu viele (z. B. 100), wo Speicher ein Problem ist: https://StackOverflow.com/questions/43910085/googlemaps-sdk-for-ios-Swift-3-when -hiding-a-marker-und-dann-hinzufügen-the-map-v – Efren
- 1. Android Maps mit benutzerdefinierten Marker (Text auf dem Marker)
- 2. Hinzufügen von benutzerdefinierten Marker zu Google Maps
- 3. Animierte Marker auf Mapbox
- 4. Hinzufügen von Click-Ereignis auf Infofenster/Marker in Google Maps SDK für native iOS/Objective C
- 5. Hinzufügen von benutzerdefinierten Bildern zu Marker von Google Maps IOS SDK erhöht viel Speicher
- 6. Klicken Sie auf RichMarker fällt durch Marker auf iOS
- 7. Hinzufügen von benutzerdefinierten Emoticons auf Soft-Tastatur
- 8. iOS-App friert beim Laden von benutzerdefinierten Info-Fenster für Marker in Google Maps ein
- 9. Zeichnen vertikalen Text auf iOS
- 10. Hinzufügen von benutzerdefinierten Menüs in Sublime Text
- 11. Hinzufügen von Text auf Revolution Slider
- 12. Marker auf Antwortkarte
- 13. Hinzufügen von veränderbarem Radius auf der GoogleMaps-API für iOS
- 14. Blurry/gezackten Text auf iOS
- 15. anzeigen Tooltip Hover von benutzerdefinierten Marker
- 16. Google Maps API v3 Hinzufügen mehrerer Marker mit Infofenstern w/benutzerdefinierten Text
- 17. Hinzufügen von Füllzeichen für Text
- 18. Anklickbare Marker auf GTileLayerOverlay
- 19. Wie kann ich eine Schaltfläche zu Google Maps Marker Info Fenster auf Ios hinzufügen?
- 20. Marker auf Karte Broschüre für glänzend
- 21. Optimierung der benutzerdefinierten Marker-Image-Leistung mit dem Google Maps SDK für iOS
- 22. Hinzufügen eines Marker-Bildes zu Google Maps auf IOS Objective-C App
- 23. Hinzufügen von benutzerdefinierten Codegenerator
- 24. Hinzufügen von benutzerdefinierten Anspruchsarten
- 25. Marker zu Google Map hinzufügen Klicken Sie auf
- 26. Android: Osmdroid Marker auf Touch hinzufügen nicht genau
- 27. Hinzufügen mehrerer Marker auf Google Map mit api v2
- 28. Wie man Marker auf Google Map Pin hinzufügen
- 29. hinzufügen UISearchController auf eine Navigationsleiste iOS
- 30. Eingabe Text Typ gezoomt auf iOS
versuchen, Bitmap zu komprimieren und Text darauf zu zeichnen. Speichern Sie es im Puffer und übergeben Sie es zur Laufzeit an das Markersymbol. – Shivansh