ก่อนใช้ Location Selection API เพื่อค้นหาจุดรับรถ โปรดทำตามวิธีการผสานรวมกับไลบรารีของไคลเอ็นต์
บริการการเลือกสถานที่ตั้งมี API 3 รายการสำหรับการเลือกจุดรับและจุดส่ง ได้แก่ FindNearbyPlaces, FindPickupPointsForPlace และ FindPickupPointsForLocation
ใช้ FindNearbyPlaces เพื่อดึงข้อมูลสถานที่ใกล้กับตำแหน่งการค้นหาหรือตำแหน่งของอุปกรณ์
ระบบจะจัดอันดับสถานที่ตามระยะทางที่ใกล้กับตำแหน่งและระดับความโดดเด่นของ
การแชร์รถ FindNearbyPlaces จะแสดงรายการสถานที่ที่แสดงได้
เพื่อให้ผู้ใช้เลือกได้ดีที่สุด เมื่อเลือกสถานที่แล้ว ให้ใช้
FindPickupPointsForPlace เพื่อดึงข้อมูลจุดรับสินค้าสำหรับสถานที่ที่เลือก
ใช้ FindPickupPointsForLocation เพื่อดึงข้อมูลสถานที่และจุดรับที่เกี่ยวข้อง
ใกล้กับตำแหน่งการค้นหาหรืออุปกรณ์ในการเรียก RPC เดียวกัน
จุดรับสินค้าแต่ละแห่ง
จะเชื่อมโยงกับสถานที่ ระบบจะจัดอันดับจุดรับตามความใกล้เคียงกับ
สถานที่ตั้งและความโดดเด่นสำหรับการแชร์รถ โปรดทราบว่าจุดรับสินค้าสำหรับ
หลายแห่งจะเรียงลำดับไว้ด้วยกัน FindPickupPointsForLocation ผสานรวม
FindNearbyPlaces และ FindPickupPointsForPlace เช่น สมมติว่าคำขอ
ตำแหน่งอยู่ใกล้กับสถานที่ P1, P2 และ P3 หากจุดรับสินค้าที่ดีที่สุด T1 เชื่อมโยงกับสถานที่ P2 และจุดรับสินค้าที่ดีที่สุดถัดไปเชื่อมโยงกับสถานที่ P1 ผลลัพธ์จะมีการจัดเรียง [T1:P2, T2:P1, ...]
การจัดอันดับจุดรับสินค้าจะขึ้นอยู่กับเกณฑ์ที่ระบุไว้ในคำขอ ดูข้อมูลเพิ่มเติมได้ที่ การเพิ่มประสิทธิภาพการรับสำหรับหลายเที่ยว
ค้นหาตามสถานที่ตั้ง
หากต้องการแสดงสถานที่แก่ผู้ใช้ก่อนที่จะเลือกจุดรับสินค้า หรือแสดงสถานที่ใกล้เคียงโดยการลากหมุด ให้ใช้การเรียก RPC ต่อไปนี้
FindNearbyPlacesRequest find_nearby_places_request =
FindNearbyPlacesRequest.newBuilder()
.setLocalizationPreferences(LocalizationPreferences.newBuilder()
// Language used for localizing text such as name or address.
.setLanguageCode("en")
.setRegionCode("US")
.build())
// Rider's location or location of dragged pin.
.setSearchLocation(LatLng.newBuilder().setLatitude(37.365647).setLongitude(-121.925356))
// Number of places requested.
.setMaxResults(3)
.build();
FindNearbyPlacesResponse findNearbyPlacesResponse =
locationSelectionBetaClient.findNearbyPlaces(find_nearby_places_request);
การเรียก RPC จะแสดงผลรายการคำตอบของสถานที่ที่จัดอันดับแล้วซึ่งตรงตามเกณฑ์ที่ป้อน โดยเรียงตามการผสมผสานระหว่างความใกล้เคียงและความโดดเด่น
คุณสามารถให้
ผู้โดยสารเลือกสถานที่หรือใช้ผลการค้นหารายการแรก แล้วไปยังการเลือกจุดรับ
ได้ การตอบกลับของสถานที่แต่ละแห่งจะมี place_id ที่ไม่ซ้ำกันซึ่งใช้ใน
FindPickupPointsForPlaceRequest เพื่อดึงข้อมูลจุดรับสินค้าได้ ดูข้อมูลเพิ่มเติมได้ที่ค้นหาด้วยรหัสสถานที่
FindPickupPointsForLocationRequest FindPickupPointsForLocationRequest =
FindPickupPointsForLocationRequest.newBuilder()
// Language used for localizing text such as name and address.
.setLocalizationPreferences(LocalizationPreferences.newBuilder().setRegionCode("US").setLanguageCode("en"))
// The search location of the rider or the dropped pin.
.setSearchLocation(LatLng.newBuilder().setLatitude(-23.482049).setLongitude(-46.602135))
// The max results returned.
.setMaxResults(5)
// List of travel modes. At least one of the travel modes must be supported by the pickup points.
.addTravelModes(TravelMode.DRIVING)
// Specifies the sorting order of matching pickup points.
.setOrderBy(PickupPointOrder.DISTANCE_FROM_SEARCH_LOCATION)
.build();
FindPickupPointsForLocationResponse FindPickupPointsForLocationResponse =
locationSelectionService.FindPickupPointsForLocation(
RpcClientContext.create(), FindPickupPointsForLocationRequest);
การเรียก RPC จะแสดงรายการจุดรับสินค้าที่จัดอันดับแล้วซึ่งตรงตามเกณฑ์ที่ป้อน
โดยเรียงตามการผสมผสานระหว่างความใกล้เคียงและความโดดเด่น การเรียก RPC นี้
รวม FindNearbyPlaces และ FindPickupPointsForPlaceRequest และใช้แทนการรวมการเรียกอีก 2 รายการได้
ค้นหาตามรหัสสถานที่
คุณขอรับ place_id ได้โดยใช้ FindNearbyPlaces หรือ
ใช้บริการ Place Autocomplete ของ Places API จากนั้นใช้การเรียก RPC ต่อไปนี้เพื่อระบุจุดรับสินค้าที่เหมาะสมที่สุด
สำหรับสถานที่ที่ระบุ
FindPickupPointsForPlaceRequest findPickupPointsForPlaceRequest =
FindPickupPointsForPlaceRequest.newBuilder()
// Language used for localizing text such as name and address.
.setLocalizationPreferences(LocalizationPreferences.newBuilder().setRegionCode("US").setLanguageCode("en"))
// Place ID of the place for which pickup points are being fetched;
// for example, Hilton Hotel, Downtown San Jose.
.setPlaceId("ChIJwTUa-q_Mj4ARff4yludGH-M")
// List of travel modes. At least one of the travel modes must be supported by the pickup points.
.addTravelModes(TravelMode.DRIVING)
// Rider's location or location of dragged pin.
// It is recommended to use the same location that was used in `FindNearbyPlaces` for better quality.
.setSearchLocation(LatLng.newBuilder().setLatitude(37.329472).setLongitude(-121.890449))
.setOrderBy(PickupPointOrder.DISTANCE_FROM_SEARCH_LOCATION)
.setMaxResults(5)
.build();
FindPickupPointsForPlaceResponse findPickupPointsForPlaceResponse =
locationSelectionBetaClient.findPickupPointsForPlace(findPickupPointsForPlaceRequest);
FindPickupPointsForPlace จะแสดงผล PickupPointResponses พร้อมละติจูดและลองจิจูดสำหรับจุดที่รับผู้โดยสารได้
เพิ่มประสิทธิภาพการรับสำหรับหลายเที่ยว
สำหรับการเดินทางร่วมกันหรือการเดินทางต่อเนื่อง FindPickupPointsForPlace รองรับการจัดลำดับจุดรับ
ตาม DRIVING_ETA_FROM_PICKUP_POINT_TO_DESTINATION ซึ่งจะช่วยให้คุณ
แสดงจุดรับสำหรับทริปถัดไปที่ได้รับการเพิ่มประสิทธิภาพด้วยเส้นทาง
การเดินทางปัจจุบันของคนขับ
ตัวอย่าง
FindPickupPointsForPlaceRequest findPickupPointsForPlaceRequest =
FindPickupPointsForPlaceRequest.newBuilder()
// Language used for localizing text such as name and address.
.setLocalizationPreferences(LocalizationPreferences.newBuilder().setRegionCode("US").setLanguageCode("en"))
// Place ID of the place for which pickup points are being fetched;
// for example, Hilton Hotel, Downtown San Jose.
.setPlaceId("ChIJwTUa-q_Mj4ARff4yludGH-M")
// List of travel modes. At least one of the travel modes must be supported by the pickup points.
.addTravelModes(TravelMode.DRIVING)
// Second rider's location or location of dragged pin.
.setSearchLocation(LatLng.newBuilder().setLatitude(37.329472).setLongitude(-121.890449))
// Location of the driver's next drop off after picking up the second
// rider. Note, it is not necessarily the second rider's destination.
.setDestination(LatLng.newBuilder().setLatitude(37.329472).setLongitude(-121.890449))
.setOrderBy(PickupPointOrder.DRIVING_ETA_FROM_PICKUP_POINT_TO_DESTINATION)
.setComputeDrivingEta(true)
.setMaxResults(5)
.build();
FindPickupPointsForPlaceResponse findPickupPointsForPlaceResponse =
locationSelectionBetaClient.findPickupPointsForPlace(findPickupPointsForPlaceRequest);
แสดงโครงร่างอาคาร ทางเข้า และทางออก
ในข้อความตอบกลับของ Place Proto ฟิลด์
associatedCompounds
จะระบุสารประกอบที่เชื่อมโยงกับสถานที่ ข้อความแบบผสม
ประกอบด้วยข้อมูล 3 ประเภท ได้แก่
- ประเภทสารประกอบ - 1 ใน 4 ตัวเลือก
compoundBuilding- อาคารเดี่ยวๆ เช่น ห้างสรรพสินค้าหรือ ซูเปอร์มาร์เก็ตcompoundSection- สถานที่ตั้งภายในสถานที่ตั้งที่ใหญ่กว่า เช่น ร้านค้าเดียวในห้างสรรพสินค้าcompoundGrounds- ทุกอย่างที่เชื่อมโยงกับcompoundBuildingเช่น ห้างสรรพสินค้า ที่จอดรถ และอาคารอื่นๆ ภายในที่จอดรถนั้นunrecognized- ค่าเริ่มต้น
- เรขาคณิต - พิกัดของรูปหลายเหลี่ยมที่ระบุไว้ ซึ่งจัดเก็บไว้ในโครงสร้าง GeoJSON
ในฟิลด์
displayBoundaryระบบใช้พิกัดเหล่านี้เพื่อ สร้างโครงร่างของส่วน อาคาร หรือพื้นที่ - ทางเข้า - พิกัดละติจูดและลองจิจูดของทางเข้า และทางออกทั้งหมด
การเลือกสถานที่ตั้งจะแสดงผลประเภทสารประกอบที่เชื่อมโยง กับสถานที่ตั้งที่ค้นหา หากสถานที่ค้นหาอยู่ในร้านค้าใดร้านค้าหนึ่งใน ห้างสรรพสินค้า การเลือกสถานที่ตั้งจะแสดงข้อมูลต่อไปนี้ * ร้านค้าที่เฉพาะเจาะจง ทางเข้าและทางออกของร้านค้า และโครงร่างของร้านค้า * อาคารที่เป็นคอมเพล็กซ์ (ห้างสรรพสินค้า) ทางเข้าและทางออกของอาคาร และโครงร่างของห้างสรรพสินค้า * พื้นที่ที่เป็นคอมเพล็กซ์ (ห้างสรรพสินค้า + ลานจอดรถ) ทางเข้าและทางออกของพื้นที่ และโครงร่างของพื้นที่ทั้งหมด
รูปภาพนี้แสดงสารประกอบทั้ง 3 ประเภทที่ระบบแสดงผล

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