Ortssymbole

Plattform auswählen: Android iOS JavaScript Webdienst

Ortssymbole kennzeichnen die verschiedenen Arten von Orten, z. B. Cafés, Bibliotheken und Museen. Sie können URLs für Symbole im PNG-Format sowie die entsprechende Hintergrundfarbe des Symbols über Current Place- und Place Details-Anfragen anfordern.

Wenn Sie ein Symbolbild und eine Hintergrundfarbe für einen Ort anfordern möchten, fügen Sie Ihrer Anfrage die folgenden Felder hinzu:

  • GMSPlaceFieldIconImageURL
  • GMSPlaceFieldIconBackgroundColor

In den folgenden Beispielen wird gezeigt, wie das Symbolbild und die Hintergrundfarbe aus einer Anfrage vom Typ „Current Place“ oder „Place Details“ verwendet werden:

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]];
      });
});

Felder

Jedes Ortssymbol enthält die folgenden Felder:

  • iconImageUrl gibt die Basis-URL für ein nicht farbiges PNG-Symbol zurück.
  • iconBackgroundColor gibt den standardmäßigen UIExtendedSRGBColorSpace-Farbcode für die Kategorie des Orts zurück.

Anfragen für Ortssymbole und Hintergrundfarben

In den folgenden Tabellen finden Sie alle verfügbaren Ortssymbole nach Kategorie. Standardmäßig werden sie mit einer schwarzen Glyphe angezeigt. Die Hintergrundfarbe des Symbols richtet sich nach der Kategorie des Orts.

Ortskategorie: Essen und Trinken
(Symbolhintergrundfarbe #FF9E67)
Bar
Bar,
Nachtclub
Café
Café
Restaurant
Restaurant, Bäckerei
Ortskategorie: Einzelhandel
(Symbolhintergrundfarbe #4B96F3)
Buchhandlung
Bücher, Kleidung, Elektronik, Schmuck, Schuhe,
Einkaufszentrum
Minimarkt
Minimarkt
Lebensmittelgeschäft
Lebensmittelgeschäft, Supermarkt
Apotheke
Apotheke
Ortskategorie: Dienstleistungen
(Symbolhintergrundfarbe #909CE1)
Geldautomat
Geldautomat
Bank
Bank
Tankstelle
Tankstelle
Unterkunft
Unterkunft
Postfiliale
Postfiliale
Ortskategorie: Unterhaltung
(Symbolhintergrundfarbe #13B5C7)
Aquarium, touristisch
Aquarium, touristisch
Golf
Golf
Historisch
Historisch
Kino
Kino
Museum
Museum
Theater
Theater
Ortskategorie: Transport
(Symbolhintergrundfarbe #10BDFF)
Flughafen
Flughafen
Bus
Bus, Mitfahrdienst, Taxi
Züge/Bahnen
Züge/Bahnen
Ortskategorie: Gemeinde/allgemein/religiös
(Symbolhintergrundfarbe #7B9EB0)
Friedhof
Friedhof
Öffentliches Gebäude
Öffentliches Gebäude
Bibliothek
Bibliothek
Denkmal
Denkmal
Parkplatz
Parkplatz
Schule (Grundschule, Sekundarstufe, Universität)
Schule (Grundschule, Sekundarstufe, Universität)
Andachtsstätte (christlich)
Andachtsstätte (christlich)
Andachtsstätte (Hindu)
Andachtsstätte (Hindu)
Andachtsstätte (Islam)
Andachtsstätte (Islam)
Andachtsstätte (Jainismus)
Andachtsstätte (Jainismus)
Andachtsstätte (jüdisch)
Andachtsstätte (jüdisch)
Andachtsstätte (Sikh)
Andachtsstätte (Sikh)
Allgemeines Unternehmen
Allgemeines Unternehmen
Ortskategorie: Outdoor
(Symbolhintergrundfarbe #4DB546)
Bootsfahrten
Bootsfahrten
Camping
Camping
Park
Park
Stadion
Stadion
Zoo
Zoo
Ortskategorie: Notfall
(Symbolhintergrundfarbe #F88181)
Krankenhaus
Krankenhaus
Polizei
Polizei