Ikony miejsc

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 miejscaszczegółów miejsca.

Aby poprosić o obraz ikony i kolor tła miejsca, dodaj w prośbie te pola:

  • GMSPlaceFieldIconImageURL
  • GMSPlaceFieldIconBackgroundColor

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:

  • iconImageUrl zwraca podstawowy adres URL niekolorowej ikony PNG.
  • iconBackgroundColor zwraca domyślny UIExtendedSRGBColorSpacekod 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)
Słupkowy
Bar,
Klub nocny
Kawiarnia
Kawiarnia
Restauracja
Restauracja, piekarnia
Kategoria miejsca: Handel detaliczny
(kolor tła ikony #4B96F3)
Księgarnia
Książki, odzież, elektronika, biżuteria, obuwie,
Centrum handlowe
Sklep wielobranżowy
Sklep osiedlowy
Sklep spożywczy
Sklep spożywczy, supermarket
Apteka
Apteka
Kategoria miejsca: Usługi
(kolor tła ikony: #909CE1)
Bankomat
Bankomat
Bank
Bank
Stacje paliw
Gaz
Zakwaterowanie
Noclegi
Urząd pocztowy
Urząd pocztowy
Kategoria miejsca: rozrywka
(kolor tła ikony: #13B5C7)
Akwarium, turysta
Aquarium, Tourist
Golf
Golf
Pismo historyczne
Historyczne
Film
Film
Muzeum
Muzeum
Teatr
Teatr
Kategoria miejsca: Transport
(kolor tła ikony: #10BDFF)
Port lotniczy
Lotnisko
Autobus
Autobus, wspólne przejazdy, taksówki
Pociąg/kolej
Pociągi/Kolej
Kategoria miejsca: gmina/ogólne/religijne
(ikona z tłem w kolorze #7B9EB0)
Cmentarz
Cmentarz
Budynek władz miejskich
Budynek użyteczności publicznej
Biblioteka
Biblioteka
Pomnik
Pomnik
Parking
Parking
Szkoła (podstawowa, średnia, uniwersytet)
Szkoła (szkoła podstawowa, szkoła średnia, uniwersytet)
Uwielbienie (chrześcijańskie)
Kult (chrześcijański)
Kult (hinduizm)
Kult (hinduizm)
Kult (islam)
Kult (islam)
Kult (dżinizm)
Kult (dżainizm)
Uwielbienie (żydowskie)
Uwielbienie (żydowskie)
Miejsce kultu (sikhyzm)
Kult (Sikhizm)
Firma ogólna
Ogólna działalność
Kategoria miejsca: na świeżym powietrzu
(kolor tła ikony: #4DB546)
Wioślarstwo
Żeglarstwo
Kemping
Kemping
Park
Park
Stadion
Stadion
Zoo
Zoo
Kategoria miejsca: awaryjne
(kolor tła ikony: #F88181)
Szpital
Szpital
Policja
Policja