รหัสสถานที่

เลือกแพลตฟอร์ม: 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 สําหรับ Android

ใน Places SDK สำหรับ Android คุณสามารถเรียกข้อมูลรหัสของสถานที่ได้โดยเรียกใช้ Place.getId() บริการการเติมข้อความอัตโนมัติของสถานที่จะแสดงรหัสสถานที่สำหรับสถานที่แต่ละแห่งที่ตรงกับข้อความค้นหาและตัวกรองที่ระบุ ใช้รหัสสถานที่เพื่อเรียกข้อมูลออบเจ็กต์ Place อีกครั้งในภายหลัง

หากต้องการรับสถานที่ตามรหัส ให้เรียกใช้ PlacesClient.fetchPlace() โดยส่ง FetchPlaceRequest

API จะแสดงผล FetchPlaceResponse ใน Task FetchPlaceResponse มีออบเจ็กต์ Place ที่ตรงกับรหัสสถานที่ที่ระบุ

ตัวอย่างโค้ดต่อไปนี้แสดงการเรียกใช้ fetchPlace() เพื่อรับรายละเอียดของสถานที่ที่ระบุ

Kotlin

// Define a Place ID.
val placeId = "INSERT_PLACE_ID_HERE"

// Specify the fields to return.
val placeFields = listOf(Place.Field.ID, Place.Field.NAME)

// Construct a request object, passing the place ID and fields array.
val request = FetchPlaceRequest.newInstance(placeId, placeFields)

placesClient.fetchPlace(request)
    .addOnSuccessListener { response: FetchPlaceResponse ->
        val place = response.place
        Log.i(PlaceDetailsActivity.TAG, "Place found: ${place.name}")
    }.addOnFailureListener { exception: Exception ->
        if (exception is ApiException) {
            Log.e(TAG, "Place not found: ${exception.message}")
            val statusCode = exception.statusCode
            TODO("Handle error with given status code")
        }
    }

      

Java

// Define a Place ID.
final String placeId = "INSERT_PLACE_ID_HERE";

// Specify the fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

// Construct a request object, passing the place ID and fields array.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();
    Log.i(TAG, "Place found: " + place.getName());
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        final ApiException apiException = (ApiException) exception;
        Log.e(TAG, "Place not found: " + exception.getMessage());
        final int statusCode = apiException.getStatusCode();
        // TODO: Handle error with given status code.
    }
});

      

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

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

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

เราขอแนะนำให้รีเฟรชรหัสสถานที่หากมีอายุมากกว่า 12 เดือน คุณรีเฟรชรหัสสถานที่ได้โดยไม่มีค่าใช้จ่าย โดยส่งคำขอรายละเอียดสถานที่ โดยระบุเฉพาะฟิลด์ Place.Field.ID ในพารามิเตอร์ fields การเรียกใช้นี้จะทริกเกอร์ SKU รายละเอียดสถานที่ - รีเฟรชรหัส

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

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

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

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

โดยเฉพาะอย่างยิ่ง รหัสสถานที่บางประเภทอาจทําให้ระบบตอบกลับด้วย 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