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

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

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

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

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

เมื่อขอสถานที่ คุณจะต้องระบุประเภทของข้อมูลสถานที่ที่จะส่งคืน ซึ่งส่งผ่าน List<Place.Field> เพื่อระบุประเภทข้อมูลที่จะแสดงผล นี่เป็นข้อควรพิจารณาที่สําคัญ เนื่องจากจะส่งผลต่อค่าใช้จ่ายสําหรับคําขอแต่ละรายการ เนื่องจากผลลัพธ์ข้อมูลสถานที่ต้องไม่ว่างเปล่า เราจะแสดงเฉพาะผลลัพธ์ของสถานที่ที่มีข้อมูลเท่านั้น (ตัวอย่างเช่น หากสถานที่ที่ขอไม่มีรูปภาพ ช่อง photos จะไม่แสดงในผลลัพธ์) คุณสามารถระบุช่องต่อไปนี้ อย่างน้อย 1 ช่อง

  • Place.Field.ADDRESS
  • Place.Field.ADDRESS_COMPONENTS
  • Place.Field.BUSINESS_STATUS
  • Place.Field.ID
  • Place.Field.LAT_LNG
  • Place.Field.NAME
  • Place.Field.OPENING_HOURS
  • Place.Field.PHONE_NUMBER
  • Place.Field.PHOTO_METADATAS
  • Place.Field.PLUS_CODE
  • Place.Field.PRICE_LEVEL
  • Place.Field.RATING
  • Place.Field.TYPES
  • Place.Field.USER_RATINGS_TOTAL
  • Place.Field.ICON_URL
  • Place.Field.ICON_BACKGROUND_COLOR
  • Place.Field.VIEWPORT
  • Place.Field.UTC_OFFSET
  • Place.Field.WEBSITE_URI

ดูข้อมูลเพิ่มเติมเกี่ยวกับช่องสถานที่ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเรียกเก็บเงินตามคําขอข้อมูลสถานที่ โปรดดูการใช้งานและการเรียกเก็บเงิน

ดึงข้อมูลจาก Place โดยใช้วิธีการต่อไปนี้

  • getAddress() – ที่อยู่ของสถานที่ในรูปแบบที่มนุษย์อ่านได้
  • getAddressComponents()List ของคอมโพเนนต์ที่อยู่สําหรับสถานที่นี้ องค์ประกอบเหล่านี้มีไว้เพื่อ ดึงข้อมูลที่มีโครงสร้างเกี่ยวกับที่อยู่ของสถานที่ เช่น การค้นหาเมืองของสถานที่นั้น อย่าใช้คอมโพเนนต์เหล่านี้สําหรับการจัดรูปแบบที่อยู่ แต่ให้เรียก getAddress() ซึ่งมีที่อยู่ที่จัดรูปแบบแล้วแทน
  • getBusinessStatus() – สถานะการเปิดทําการของสถานที่นั้นๆ หากเป็นธุรกิจ ซึ่งมีค่าใดค่าหนึ่งต่อไปนี้ OPERATIONAL, CLOSED_TEMPORARILY, CLOSED PERMANENTLY
  • getAttributions() – การระบุแหล่งที่มาที่ต้องแสดงต่อผู้ใช้ หากใช้ข้อมูลจากสถานที่
  • getID() – ตัวระบุข้อความของสถานที่ อ่านเพิ่มเติมเกี่ยวกับรหัสสถานที่ในส่วนที่เหลือของหน้านี้
  • getLatLng() – สถานที่ตั้งทางภูมิศาสตร์ของสถานที่ ซึ่งระบุเป็นพิกัดละติจูดและลองจิจูด
  • getName() – ชื่อสถานที่
  • getOpeningHours()OpeningHours ของสถานที่ เรียก OpeningHours.getWeekdayText() เพื่อกลับไปยังรายการสตริงที่แสดงเวลาเปิดและปิดทําการสําหรับแต่ละวันของสัปดาห์ เรียก OpeningHours.getPeriods() เพื่อแสดงรายการออบเจ็กต์ period พร้อมด้วยข้อมูลโดยละเอียดที่เทียบเท่ากับข้อมูลที่ getWeekdayText() ให้ หมายเหตุ: หากสถานที่เปิดทําการอยู่เสมอ ระยะเวลาจะแสดงเป็นวันอาทิตย์ตอนเที่ยงคืนและ closeEvent จะเป็น Null
  • getPhoneNumber() – หมายเลขโทรศัพท์ของสถานที่
  • getPhotoMetadatas() – ข้อมูลเมตาที่เชื่อมโยงกับรูปภาพที่เชื่อมโยงกับสถานที่ ซึ่งรวมถึงรูปภาพบิตแมป
  • getPlusCode() – ตําแหน่งของ PlusCode ของสถานที่นี้
  • getPriceLevel() – ระดับราคาของสถานที่นี้ แสดงผลเป็นจํานวนเต็มที่มีค่าตั้งแต่ 0 (ต่ําสุด) ถึง 4 (แพงที่สุด)
  • getRating() – การให้คะแนนรวมของสถานที่ซึ่งแสดงเป็นทศนิยมซึ่งมีค่าตั้งแต่ 1.0 ถึง 5.0 อิงตามรีวิวของผู้ใช้แบบรวม
  • getTypes() - รายการประเภทสถานที่ที่แสดงลักษณะเฉพาะของสถานที่นี้ โปรดดูรายการประเภทสถานที่ที่ใช้ได้จากอินเทอร์เฟซ Place ในเอกสารประกอบ
  • getUserRatingsTotal() – จํานวนรวมของการให้คะแนนของผู้ใช้ของสถานที่นี้
  • getIconUrl() – URL ของมาสก์ไอคอนสีดําที่แสดงประเภทสถานที่
  • getIconBackgroundColor – สีพื้นหลังของไอคอน ประเภทของสถานที่
  • getUtcOffsetMinutes() – การชดเชยเวลา UTC ในหน่วยนาที
  • getViewport() – วิวพอร์ตที่แสดงผลเป็นออบเจ็กต์ LatLngBounds มีประโยชน์สําหรับการแสดงสถานที่บนแผนที่ อาจแสดงผลเป็น Null หากไม่ทราบขนาดของสถานที่
  • getWebsiteUri() – URI ของเว็บไซต์ของสถานที่ หากทราบ เว็บไซต์ที่ดูแลโดยธุรกิจหรือบุคคลอื่นที่เชื่อมโยงกับสถานที่ แสดงผลเป็น Null หากไม่มีเว็บไซต์ที่รู้จัก
  • 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

      

รับสถานที่ตามรหัส

รหัสสถานที่เป็นตัวระบุแบบข้อความที่ระบุสถานที่แบบไม่ซ้ํากัน ใน Places SDK สําหรับ 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 รายการ มีสถานการณ์อื่นๆ ที่อาจทําให้สถานที่รับรหัสใหม่ เช่น กรณีนี้อาจเกิดขึ้นหากธุรกิจย้ายไปยังสถานที่ตั้งใหม่

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

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