รหัสสถานที่

เลือกแพลตฟอร์ม: Android iOS JavaScript Web Service
นักพัฒนาแอปในเขตเศรษฐกิจยุโรป (EEA)

บทนำ

รหัสสถานที่จะระบุสถานที่ในฐานข้อมูล Google Places และใน Google Maps โดยไม่ซ้ำกัน ระบบยอมรับรหัสสถานที่ ในคำขอไปยัง Maps API ต่อไปนี้

  • การดึงข้อมูลที่อยู่สำหรับรหัสสถานที่ใน Geocoding API และ บริการการเข้ารหัสพิกัดภูมิศาสตร์, Maps JavaScript API
  • การระบุต้นทาง ปลายทาง และจุดแวะพักกลางใน Routes API และ Directions API (เดิม) รวมถึงบริการเส้นทาง, Maps JavaScript API (เดิม)
  • การระบุต้นทางและปลายทางใน Routes API และ Distance Matrix API (เดิม) และ บริการเมทริกซ์ระยะทาง, Maps JavaScript API (เดิม)
  • การดึงรายละเอียดสถานที่ใน Places API (ใหม่), Places SDK สำหรับ Android (ใหม่), Places SDK สำหรับ iOS (ใหม่) และ Places Library
  • การใช้พารามิเตอร์รหัสสถานที่ใน Maps Embed API
  • ดึงข้อมูลคำค้นหาใน URL ของ Maps
  • การแสดงขีดจำกัดความเร็วใน Roads API
  • การค้นหาและการจัดรูปแบบรูปหลายเหลี่ยมขอบเขตในการจัดรูปแบบตามข้อมูลสำหรับขอบเขต

ค้นหารหัสของสถานที่ที่เฉพาะเจาะจง

คุณกำลังมองหารหัสสถานที่ของสถานที่หนึ่งๆ อยู่ใช่ไหม ใช้เครื่องมือค้นหารหัสสถานที่ ด้านล่างเพื่อค้นหาสถานที่และรับรหัส

หรือคุณจะ ดู เครื่องมือค้นหารหัสสถานที่พร้อมโค้ดในเอกสารประกอบของ Maps JavaScript API ก็ได้

ภาพรวม

รหัสสถานที่เป็นตัวระบุข้อความที่ระบุสถานที่โดยไม่ซ้ำกัน ความยาวของตัวระบุอาจแตกต่างกันไป (ไม่มีความยาวสูงสุดสำหรับรหัสสถานที่) ตัวอย่าง

  • ChIJgUbEo8cfqokR5lP9_Wh_DaM
  • GhIJQWDl0CIeQUARxks3icF8U8A
  • EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN
  • EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E
  • IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ

รหัสสถานที่พร้อมใช้งานสำหรับสถานที่ส่วนใหญ่ รวมถึงธุรกิจ สถานที่สำคัญ สวนสาธารณะ และสี่แยก สถานที่เดียวกันอาจมีรหัสสถานที่ที่แตกต่างกันหลายรหัส รหัสสถานที่อาจเปลี่ยนแปลงเมื่อเวลาผ่านไป

คุณใช้รหัสสถานที่เดียวกันใน Places API และ API ของ Google Maps Platform ได้หลายรายการ เช่น คุณสามารถใช้รหัสสถานที่เดียวกันเพื่อ อ้างอิงสถานที่ใน Places API, Maps JavaScript API, Geocoding API, Maps Embed API และ Roads API

ดึงข้อมูลรายละเอียดสถานที่โดยใช้รหัสสถานที่

วิธีทั่วไปในการใช้รหัสสถานที่คือการค้นหาสถานที่ (โดยใช้ Places API หรือไลบรารี Placesใน Maps JavaScript API เป็นต้น) จากนั้นใช้รหัสสถานที่ที่ แสดงผลเพื่อดึงรายละเอียดสถานที่ คุณสามารถจัดเก็บรหัสสถานที่และ ใช้เพื่อดึงรายละเอียดสถานที่เดียวกันในภายหลังได้ อ่านข้อมูลเกี่ยวกับ การบันทึกรหัสสถานที่ที่ด้านล่าง

ตัวอย่างการใช้ Places SDK สำหรับ iOS

รหัสสถานที่เป็นตัวระบุข้อความที่ระบุสถานที่โดยไม่ซ้ำกัน ใน Places SDK สำหรับ iOS คุณสามารถดึงข้อมูลรหัสของสถานที่จากออบเจ็กต์ GMSPlace ได้ คุณจัดเก็บรหัสสถานที่และใช้เพื่อดึงข้อมูลออบเจ็กต์ GMSPlace อีกครั้งในภายหลังได้

หากต้องการรับสถานที่ตามรหัส ให้เรียกใช้ GMSPlacesClient fetchPlaceFromPlaceID: โดยส่งพารามิเตอร์ต่อไปนี้

  • สตริงที่มีรหัสสถานที่
  • GMSPlaceFields อย่างน้อย 1 รายการที่ระบุประเภทข้อมูลที่จะแสดงผล
  • โทเค็นเซสชันหากมีการโทรเพื่อสรุปคำค้นหาที่เติมข้อความอัตโนมัติ หรือส่ง nil
  • GMSPlaceResultCallback เพื่อจัดการผลลัพธ์

API จะเรียกใช้เมธอด Callback ที่ระบุ โดยส่งออบเจ็กต์ GMSPlace หากไม่พบสถานที่ ออบเจ็กต์สถานที่จะเป็น nil

Places Swift SDK สำหรับ iOS

// Initialize Places Swift Client.
let placesClient = PlacesClient.shared

// A hotel in Saigon with an attribution
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
    
// Fetch Place Request.
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.displayName]
)
    
Task {
  switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
  case .success(let place):
    print("The selected place is: \(place.displayName): \(String(describing: place.description))")
  case .failure(let placesError):
    print("Place not found: \(placeID); \(placesError)")
  }
}

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
  UInt(GMSPlaceField.placeID.rawValue))!

placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    self.lblName?.text = place.name
    print("The selected place is: \(place.name)")
  }
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);

[_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    NSLog(@"The selected place is: %@", [place name]);
  }
}];

บันทึกรหัสสถานที่ไว้ใช้ในภายหลัง

รหัสสถานที่จะได้รับการยกเว้นจากข้อจำกัดในการแคชที่ระบุไว้ใน ส่วน 3.2.3(b) ของข้อกำหนดในการให้บริการของ Google Maps Platform ดังนั้น คุณจึงจัดเก็บค่ารหัสสถานที่เพื่อใช้ในภายหลังได้

รีเฟรชรหัสสถานที่ที่จัดเก็บไว้

เนื่องจากรหัสสถานที่อาจเปลี่ยนแปลงได้เนื่องจากการอัปเดตฐานข้อมูลของ Google Maps Google จึงขอแนะนำให้ รีเฟรชรหัสสถานที่หากรหัสมีอายุมากกว่า 12 เดือน คุณรีเฟรชรหัสสถานที่โดยไม่มีค่าใช้จ่ายได้โดยส่งคำขอรายละเอียดสถานที่ ระบุเฉพาะฟิลด์ GMSPlaceFieldPlaceID ในพารามิเตอร์ fields

การเรียกนี้จะทริกเกอร์ SKU รายละเอียดสถานที่ - การรีเฟรชรหัส

รหัสข้อผิดพลาดเมื่อใช้รหัสสถานที่

INVALID_REQUEST

รหัสสถานะ INVALID_REQUEST แสดงว่ารหัสสถานที่ที่ระบุไม่ถูกต้อง INVALID_REQUEST อาจแสดงขึ้นเมื่อมีการตัดรหัสสถานที่หรือแก้ไขรหัสสถานที่ด้วยวิธีอื่น และรหัสสถานที่นั้นไม่ถูกต้องอีกต่อไป

NOT_FOUND

รหัสสถานะ NOT_FOUND แสดงว่ารหัสสถานที่ที่ระบุ ล้าสมัยแล้ว รหัสสถานที่อาจล้าสมัยหากธุรกิจปิดหรือย้ายไป สถานที่ใหม่ รหัสสถานีอาจมีการเปลี่ยนแปลงเนื่องจากการอัปเดตฐานข้อมูล Google Maps ด้วย ในกรณีเช่นนี้ สถานที่อาจได้รับรหัสสถานที่ใหม่ และรหัสเก่าจะแสดงการตอบกลับ NOT_FOUND

หากต้องการรีเฟรชผลลัพธ์ในกรณีที่รหัสสถานที่ล้าสมัย ให้จัดเก็บคำขอเดิมที่แสดงรหัสสถานที่แต่ละรายการ แล้วส่งคำขออีกครั้งตามต้องการ โปรดทราบว่าคำขอที่ออกใหม่จะ เรียกเก็บเงินตาม SKU ที่เหมาะสม

บางครั้งรหัสสถานที่บางประเภทอาจทำให้เกิดการตอบกลับ NOT_FOUND หรือ API อาจแสดงรหัสสถานที่อื่นในการตอบกลับ รหัสสถานที่ประเภทต่างๆ มีดังนี้

  • ที่อยู่แบบถนนที่ไม่มีอยู่ใน Google Maps เป็นที่อยู่ที่แน่นอน แต่ได้มาจากการอนุมานจากช่วงของที่อยู่
  • ส่วนของเส้นทางยาว ซึ่งคำขอจะระบุเมืองหรือ สถานที่ด้วย
  • ทางแยก
  • สถานที่ที่มีคอมโพเนนต์ที่อยู่ประเภท subpremise

รหัสเหล่านี้มักอยู่ในรูปแบบของสตริงยาว (ไม่มีความยาวสูงสุดสำหรับรหัสสถานที่) เช่น

EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4