Ikony miejsc wskazują różne typy miejsc (np. kawiarnie, biblioteki i muzea). Możesz poprosić o adresy URL ikon w formacie PNG oraz o odpowiednie kolory tła ikony w ramach żądań bieżącego miejsca i szczegółów miejsca.
Aby poprosić o obraz ikony i kolor tła miejsca, dodaj w prośbie te pola:
GMSPlaceFieldIconImageURLGMSPlaceFieldIconBackgroundColor
W tych przykładach pokazano użycie obrazu ikony i koloru tła z żądania dotyczącego bieżącej lokalizacji lub szczegółów miejsca:
Pakiet SDK Miejsc Swift na 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]]; }); });
Pola
Każda ikona Miejsca zawiera te pola:
iconImageUrlzwraca podstawowy adres URL niekolorowej ikony PNG.iconBackgroundColorzwraca domyślnyUIExtendedSRGBColorSpacekod koloru dla kategorii miejsca.
Prośby o kolor ikony i tła
W tabelach poniżej znajdziesz wszystkie dostępne ikony miejsc pogrupowane według kategorii. Domyślnie są one wyświetlane z czarnym symbolem. Kolor tła ikony jest określony przez kategorię miejsca.
| Kategoria miejsca: jedzenie i napoje (kolor tła ikony: #FF9E67)  | 
  |||
|---|---|---|---|
| 
       Bar, Klub nocny  | 
    
       Kawiarnia  | 
    
       Restauracja, piekarnia  | 
  |
| Kategoria miejsca: Handel detaliczny (kolor tła ikony #4B96F3)  | 
  |||
| 
       Książki, odzież, elektronika, biżuteria, obuwie, Centrum handlowe  | 
    
       Sklep osiedlowy  | 
    
       Sklep spożywczy, supermarket  | 
    
       Apteka  | 
  
| Kategoria miejsca: Usługi (kolor tła ikony: #909CE1)  | 
  |||
| 
       Bankomat  | 
    
       Bank  | 
    
       Gaz  | 
    
       Noclegi  | 
  
| 
       Urząd pocztowy  | 
  |||
| Kategoria miejsca: rozrywka (kolor tła ikony: #13B5C7)  | 
  |||
| 
       Aquarium, Tourist  | 
    
       Golf  | 
    
       Historyczne  | 
    
       Film  | 
  
| 
       Muzeum  | 
    
       Teatr  | 
  ||
| Kategoria miejsca: Transport (kolor tła ikony: #10BDFF)  | 
  |||
| 
       Lotnisko  | 
    
       Autobus, wspólne przejazdy, taksówki  | 
    
       Pociągi/Kolej  | 
  |
| Kategoria miejsca: gmina/ogólne/religijne (ikona z tłem w kolorze #7B9EB0)  | 
  |||
| 
       Cmentarz  | 
    
       Budynek użyteczności publicznej  | 
    
       Biblioteka  | 
    
       Pomnik  | 
  
| 
       Parking  | 
    
       Szkoła (szkoła podstawowa, szkoła średnia, uniwersytet)  | 
    
       Kult (chrześcijański)  | 
  |
| 
       Kult (hinduizm)  | 
    
       Kult (islam)  | 
    
       Kult (dżainizm)  | 
    
       Uwielbienie (żydowskie)  | 
  
| 
       Kult (Sikhizm)  | 
    
       Ogólna działalność  | 
  ||
| Kategoria miejsca: na świeżym powietrzu (kolor tła ikony: #4DB546)  | 
  |||
| 
       Żeglarstwo  | 
    
       Kemping  | 
    
       Park  | 
    
       Stadion  | 
  
| 
       Zoo  | 
  |||
| Kategoria miejsca: awaryjne (kolor tła ikony: #F88181)  | 
  |||
| 
       Szpital  | 
    
       Policja  | 
  ||