ไอคอนสถานที่

เลือกแพลตฟอร์ม: Android iOS JavaScript เว็บเซอร์วิส

ไอคอนสถานที่ระบุสถานที่ประเภทต่างๆ (เช่น ร้านกาแฟ ห้องสมุด และพิพิธภัณฑ์) คุณสามารถขอ URL สำหรับไอคอนในรูปแบบ PNG รวมถึงสีพื้นหลังของไอคอนที่เกี่ยวข้องได้ด้วยคำขอสถานที่ปัจจุบันและรายละเอียดสถานที่

หากต้องการขอรูปภาพไอคอนและสีพื้นหลังของสถานที่ ให้ระบุช่องต่อไปนี้ในคำขอ

  • GMSPlaceFieldIconImageURL
  • GMSPlaceFieldIconBackgroundColor

ตัวอย่างต่อไปนี้แสดงการใช้รูปภาพไอคอนและสีพื้นหลังจากคำขอสถานที่ปัจจุบันหรือรายละเอียดสถานที่

Places Swift SDK สำหรับ 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]];
      });
});

ช่อง

ไอคอนสถานที่แต่ละรายการจะมีฟิลด์ต่อไปนี้

  • iconImageUrl จะแสดงผล URL พื้นฐานสําหรับไอคอน PNG ที่ไม่มีสี
  • iconBackgroundColor จะแสดงรหัสสี UIExtendedSRGBColorSpace เริ่มต้นสำหรับหมวดหมู่ของสถานที่

ส่งคำขอไอคอนและสีพื้นหลัง

ตารางต่อไปนี้แสดงไอคอนสถานที่ทั้งหมดที่ใช้ได้ตามหมวดหมู่ โดยค่าเริ่มต้น รายการเหล่านี้จะแสดงด้วยสัญลักษณ์สีดํา สีพื้นหลังของไอคอนจะกำหนดโดยหมวดหมู่ของสถานที่

หมวดหมู่สถานที่: อาหารและเครื่องดื่ม
(สีพื้นหลังของไอคอน #FF9E67)
บาร์
บาร์
ไนท์คลับ
คาเฟ่
คาเฟ่
ร้านอาหาร
ร้านอาหาร เบเกอรี่
หมวดหมู่สถานที่: ค้าปลีก
(สีพื้นหลังไอคอน #4B96F3)
ร้านหนังสือ
หนังสือ เสื้อผ้า อุปกรณ์อิเล็กทรอนิกส์ เครื่องประดับ รองเท้า
ศูนย์การค้า/ห้างสรรพสินค้า
ร้านสะดวกซื้อ
ร้านสะดวกซื้อ
ร้านขายของชำ
ร้านขายของใช้ทั่วไป ซูเปอร์มาร์เก็ต
ร้านขายยา
ร้านขายยา
หมวดหมู่สถานที่: บริการ
(สีพื้นหลังไอคอน #909CE1)
ตู้เอทีเอ็ม
ตู้เอทีเอ็ม
ธนาคาร
ธนาคาร
แก๊ส
แก๊ส
ที่พัก
ที่พัก
ที่ทำการไปรษณีย์
ที่ทำการไปรษณีย์
หมวดหมู่สถานที่: ความบันเทิง
(สีพื้นหลังไอคอน #13B5C7)
พิพิธภัณฑ์สัตว์น้ำ นักท่องเที่ยว
พิพิธภัณฑ์สัตว์น้ำ นักท่องเที่ยว
กอล์ฟ
กอล์ฟ
ประวัติศาสตร์
ประวัติศาสตร์
ภาพยนตร์
ภาพยนตร์
พิพิธภัณฑ์
พิพิธภัณฑ์
ละครเวที
โรงภาพยนตร์
หมวดหมู่สถานที่: การขนส่ง
(สีพื้นหลังไอคอน #10BDFF)
สนามบิน
สนามบิน
รถประจำทาง
รถประจำทาง บริการร่วมเดินทาง แท็กซี่
รถไฟ/รถราง
รถไฟ/รถราง
หมวดหมู่สถานที่: เทศบาล/ทั่วไป/ศาสนา
(สีพื้นหลังของไอคอน #7B9EB0)
สุสาน
สุสาน
ศาลากลาง
อาคารสาธารณะ
คลัง
คลัง
อนุสาวรีย์
อนุสาวรีย์
ที่จอดรถ
ที่จอดรถ
โรงเรียน (ประถมศึกษา มัธยมศึกษา มหาวิทยาลัย)
โรงเรียน (ประถม มัธยม มหาวิทยาลัย)
การนมัสการ (คริสเตียน)
การสักการะบูชา (คริสต์)
การสักการะบูชา (ฮินดู)
การสักการะบูชา (ฮินดู)
การสักการะบูชา (อิสลาม)
การสักการะบูชา (อิสลาม)
การสักการะบูชา (เชน)
การสักการะ (เชน)
การสักการะบูชา (ยิว)
การสักการะบูชา (ยิว)
การสักการะบูชา (ซิกข์)
การสักการะบูชา (ซิกข์)
ธุรกิจทั่วไป
ธุรกิจทั่วไป
หมวดหมู่สถานที่: กลางแจ้ง
(สีพื้นหลังไอคอน #4DB546)
แล่นเรือ
การพายเรือ
ตั้งแคมป์
การตั้งแคมป์
อุทยาน
สวนสาธารณะ
สนามกีฬา
สนามกีฬา
สวนสัตว์
สวนสัตว์
หมวดหมู่สถานที่: เหตุฉุกเฉิน
(สีพื้นหลังไอคอน #F88181)
โรงพยาบาล
โรงพยาบาล
ตำรวจ
ตำรวจ