รายละเอียดสถานที่

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
เลือกแพลตฟอร์ม: Android iOS JavaScript บริการเว็บ

Places SDK สําหรับ Android จะให้ข้อมูลรายละเอียดเกี่ยวกับสถานที่แก่แอป รวมถึงชื่อและที่อยู่ของสถานที่ ตําแหน่งทางภูมิศาสตร์ที่ระบุเป็นพิกัดละติจูด/ลองจิจูด ประเภทของสถานที่ (เช่น ไนท์คลับ ร้านขายสัตว์เลี้ยง พิพิธภัณฑ์) และอื่นๆ หากต้องการเข้าถึงข้อมูลเกี่ยวกับสถานที่แห่งนี้โดยเฉพาะ คุณสามารถใช้รหัสสถานที่ซึ่งเป็นตัวระบุแบบคงที่ที่ระบุสถานที่ได้อย่างเฉพาะเจาะจง

รายละเอียดสถานที่

ออบเจ็กต์ Place ให้ข้อมูลเกี่ยวกับสถานที่ที่เฉพาะเจาะจง คุณระงับออบเจ็กต์ Place ได้ด้วยวิธีต่อไปนี้

เมื่อขอสถานที่ คุณต้องระบุข้อมูลสถานที่ที่จะส่ง โดยส่งผ่านรายการค่า Place.Field ที่ระบุข้อมูลที่จะแสดง รายการนี้ถือเป็นสิ่งสําคัญที่ควรพิจารณาเนื่องจากส่งผลต่อต้นทุนสําหรับคําขอแต่ละรายการ

เนื่องจากผลลัพธ์ข้อมูลสถานที่ต้องไม่ว่างเปล่า ระบบจะส่งเฉพาะผลลัพธ์ที่มีข้อมูลเท่านั้น (เช่น หากสถานที่ที่ขอไม่มีรูปภาพ ช่อง photos จะไม่ปรากฏในผลลัพธ์)

ตัวอย่างต่อไปนี้ส่งรายการค่า Place.Field 3 ค่าเพื่อระบุข้อมูลที่คําขอแสดงผล

Java

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

Kotlin

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

เมื่อได้รับออบเจ็กต์ Place แล้ว ให้ใช้เมธอดของออบเจ็กต์เพื่อเรียกข้อมูลสถานที่ ตัวอย่างด้านล่างเป็นวิธีบางส่วนที่ใช้ได้ ดูรายการวิธีทั้งหมดได้ในการอ้างอิง API Place

  • getAddress() – ที่อยู่ของสถานที่ในรูปแบบที่มนุษย์อ่านได้
  • getAddressComponents()List ของคอมโพเนนต์ที่อยู่สําหรับสถานที่นี้ คอมโพเนนต์เหล่านี้มีไว้เพื่อวัตถุประสงค์ในการแยกข้อมูลที่มีโครงสร้างเกี่ยวกับที่อยู่ของสถานที่ เช่น พบเมืองที่สถานที่ตั้งอยู่ อย่าใช้คอมโพเนนต์เหล่านี้เพื่อจัดรูปแบบที่อยู่ แต่ให้ใช้ getAddress() ซึ่งให้ที่อยู่ที่มีการจัดรูปแบบแทน
  • getID() – ตัวระบุข้อความสําหรับสถานที่ อ่านเพิ่มเติมเกี่ยวกับรหัสสถานที่ในส่วนอื่นๆ ของหน้านี้
  • getLatLng() – สถานที่ตั้งทางภูมิศาสตร์ของสถานที่ ซึ่งระบุเป็นพิกัดละติจูดและลองจิจูด
  • getName() – ชื่อสถานที่
  • getOpeningHours()OpeningHours ของสถานที่ เรียก OpeningHours.getWeekdayText() เพื่อกลับไปที่รายการสตริงที่แสดงเวลาทําการเปิดและปิดของทุกวันของแต่ละสัปดาห์ เรียกใช้ OpeningHours.getPeriods() เพื่อแสดงรายการออบเจ็กต์ period ที่มีรายละเอียดเพิ่มเติมซึ่งเทียบเท่ากับข้อมูลที่ได้จาก getWeekdayText() หมายเหตุ: หากสถานที่เปิดทําการอยู่เสมอ ระยะเวลาจะแสดงเป็นวันอาทิตย์ตอนเที่ยงคืน และ closeEvent ไม่มีข้อมูล
  • isOpen() – บูลีนที่ระบุว่าสถานที่นี้เปิดอยู่หรือไม่ หากไม่ได้ระบุเวลา ค่าเริ่มต้นจะเป็นตอนนี้ ระบบจะแสดงผล isOpen เฉพาะเมื่อมีพร็อพเพอร์ตี้ทั้ง Place.Field.UTC_OFFSET และ Place.Field.OPENING_HOURS เท่านั้น ขอทราบช่อง Place.Field.BUSINESS_STATUS และ Place.Field.UTC_OFFSET ในคําขอสถานที่เดิมเพื่อให้ผลลัพธ์ถูกต้อง หากไม่ได้ร้องขอ จะถือว่าธุรกิจเปิดทําการอยู่ ดูวิดีโอนี้เกี่ยวกับวิธีใช้ isOpen พร้อมรายละเอียดสถานที่

ตัวอย่างง่ายๆ มีดังนี้

Java


final CharSequence name = place.getName();
final CharSequence address = place.getAddress();
final LatLng location = place.getLatLng();

      

Kotlin


val name = place.name
val address = place.address
val location = place.latLng

      

รับสถานที่ตามบัตรประจําตัว

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

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

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

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

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.
    }
});

      

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")
        }
    }

      

แสดงการระบุแหล่งที่มาในแอป

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

ข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานที่

รหัสสถานที่ที่ใช้ใน Places SDK สําหรับ Android เป็นตัวระบุเดียวกันกับที่ใช้ใน Places API รหัสสถานที่แต่ละแห่งหมายถึงสถานที่เพียงแห่งเดียว แต่สถานที่ 1 แห่งจะมีรหัสสถานที่ได้มากกว่า 1 รายการ มีสถานการณ์อื่นๆ ที่อาจทําให้สถานที่ได้รับรหัสสถานที่ใหม่ เช่น กรณีนี้อาจเกิดขึ้นหากธุรกิจเปลี่ยนไปใช้สถานที่ใหม่

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

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมรหัสสถานที่