รหัสสถานที่

เลือกแพลตฟอร์ม: Android iOS JavaScript เว็บเซอร์วิส
นักพัฒนาซอฟต์แวร์ในเขตเศรษฐกิจยุโรป (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
  • การใช้พารามิเตอร์รหัสสถานที่ใน 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

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

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

  • สตริงที่มีรหัสสถานที่
  • GMSPlaceField อย่างน้อย 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(ข) ของข้อกำหนดในการให้บริการของ 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 เป็นที่อยู่ที่แน่นอน แต่ได้มาจากการอนุมานจากช่วงของที่อยู่
  • ส่วนของเส้นทางยาว ซึ่งคำขอจะระบุเมืองหรือท้องถิ่นด้วย
  • ทางแยก
  • Places ที่มีคอมโพเนนต์ที่อยู่ประเภท subpremise

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

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