Ikon tempat menunjukkan berbagai jenis tempat (misalnya kedai kopi, perpustakaan, dan museum). Anda dapat meminta URL untuk ikon dalam format PNG, serta warna latar belakang ikon yang sesuai, dengan permintaan Current Place, dan Place Details.
Untuk meminta gambar ikon dan warna latar belakang untuk suatu tempat, sertakan kolom berikut dalam permintaan Anda:
GMSPlaceFieldIconImageURL
GMSPlaceFieldIconBackgroundColor
Contoh berikut menunjukkan penggunaan gambar ikon dan warna latar belakang dari permintaan Current Place atau Place Details:
Places Swift SDK for 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 } }
Objective-C
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]]; }); });
Kolom
Setiap ikon Tempat berisi kolom berikut:
iconImageUrl
menampilkan URL dasar untuk ikon PNG tidak berwarna.iconBackgroundColor
menampilkan kode warnaUIExtendedSRGBColorSpace
default untuk kategori tempat.
Permintaan warna ikon dan latar belakang tempat
Tabel berikut menampilkan semua ikon tempat yang tersedia menurut kategori. Secara default, ikon tempat ini ditampilkan dengan glyph hitam. Warna latar belakang ikon ditentukan berdasarkan kategori tempat.
Kategori tempat: Makanan dan minuman (warna latar belakang ikon #FF9E67) |
|||
---|---|---|---|
Bar, Klub malam |
Kafe |
Restoran, Toko Roti |
|
Kategori tempat: Retail (warna latar belakang ikon #4B96F3) |
|||
Buku, Pakaian, Elektronik, Perhiasan, Sepatu, Pusat Perbelanjaan/Mall |
![]() Minimarket |
Toko Bahan Makanan, Supermarket |
Apotek |
Kategori tempat: Layanan (warna latar belakang ikon #909CE1) |
|||
ATM |
Bank |
SPBU |
Penginapan |
Kantor pos |
|||
Kategori tempat: Hiburan (warna latar belakang ikon #13B5C7) |
|||
Akuarium, Wisatawan |
Golf |
Bersejarah |
Film |
Museum |
Teater |
||
Kategori tempat: Transportasi (warna latar belakang ikon #10BDFF) |
|||
Bandara |
Bus, transportasi online, taksi |
Kereta/Transportasi Rel |
|
Kategori tempat: Kota/generik/agama (warna latar belakang ikon #7B9EB0) |
|||
Pemakaman |
Bangunan sipil |
Perpustakaan |
Monumen |
Parkir |
Sekolah (dasar, menengah, universitas) |
Ibadah (Kristen) |
|
Ibadah (Hindu) |
Ibadah (Islam) |
Ibadah (Jain) |
Ibadah (Yahudi) |
Ibadah (Sikh) |
Bisnis generik |
||
Kategori tempat: Luar Ruangan (warna latar belakang ikon #4DB546) |
|||
Naik perahu |
Berkemah |
Taman |
Stadion |
Kebun binatang |
|||
Kategori tempat: Darurat (warna latar belakang ikon #F88181) |
|||
Rumah Sakit |
Polisi |