Đang cố gắng đặt điểm đánh dấu bằng Chế độ xem văn bản. Có bất kỳ vị trí nào để thêm văn bản trên điểm đánh dấu trên bản đồ google trong ios hay không. Thêm văn bản trên điểm đánh dấu tùy chỉnh trên bản đồ google cho ios
Trả lời
Bạn phải tạo chế độ xem, nơi bạn phải tạo imageView (với hình ảnh điểm đánh dấu) và Nhãn (kèm theo văn bản) và chụp ảnh màn hình của chế độ xem đó và đặt làm biểu tượng cho GMSMarker của bạn. Something như thế này:
- (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;
}
Xin chào tôi đã làm theo quy trình tương tự, nhưng vấn đề là hình ảnh của tôi không được hiển thị. – Diksha
Nếu bạn muốn hiển thị một cái gì đó như thế này, sau đó chỉ cần làm theo các bước sau. Nó rất đơn giản, Bạn có thể sử dụng phương pháp này.
-(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;}
và khi bạn thiết lập đánh dấu vào bản đồ thì chỉ cần đặt
GMSMarker *marker = [[GMSMarker alloc] init];
marker.icon = [self createImage:[model.strFriendCount integerValue]]; // pass any integer to the method.
Dưới đây là phiên bản nhanh chóng của 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
}
Hy vọng điều này sẽ giúp người khác.
Đã xảy ra sự cố khi đánh dấu là một nhóm, nhưng không quá nhiều (ví dụ: 100) trong đó bộ nhớ là một vấn đề: https://stackoverflow.com/questions/43910085/googlemaps-sdk-for-ios-swift-3-when -hiding-a-marker-và-sau đó-thêm-the-map-v – Efren
- 1. Cách thêm chú giải công cụ tùy chỉnh cho điểm đánh dấu trên bản đồ google?
- 2. Xóa điểm đánh dấu khỏi bản đồ google iOS
- 3. Nhiều Điểm đánh dấu trên Bản đồ Google
- 4. API bản đồ Google V3: Cách thêm dữ liệu tùy chỉnh vào các điểm đánh dấu
- 5. Thêm ID vào các điểm đánh dấu bản đồ google
- 6. Làm cách nào để thêm điểm đánh dấu tùy chỉnh độ phân giải cao trên bản đồ google tĩnh
- 7. Đặt LongClickListener trên bản đồ Điểm đánh dấu
- 8. Thêm EGDE tròn đến một điểm đánh dấu bản đồ
- 9. Bóng không hiển thị điểm đánh dấu bản đồ google
- 10. Thêm điểm đánh dấu trên vị trí được chạm bằng bản đồ google trong android
- 11. Đang tải các điểm đánh dấu trên bản đồ google động trên bản đồ di chuyển/kéo/pan
- 12. Biểu tượng điểm đánh dấu tùy chỉnh Google Maps v3 không giữ vị trí của nó trên bản đồ
- 13. Điểm đánh dấu trên bản đồ phản hồi
- 14. nhiều điểm đánh dấu bản đồ google nhúng API
- 15. AngularJS Bản đồ Google với nhiều điểm đánh dấu
- 16. Đang tải các điểm đánh dấu 100-200K trên bản đồ google
- 17. Cách kiểm soát độ mờ đục của điểm đánh dấu trên bản đồ google
- 18. Cách sử dụng google maps API với nhiều điểm đánh dấu trên cùng một bản đồ
- 19. 100k điểm đánh dấu trở lên trên bản đồ google mà không cần nhóm
- 20. Dấu đánh dấu tùy chỉnh Bản đồ tĩnh của Google được lưu trong bao lâu?
- 21. Điểm đánh dấu API bản đồ Google v3 chồng chéo
- 22. kích hoạt điểm đánh dấu bản đồ google nhấp
- 23. Google Maps: Cách thêm bóng vào điểm đánh dấu tùy chỉnh?
- 24. Thêm nhãn đánh số vào điểm đánh dấu bản đồ google
- 25. Phát hiện nếu người dùng "bỏ chọn" điểm đánh dấu trên bản đồ google
- 26. Cách tối ưu hóa MarkerWithLabel trên bản đồ google khi có quá nhiều điểm đánh dấu
- 27. căn giữa bản đồ google dựa trên các giá trị dài của điểm đánh dấu lat
- 28. Vẽ một điểm đánh dấu như bản đồ google với TCanvas trên Delphi
- 29. Google Maps v3 đặt điểm đánh dấu đơn trên bản đồ, hãy nhấp vào
- 30. Điểm đánh dấu tắt trên Google Map API v3
thử nén bitmap và vẽ văn bản trên đó. lưu nó vào bộ đệm và chuyển nó vào biểu tượng điểm đánh dấu khi chạy. – Shivansh