نمادهای مکان نشاندهنده انواع مختلف مکانها (برای نمونه، قهوهخانهها، کتابخانهها، و موزهها) است. میتوانید نشانیهای وب نمادها را در قالب PNG و همچنین رنگ پسزمینه نماد مربوطه را با درخواستهای مکان کنونی و جزئیات مکان درخواست کنید.
برای درخواست تصویر نماد و رنگ پسزمینه برای مکان، فیلدهای زیر را در درخواستتان اضافه کنید:
GMSPlaceFieldIconImageURLGMSPlaceFieldIconBackgroundColor
مثالهای زیر استفاده از تصویر نماد و رنگ پسزمینه را از درخواست «مکان کنونی» یا «جزئیات مکان» نشان میدهد:
کیت توسعه نرمافزار Swift مکانها برای iOS
// Initialize Places Swift client let placesClient = PlacesClient.shared // A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [.displayName, .iconMaskURL, .iconBackgroundColor] ) Task { switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): // Print displayName using String(describing:) print("The selected place is: \(String(describing: place.displayName))") // We primarily need the iconMaskURL to proceed with image loading. // iconBackgroundColor can be handled even if nil. guard let iconMaskURL = place.iconMaskURL else { print("Icon mask URL not available for this place. Cannot display icon.") return // Exit if iconMaskURL is missing } print("The icon mask URL is: \(iconMaskURL)") // Print iconBackgroundColor using String(describing:) print("The icon background color is: \(String(describing: place.iconBackgroundColor))") // Asynchronously load the icon image DispatchQueue.global().async { // The iconMaskURL from the new Places SDK is already a URL guard let imageData = try? Data(contentsOf: iconMaskURL) else { print("Could not download image data from URL: \(iconMaskURL)") return } DispatchQueue.main.async { guard let iconImage = UIImage(data: imageData) else { print("Could not create UIImage from downloaded data.") return } // --- Example of how you might use the icon and background color --- // Ensure you have an imageView outlet connected in your UI // For example: // @IBOutlet weak var myImageViewContainer: UIView! // @IBOutlet weak var myIconImageView: UIImageView! // For this example, we'll create them programmatically: let iconBackgroundView = UIView(frame: CGRect(x: 0, y: 0, width: 50, height: 50)) // Adjust frame as needed // Directly assign the optional UIColor. If nil, background will be clear. iconBackgroundView.backgroundColor = place.iconBackgroundColor let imageView = UIImageView() // Initialize an empty UIImageView imageView.frame = iconBackgroundView.bounds // Make icon view same size as background imageView.contentMode = .scaleAspectFit // Adjust content mode as needed // Tint the icon image (mask) to white // The icon from iconMaskURL is intended to be used as a mask. let templateImage = iconImage.withRenderingMode(.alwaysTemplate) imageView.image = templateImage imageView.tintColor = UIColor.white // Add the image view on top of the background view iconBackgroundView.addSubview(imageView) } } } }
Swift
// Icon image URL let url = URL(string: place.iconImageUrl) DispatchQueue.global().async { guard let url = url, let imageData = try? Data(contentsOf: url) else { print("Could not get image") return } DispatchQueue.main.async { let iconImage = UIImage(data: iconImageData) // Icon image background color let iconBackgroundView = UIView(frame: .zero) iconBackgroundView.backgroundColor = place.iconBackgroundColor // Change icon image color to white let templateImage = iconImage.imageWithRenderingMode(UIImageRenderingModeAlwaysTemplate) imageView.image = templateImage imageView.tintColor = UIColor.white } }
آبجکتیو-سی
GMSPlace *place; dispatch_async(dispatch_get_global_queue(0, 0), ^{ // Icon image URL NSData * iconImageData = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString: place.iconImageUrl]]; if (!iconImageData) return; dispatch_async(dispatch_get_main_queue(), ^{ UIImage *iconImage = [UIImage imageWithData:iconImageData]; // Icon image background color UIView *iconBackgroundView = [[UIView alloc] initWithFrame:CGRectZero]; [iconBackgroundView setBackgroundColor:place.iconBackgroundColor]; // Change icon image color to white iconImage = [iconImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; [imageView setTintColor:[UIColor whiteColor]]; }); });
فیلدها
هر نماد «مکان» شامل این فیلدها است:
-
iconImageUrlنشانی وب پایه را برای نماد PNG بیرنگ برمیگرداند. -
iconBackgroundColorکد رنگ پیشفرضUIExtendedSRGBColorSpaceرا برای دسته مکان برمیگرداند.
درخواستهای رنگ پسزمینه و نماد را قرار دهید
جدولهای زیر همه نمادهای مکان دردسترس را براساس دسته نشان میدهد. بهطور پیشفرض، این موارد با نویسه سیاه نمایش داده میشوند. رنگ پسزمینه نماد براساس دستهبندی مکان تعیین میشود.
| دسته مکان: غذا و نوشیدنی (رنگ پسزمینه نماد #FF9E67) |
|||
|---|---|---|---|
|
میخانه، کلوپ شبانه |
کافه |
رستوران، نانوایی |
|
| دسته مکان: خردهفروشی (رنگ پسزمینه نماد #4B96F3) |
|||
|
کتاب، پوشاک، لوازم الکترونیکی، جواهرات، کفش، مرکز خرید/مجتمع تجاری |
دکه بقالی |
خواربار، سوپرمارکت |
داروخانه |
| دسته مکان: خدمات (رنگ پسزمینه نماد #909CE1) |
|||
|
خودپرداز |
بانک |
گاز |
اقامتگاه |
|
دفتر پست |
|||
| دسته مکان: سرگرمی (رنگ پسزمینه نماد #13B5C7) |
|||
|
آکواریوم، گردشگری |
گلف |
تاریخی |
فیلم |
|
موزه |
تئاتر |
||
| دسته مکان: حملونقل (رنگ پسزمینه نماد #10BDFF) |
|||
|
فرودگاه |
اتوبوس، همپیمایی، تاکسی |
قطار/راهآهن |
|
| دسته مکان: شهری/عمومی/مذهبی (رنگ پسزمینه نماد #7B9EB0) |
|||
|
گورستان |
ساختمان شهرداری |
کتابخانه |
بنای یادبود |
|
پارکینگ |
مدرسه (ابتدایی، متوسطه، دانشگاه) |
پرستش (مسیحی) |
|
|
پرستش (هندو) |
پرستش (اسلام) |
پرستش (جین) |
پرستش (یهودی) |
|
پرستش (سیک) |
کسبوکار عمومی |
||
| دسته مکان: فضای باز (رنگ پسزمینه نماد #4DB546) |
|||
|
قایقرانی |
اردو زدن |
پارک |
ورزشگاه |
|
باغوحش |
|||
| دسته مکان: اضطراری (رنگ پسزمینه نماد #F88181) |
|||
|
بیمارستان |
پلیس |
||