รหัสสถานที่

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

รหัสสถานที่จะระบุสถานที่ในฐานข้อมูล 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 และ Google Maps Platform API หลายรายการได้ เช่น คุณสามารถใช้รหัสสถานที่เดียวกันเพื่ออ้างอิงสถานที่ใน Places API, Maps JavaScript API, Geocoding API, Maps Embed API และ Roads API

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

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

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

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

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

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

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

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(ข)ของข้อกำหนดในการให้บริการของ Google Maps Platform คุณจึงจัดเก็บค่ารหัสสถานที่เพื่อใช้ในภายหลังได้

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

เนื่องจากรหัสสถานที่อาจเปลี่ยนแปลงเนื่องจากการอัปเดตในฐานข้อมูลของ Google Maps เราจึงขอแนะนำให้รีเฟรชรหัสสถานที่หากมีอายุมากกว่า 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