บทนำ
รหัสสถานที่จะระบุสถานที่ในฐานข้อมูล 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 คุณจึงจัดเก็บค่ารหัสสถานที่เพื่อใช้ในภายหลังได้
รีเฟรชรหัสสถานที่ที่เก็บไว้
เนื่องจากรหัสสถานที่อาจเปลี่ยนแปลงเนื่องจากการอัปเดตฐานข้อมูล Google Maps เราจึงขอแนะนำให้รีเฟรชรหัสสถานที่หากมีอายุมากกว่า 12 เดือน คุณรีเฟรชรหัสสถานที่ได้โดยไม่มีค่าใช้จ่ายโดยส่งคำขอรายละเอียดสถานที่ โดยระบุเฉพาะฟิลด์ Place.Field.ID
ในพารามิเตอร์ 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