ย้ายข้อมูลจากสถานที่ปัจจุบัน (เดิม) ไปยังการค้นหาใกล้เคียง (ใหม่)

นักพัฒนาแอปในเขตเศรษฐกิจยุโรป (EEA)

Places SDK สำหรับ Android (เดิม) รองรับสถานที่ปัจจุบัน (เดิม) หากคุณคุ้นเคยกับสถานที่ปัจจุบัน (เดิม) การค้นหาใกล้เคียง (ใหม่) จะทำการเปลี่ยนแปลงต่อไปนี้

  • ใช้รูปแบบการกำหนดราคาใหม่ ดูข้อมูลราคาสำหรับ API ทั้งหมดได้ที่ Places SDK สำหรับ Android (ใหม่)

  • คุณต้องเริ่มต้นแอปโดยเรียกใช้เมธอด Places.initializeWithNewPlacesApiEnabled() ดูข้อมูลเพิ่มเติมเกี่ยวกับการเลือกบริการ Places API ได้ที่ ตั้งค่าโปรเจ็กต์ Google Cloud

  • ต้องมีการมาสก์ฟิลด์ คุณต้องระบุช่องที่ต้องการให้แสดงผล ในการตอบกลับ ไม่มีรายการฟิลด์ที่แสดงผลเริ่มต้น หากคุณละเว้น รายการนี้ เมธอดจะแสดงข้อผิดพลาด

  • การค้นหาใกล้เคียง (ใหม่) ไม่รองรับPlaceLikelihood การค้นหาใกล้เคียง (ใหม่) ช่วยให้คุณใช้ลำดับผลการค้นหาเพื่อระบุตำแหน่งที่มีความเป็นไปได้มากที่สุดได้

ตัวอย่างการค้นหาในบริเวณใกล้เคียง (ใหม่)

ดูข้อมูลเพิ่มเติมและตัวอย่างวิธีใช้การค้นหาใกล้เคียง (ใหม่) ได้ในเอกสารประกอบการค้นหาใกล้เคียง (ใหม่)

ใช้การค้นหาใกล้เคียง (ใหม่) เพื่อรับสถานที่ปัจจุบัน

ตัวอย่างต่อไปนี้แสดงวิธีรับสถานที่ปัจจุบันด้วยการค้นหาใกล้เคียง (ใหม่) โดยแทนที่การใช้ PlacesClient.findCurrentPlace() ด้วย PlacesClient.searchNearby()

public class MainActivity extends extends AppCompatActivity {

  private FusedLocationProviderClient fusedLocationProviderClient;

  @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    // ...

    // get permission
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.ACCESS_FINE_LOCATION)
        == PackageManager.PERMISSION_GRANTED) {

      // get location and search
      fusedLocationProviderClient
        .getLastLocation()
        .addOnSuccessListener(
            this,
            location -> {
              if (location != null) {
                LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
                CircularBounds circle = CircularBounds.newInstance(latLng, 10);
                List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME);

                SearchNearbyRequest.Builder request = SearchNearbyRequest.builder(circle, placeFields);

                placesClient
                    .searchNearby(request.build())
                    .addOnSuccessListener(response ->
List<Place> places = response.getPlaces();)
                    .addOnFailureListener(
                        exception -> {
                          // handle failure
                        });
              } else {
                // failed to get location.
              }
            })
        .addOnFailureListener(
            e -> {
              // handle error
            });

    } else {
      ActivityCompat.requestPermissions(
          this,
          new String[] {Manifest.permission.ACCESS_FINE_LOCATION},
          PERMISSION_REQUEST_CODE);
    }

  }
}