เติมข้อความอัตโนมัติ (ใหม่)

เลือกแพลตฟอร์ม: Android iOS JavaScript เว็บเซอร์วิส

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

การเติมข้อความอัตโนมัติ (ใหม่) จะแสดงการคาดคะเนสถานที่เพื่อตอบสนองต่อคำขอที่มีสตริงการค้นหาข้อความและขอบเขตทางภูมิศาสตร์ที่ควบคุมพื้นที่การค้นหา การเติมข้อความอัตโนมัติจะจับคู่คำเต็มและสตริงย่อยของข้อมูลที่ป้อน แก้ไขชื่อสถานที่ ที่อยู่ และPlus Codes แอปพลิเคชันของคุณสามารถส่งคำค้นหาขณะที่ผู้ใช้พิมพ์ เพื่อให้การคาดคะเนสถานที่และคำค้นหาแบบเรียลไทม์

ตัวอย่างเช่น คุณเรียกใช้การเติมข้อความอัตโนมัติโดยใช้สตริงที่มีข้อมูลจากผู้ใช้บางส่วนเป็นอินพุต เช่น "Sicilian piz" โดยจำกัดพื้นที่การค้นหาไว้ที่ซานฟรานซิสโก แคลิฟอร์เนีย จากนั้นการตอบกลับจะมีรายการการคาดคะเนสถานที่ที่ตรงกับสตริงการค้นหาและพื้นที่ค้นหา เช่น ร้านอาหารชื่อ "Sicilian Pizza Kitchen" การคาดคะเนสถานที่ที่แสดงผลได้รับการออกแบบมาเพื่อนำเสนอต่อผู้ใช้เพื่อช่วยในการเลือกสถานที่ที่ต้องการ คุณสามารถส่งคำขอรายละเอียดสถานที่ (ใหม่) เพื่อรับข้อมูลเพิ่มเติม เกี่ยวกับคำทำนายสถานที่ที่แสดง

คุณผสานรวมฟังก์ชันการเติมข้อความอัตโนมัติ (ใหม่) เข้ากับแอปได้ 2 วิธีหลักๆ ดังนี้

เพิ่มวิดเจ็ต Place Autocomplete

คุณสามารถเพิ่มวิดเจ็ต Place Autocomplete ลงในแอปเพื่อให้ประสบการณ์ Place Autocomplete ที่สอดคล้องกันได้ง่ายขึ้น วิดเจ็ตนี้มีอินเทอร์เฟซแบบเต็มหน้าจอโดยเฉพาะซึ่งจะจัดการข้อมูลจากผู้ใช้และแสดงการคาดคะเนสถานที่แก่ผู้ใช้ขณะแสดงผลออบเจ็กต์ AutocompletePrediction ไปยังแอป จากนั้นคุณสามารถส่งคำขอรายละเอียดสถานที่ (ใหม่) เพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับการคาดคะเนสถานที่ได้

วิดเจ็ต Place Autocomplete

เช่นเดียวกับเมื่อรับการคาดคะเนสถานที่แบบเป็นโปรแกรม วิดเจ็ต Place Autocomplete ช่วยให้คุณใช้โทเค็นของเซสชันเพื่อจัดกลุ่มคำขอเติมข้อความอัตโนมัติเป็นเซสชันเพื่อวัตถุประสงค์ในการเรียกเก็บเงินได้ คุณส่งโทเค็นของเซสชันได้เมื่อสร้าง Intent สำหรับวิดเจ็ตโดยเรียกใช้ setAutocompleteSessionToken() หากคุณไม่ระบุโทเค็นของเซสชัน วิดเจ็ตจะสร้างโทเค็นให้คุณ ซึ่งคุณเข้าถึงได้โดยเรียกใช้ getSessionTokenFromIntent() ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้โทเค็นของเซสชันได้ที่เกี่ยวกับโทเค็นของเซสชัน

วิธีเพิ่มวิดเจ็ต Place Autocomplete ลงในแอป

  1. (ไม่บังคับ) กำหนดโทเค็นของเซสชัน หากคุณไม่ได้ระบุโทเค็นของเซสชัน วิดเจ็ตจะสร้างโทเค็นให้คุณ

  2. กำหนด autocompleteIntent โดยใช้พารามิเตอร์ที่ต้องการและโทเค็นเซสชัน

  3. กำหนด ActivityResultLauncher สำหรับ StartActivityForResult ตัวเรียกใช้งานนี้จะจัดการผลลัพธ์ที่ได้จากกิจกรรมการเติมข้อความอัตโนมัติ

  4. จัดการผลลัพธ์ในแฮนเดิลของ ActivityResultLauncher ซึ่งรวมถึงการดึงข้อมูล AutocompletePrediction และ AutocompleteSessionToken (หากคุณไม่ได้ระบุไว้) การจัดการข้อผิดพลาด และการส่งคำขอ fetchPlace() (ไม่บังคับ) เพื่อรับรายละเอียดเพิ่มเติมเกี่ยวกับสถานที่

  5. เปิด Intent โดยใช้ placeAutocompleteActivityResultLauncher

ตัวอย่างต่อไปนี้แสดงวิธีเพิ่มวิดเจ็ต Place Autocomplete โดยใช้ทั้ง Kotlin และ Java

Kotlin

// Provide the API key that has enabled "Places API (New)" in the Google Cloud Console.
Places.initializeWithNewPlacesApiEnabled(/* Context= */ context, /* API Key= */ key)

// Optional, create a session token for Autocomplete request and the followup FetchPlace request.
val sessionToken: AutocompleteSessionToken = AutocompleteSessionToken.newInstance()

val autocompleteIntent: Intent =
    PlaceAutocomplete.createIntent(this) {
        // ... provide input params for origin, countries, types filter ...
        setAutocompleteSessionToken(sessionToken)
    }

val placeAutocompleteActivityResultLauncher: ActivityResultLauncher<Intent> =
    registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
        val intent = result.data
        if (intent != null && result.resultCode == PlaceAutocompleteActivity.RESULT_OK) {
            // get prediction object
            val prediction: AutocompletePrediction? =
                PlaceAutocomplete.getPredictionFromIntent(intent!!)

            // get session token
            val sessionToken: AutocompleteSessionToken? =
                PlaceAutocomplete.getSessionTokenFromIntent(intent!!)

            // create PlacesClient to make FetchPlace request (optional)
            val placesClient: PlacesClient = Places.createClient(this)
            val response =
                placesClient.awaitFetchPlace(prediction.placeId, Field.DISPLAY_NAME)
                {
                    sessionToken = sessionToken // optional
                }
        }
    }

// Launch Activity
placeAutocompleteActivityResultLauncher.launch(autocompleteIntent)

Java

// Provide the API key that has enabled "Places API (New)" in the Google Cloud Console.
Places.initializeWithNewPlacesApiEnabled(/* Context= */ context, /* API Key= */ key);

// Optional, create a session token for Autocomplete request and the followup FetchPlace request
AutocompleteSessionToken sessionToken = AutocompleteSessionToken.newInstance();

Intent autocompleteIntent =
    new PlaceAutocomplete.IntentBuilder()
        // ... set input params for origin, countries, types filter ...
        .setSessionToken(sessionToken) // optional
        .build(this);

ActivityResultLauncher<Intent> placeAutocompleteActivityResultLauncher =
    registerForActivityResult(
        new ActivityResultContracts.StartActivityForResult(),
        new ActivityResultCallback<ActivityResult>() {
            @Override
            public void onActivityResult(ActivityResult result) {
                Intent intent = result.getData();
                if (result.getResultCode() == PlaceAutocompleteActivity.RESULT_OK) {
                    // get prediction object
                    AutocompletePrediction prediction =
                        PlaceAutocomplete.getPredictionFromIntent(
                            Preconditions.checkNotNull(intent));

                    // get session token
                    AutocompleteSessionToken sessionToken =
                        PlaceAutocomplete.getSessionTokenFromIntent(
                            Preconditions.checkNotNull(intent));

                    // create PlacesClient to make FetchPlace request (optional)
                    PlacesClient placesClient = Places.createClient(this);
                    FetchPlaceRequest request =
                        FetchPlaceRequest.builder(prediction.getPlaceId(),
                            Arrays.asList(Field.DISPLAY_NAME))
                            .setSessionToken(sessionToken).build();
                    Task<FetchPlaceResponse> task = placesClient.fetchPlace(request);
                }
            }
        }
    );

// Launch Activity
placeAutocompleteActivityResultLauncher.launch(autocompleteIntent);

ปรับแต่งธีม

เมื่อสร้างอินสแตนซ์ประสบการณ์การเติมข้อความอัตโนมัติ คุณสามารถระบุธีมที่ลบล้างแอตทริบิวต์สไตล์เริ่มต้นได้ คุณปรับแต่งสี ตัวอักษร ระยะห่าง เส้นขอบ และมุมของคอมโพเนนต์การเติมข้อความอัตโนมัติของสถานที่ได้ ค่าเริ่มต้นคือ PlacesMaterialTheme แอตทริบิวต์ธีมที่ไม่ได้ลบล้างจะใช้สไตล์เริ่มต้น

คุณกำหนดการลบล้างธีมได้ใน …/res/values/themes.xml เช่น

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="BrandedTheme" parent="PlacesMaterialTheme">
    <!-- Color tokens. -->
    <item name="placesColorOnNeutralContainer">#5300e8</item>
    <item name="placesColorOnNeutralContainerVariant">#ee6002</item>
    ...

    <!-- Typography tokens. -->
    <item name="placesTextAppearanceTitleLarge">@style/PlacesTextAppearance</item>
    <item name="placesTextAppearanceBodyMedium">@style/PlacesTextAppearance</item>
    ...

    <!-- Spacing tokens. -->
    <item name="placesSpacingSmall">6dp</item>
    <item name="placesSpacingMedium">12dp</item>
    ...

    <!-- Attribution tokens. -->
    <item name="placesColorAttributionLightTheme">white</item>
    <item name="placesColorAttributionDarkTheme">black</item>
  </style>
</resources>

จากนั้นคุณสามารถอ้างอิงรูปแบบการลบล้างได้โดยเรียกใช้ setAutocompleteUiCustomization ดังนี้

ActivityResultLauncher<Intent> placeAutocompleteActivityResultLauncher =
  registerForActivityResult(
    new ActivityResultContracts.StartActivityForResult(),
    new ActivityResultCallback<ActivityResult>() {
      @Override
      public void onActivityResult(ActivityResult result) {
        Intent intent = result.getData();
        if (intent != null) {
          AutocompletePrediction prediction =
            PlaceAutocomplete.getPredictionFromIntent(intent);
          AutocompleteSessionToken sessionToken =
            PlaceAutocomplete.getSessionTokenFromIntent(intent);
          Status status = PlaceAutocomplete.getResultStatusFromIntent(intent);
          ...
        }
      }
    }
  );

Intent placeAutocompleteIntent =
  new PlaceAutocomplete.IntentBuilder()
    .setInitialQuery("INSERT_QUERY_TEXT")
    .setOrigin(new LatLng(10.0, 10.0))
    ...

    .setAutocompleteUiCustomization(
      AutocompleteUiCustomization.builder()
        .listItemIcon(AutocompleteUiIcon.noIcon())
        .listDensity(AutocompleteListDensity.MULTI_LINE)
        .theme(R.style.BrandedTheme)
        .build())
  .build(this);

placeAutocompleteActivityResultLauncher.launch(placeAutocompleteIntent);

รับการคาดคะเนสถานที่แบบเป็นโปรแกรม

แอปของคุณสามารถรับรายการชื่อสถานที่และ/หรือที่อยู่ที่คาดการณ์ไว้จาก Autocomplete API โดยเรียกใช้ PlacesClient.findAutocompletePredictions() และส่งออบเจ็กต์ FindAutocompletePredictionsRequest ตัวอย่างด้านล่างแสดงการเรียกใช้ PlacesClient.findAutocompletePredictions() ที่สมบูรณ์

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();
LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);
final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Sicilian piz")
            .setRegionCode("ES")
            .setLocationRestriction(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

การตอบกลับการเติมข้อความอัตโนมัติ (ใหม่)

API จะแสดงผล FindAutocompletePredictionsResponse ใน Task FindAutocompletePredictionsResponse มีรายการออบเจ็กต์ AutocompletePrediction สูงสุด 5 รายการที่แสดงถึงสถานที่ที่คาดการณ์ รายการอาจว่างเปล่าหากไม่มีสถานที่ที่รู้จักซึ่งตรงกับคำค้นหาและเกณฑ์ตัวกรอง

สำหรับสถานที่ที่คาดการณ์แต่ละแห่ง คุณสามารถเรียกใช้เมธอดต่อไปนี้เพื่อดึงรายละเอียดสถานที่ได้

  • getFullText(CharacterStyle) แสดงข้อความทั้งหมดของคำอธิบายสถานที่ นี่คือข้อความหลักและข้อความรองรวมกัน ตัวอย่าง: "Eiffel Tower, Avenue Anatole France, Paris, France" นอกจากนี้ วิธีนี้ยังช่วยให้คุณไฮไลต์ส่วนของคำอธิบายที่ตรงกับการค้นหาด้วยสไตล์ที่ต้องการได้โดยใช้ CharacterStyle พารามิเตอร์ CharacterStyle เป็นพารามิเตอร์ที่ไม่บังคับ ตั้งค่าเป็น null หากไม่ต้องการไฮไลต์ใดๆ
  • getPrimaryText(CharacterStyle) แสดงข้อความหลักที่อธิบายสถานที่ ซึ่งโดยปกติแล้วจะเป็นชื่อของสถานที่ ตัวอย่าง: "หอไอเฟล" และ "123 Pitt Street"
  • getSecondaryText(CharacterStyle) แสดงผลข้อความเสริมของคำอธิบายสถานที่ ซึ่งจะมีประโยชน์ เช่น เป็นบรรทัดที่ 2 เมื่อแสดงการคาดคะเนการเติมข้อความอัตโนมัติ ตัวอย่างเช่น "Avenue Anatole France, Paris, France" และ "Sydney, New South Wales"
  • getPlaceId() แสดงรหัสสถานที่ของสถานที่ที่คาดการณ์ไว้ รหัสสถานที่เป็นตัวระบุแบบข้อความที่ระบุสถานที่ตั้งแบบไม่ซ้ำกัน ซึ่งคุณสามารถใช้เพื่อดึงข้อมูลออบเจ็กต์ Place อีกครั้งในภายหลังได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานที่ใน การเติมข้อความอัตโนมัติได้ที่รายละเอียดสถานที่ (ใหม่) ดูข้อมูลทั่วไปเกี่ยวกับรหัสสถานที่ได้ที่ภาพรวมรหัสสถานที่
  • getTypes() จะแสดงรายการประเภทสถานที่ที่เชื่อมโยงกับสถานที่นี้
  • getDistanceMeters() แสดงระยะทางแบบเส้นตรงเป็นเมตรระหว่างสถานที่นี้กับจุดเริ่มต้นที่ระบุในคำขอ

พารามิเตอร์ที่จำเป็น

  • การค้นหา

    สตริงข้อความที่จะค้นหา ระบุคำเต็มและสตริงย่อย ชื่อสถานที่ ที่อยู่ และ Plus Code บริการเติมข้อความอัตโนมัติ (ใหม่) จะแสดงผลลัพธ์ที่ตรงกันซึ่งเป็นไปได้โดยอิงตามสตริงนี้ และจัดเรียงผลลัพธ์ตามความเกี่ยวข้องที่รับรู้

    หากต้องการตั้งค่าพารามิเตอร์การค้นหา ให้เรียกใช้เมธอด setQuery() เมื่อสร้างออบเจ็กต์ FindAutocompletePredictionsRequest

พารามิเตอร์ที่ไม่บังคับ

  • ประเภทหลัก

    รายการค่าประเภทสูงสุด 5 ค่าจากประเภท ตาราง ก หรือตาราง ข ที่ใช้กรองสถานที่ที่แสดงผลในการตอบกลับ สถานที่ต้องตรงกับค่าประเภทหลักที่ระบุค่าใดค่าหนึ่งจึงจะรวมอยู่ในการตอบกลับ

    สถานที่หนึ่งๆ จะมีประเภทหลักได้เพียงประเภทเดียวจากประเภทในตาราง ก หรือตาราง ข ที่เชื่อมโยงกับสถานที่นั้น เช่น ประเภทหลักอาจเป็น "mexican_restaurant" หรือ "steak_house"

    คำขอจะถูกปฏิเสธพร้อมข้อผิดพลาด INVALID_REQUEST ในกรณีต่อไปนี้

    • ระบุประเภทมากกว่า 5 ประเภท
    • มีการระบุประเภทที่ไม่รู้จัก

    หากต้องการตั้งค่าพารามิเตอร์ประเภทหลัก ให้เรียกใช้เมธอด setTypesFilter() เมื่อสร้างออบเจ็กต์ FindAutocompletePredictionsRequest

  • ประเทศ

    รวมเฉพาะผลลัพธ์จากรายชื่อประเทศที่ระบุ ซึ่งระบุเป็นรายการ ccTLD ("โดเมนระดับบนสุด") ที่มีค่า 2 อักขระได้สูงสุด 15 รายการ หากละเว้น ระบบจะไม่ใช้ข้อจำกัดกับการตอบกลับ เช่น หากต้องการจำกัดภูมิภาคเป็นเยอรมนีและฝรั่งเศส ให้ทำดังนี้

    หากคุณระบุทั้ง locationRestriction และ includedRegionCodes ผลลัพธ์จะอยู่ในพื้นที่ที่ทับซ้อนกันของการตั้งค่าทั้ง 2 รายการ

    หากต้องการตั้งค่าพารามิเตอร์ประเทศ ให้เรียกใช้เมธอด setCountries() เมื่อสร้างออบเจ็กต์ FindAutocompletePredictionsRequest

  • ออฟเซ็ตอินพุต

    ออฟเซ็ตอักขระ Unicode ฐาน 0 ที่ระบุตำแหน่งเคอร์เซอร์ในคำค้นหา ตำแหน่งเคอร์เซอร์อาจส่งผลต่อการคาดคะเนที่แสดงผล หากเว้นว่างไว้ ระบบจะใช้ความยาวของการค้นหาเป็นค่าเริ่มต้น

    หากต้องการตั้งค่าพารามิเตอร์ออฟเซ็ตอินพุต ให้เรียกใช้เมธอด setInputOffset() เมื่อสร้างออบเจ็กต์ FindAutocompletePredictionsRequest

  • การให้น้ำหนักพิเศษกับบางตำแหน่งหรือการจำกัดตำแหน่ง

    คุณสามารถระบุการให้น้ำหนักสถานที่ตั้งหรือการจำกัดสถานที่ตั้งเพื่อกำหนดพื้นที่ค้นหาได้ แต่จะระบุทั้ง 2 อย่างไม่ได้ ให้คิดว่าการจำกัดตำแหน่งเป็นการระบุภูมิภาคที่ผลลัพธ์ต้องอยู่ภายใน และการให้น้ำหนักพิเศษกับตำแหน่งเป็นการระบุภูมิภาคที่ผลลัพธ์ต้องอยู่ใกล้ ความแตกต่างที่สำคัญคือเมื่อใช้การให้น้ำหนักพิเศษตามสถานที่ตั้ง ระบบอาจยังคงแสดงผลลัพธ์นอกภูมิภาคที่ระบุ

    • อคติจากสถานที่

      ระบุพื้นที่ที่จะค้นหา ตำแหน่งนี้จะเป็นตำแหน่งที่ให้น้ำหนักพิเศษ ไม่ใช่ข้อจำกัด ดังนั้นระบบจึงอาจยังแสดงผลลัพธ์ที่อยู่นอกพื้นที่ที่ระบุ

      หากต้องการตั้งค่าพารามิเตอร์การให้น้ำหนักสถานที่ตั้ง ให้เรียกใช้เมธอด setLocationBias() เมื่อสร้างออบเจ็กต์ FindAutocompletePredictionsRequest

    • ข้อจำกัดด้านสถานที่ตั้ง

      ระบุพื้นที่ที่จะค้นหา ระบบจะไม่แสดงผลลัพธ์ที่อยู่นอกพื้นที่ที่ระบุ

      หากต้องการตั้งค่าพารามิเตอร์ข้อจำกัดสถานที่ตั้ง ให้เรียกใช้เมธอด setLocationRestriction() เมื่อสร้างออบเจ็กต์ FindAutocompletePredictionsRequest

    ระบุภูมิภาคที่เอนเอียงตามสถานที่ตั้งหรือข้อจำกัดด้านสถานที่ตั้งเป็น วิวพอร์ตสี่เหลี่ยมผืนผ้าหรือเป็นวงกลม

    • วงกลมจะกำหนดโดยจุดศูนย์กลางและรัศมีเป็นเมตร รัศมีต้องอยู่ระหว่าง 0.0 ถึง 50000.0 (รวม) ค่าเริ่มต้นคือ 0.0 สำหรับการจำกัดสถานที่ตั้ง คุณต้องตั้งค่ารัศมีให้มากกว่า 0.0 ไม่เช่นนั้น คำขอจะไม่แสดงผลลัพธ์

    • สี่เหลี่ยมผืนผ้าคือวิวพอร์ตในรูปแบบละติจูด-ลองจิจูด ซึ่งกำหนดด้วยจุดสองจุดที่อยู่มุมตรงข้ามกัน โดยจุดหนึ่งเป็นค่า low และอีกจุดเป็นค่า high วิวพอร์ตถือเป็นพื้นที่ปิด ซึ่งหมายรวมถึงขอบเขตของตัววิวพอร์ตเองด้วย ขอบเขตละติจูด ต้องอยู่ระหว่าง -90 ถึง 90 องศา และขอบเขตลองจิจูด ต้องอยู่ระหว่าง -180 ถึง 180 องศา

      • หาก low = high วิวพอร์ตจะประกอบด้วยจุดเดียว
      • หาก low.longitude > high.longitude หมายความว่าช่วงลองจิจูดกลับด้าน (วิวพอร์ตข้ามเส้นลองจิจูด 180 องศา)
      • หาก low.longitude = -180 องศา และ high.longitude = 180 องศา วิวพอร์ตจะครอบคลุมลองจิจูดทั้งหมด
      • หาก low.longitude = 180 องศา และ high.longitude = -180 องศา ช่วงลองจิจูดจะว่างเปล่า

      คุณต้องระบุทั้ง low และ high และช่องที่แสดงต้องไม่ว่าง เนื่องจากวิวพอร์ตที่ว่างเปล่าจะทำให้เกิดข้อผิดพลาด

  • Origin

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

    หากต้องการตั้งค่าพารามิเตอร์ต้นทาง ให้เรียกใช้เมธอด setOrigin() เมื่อสร้างออบเจ็กต์ FindAutocompletePredictionsRequest

  • รหัสภูมิภาค

    รหัสภูมิภาคที่ใช้จัดรูปแบบการตอบกลับ รวมถึงการจัดรูปแบบที่อยู่ ซึ่งระบุเป็นค่า ccTLD ("โดเมนระดับบนสุด") 2 อักขระ รหัส ccTLD ส่วนใหญ่จะเหมือนกับรหัส ISO 3166-1 โดยมีข้อยกเว้นที่สำคัญบางประการ ตัวอย่างเช่น ccTLD ของสหราชอาณาจักรคือ "uk" (.co.uk) ขณะที่รหัส ISO 3166-1 คือ "gb" (ในทางเทคนิคสำหรับนิติบุคคล "สหราชอาณาจักรเกรตบริเตนและนอร์เทิร์นไอร์แลนด์")

    หากคุณระบุรหัสภูมิภาคที่ไม่ถูกต้อง API จะแสดงข้อผิดพลาด INVALID_ARGUMENT พารามิเตอร์นี้อาจส่งผลต่อผลลัพธ์ตามกฎหมายที่เกี่ยวข้อง

    หากต้องการตั้งค่าพารามิเตอร์รหัสภูมิภาค ให้เรียกใช้เมธอด setRegionCode() เมื่อสร้างออบเจ็กต์ FindAutocompletePredictionsRequest

  • โทเค็นของเซสชัน

    โทเค็นของเซสชันคือสตริงที่ผู้ใช้สร้างขึ้นซึ่งติดตามการเรียกใช้การเติมข้อความอัตโนมัติ (ใหม่) ทั้งการเรียกใช้ผ่านวิดเจ็ตและการเรียกใช้แบบเป็นโปรแกรมเป็น "เซสชัน" การเติมข้อความอัตโนมัติจะใช้โทเค็นของเซสชันเพื่อจัดกลุ่มระยะการค้นหาและการเลือกของการค้นหาด้วยการเติมข้อความอัตโนมัติของผู้ใช้เป็นเซสชันแยกกันเพื่อวัตถุประสงค์ในการเรียกเก็บเงิน เซสชันจะเริ่มต้นเมื่อผู้ใช้เริ่มพิมพ์คำค้นหา และสิ้นสุดเมื่อผู้ใช้เลือกสถานที่ แต่ละเซสชันสามารถมีคำค้นหาได้หลายรายการ ตามด้วยการเลือกสถานที่ 1 แห่ง เมื่อเซสชันสิ้นสุดลง โทเค็นจะใช้ไม่ได้อีกต่อไป แอปของคุณต้องสร้างโทเค็นใหม่สำหรับแต่ละเซสชัน เราขอแนะนำให้ใช้โทเค็นของเซสชันสำหรับเซสชันการเติมข้อความอัตโนมัติแบบเป็นโปรแกรมทั้งหมด (เมื่อคุณฝังส่วนย่อยหรือเปิดใช้การเติมข้อความอัตโนมัติโดยใช้ Intent, API จะจัดการเรื่องนี้ให้โดยอัตโนมัติ)

    การเติมข้อความอัตโนมัติใช้ AutocompleteSessionToken เพื่อระบุแต่ละเซสชัน แอปควรส่งโทเค็นของเซสชันใหม่เมื่อเริ่มเซสชันใหม่แต่ละเซสชัน จากนั้นส่งโทเค็นเดียวกันนั้นพร้อมกับรหัสสถานที่ในการเรียก fetchPlace() ครั้งต่อมาเพื่อดึงข้อมูลรายละเอียดสถานที่สำหรับสถานที่ที่ผู้ใช้เลือก

    หากต้องการตั้งค่าพารามิเตอร์โทเค็นของเซสชัน ให้เรียกใช้เมธอด setSessionToken() เมื่อสร้างออบเจ็กต์ FindAutocompletePredictionsRequest

    ดูข้อมูลเพิ่มเติมได้ที่โทเค็นของเซสชัน

ตัวอย่างการเติมข้อความอัตโนมัติ (ใหม่)

ใช้การจำกัดสถานที่ตั้งและความเอนเอียงตามสถานที่ตั้ง

การเติมข้อความอัตโนมัติ (ใหม่) จะใช้การกำหนดค่า IP โดยค่าเริ่มต้นเพื่อ ควบคุมพื้นที่การค้นหา เมื่อใช้การปรับ IP API จะใช้ที่อยู่ IP ของ อุปกรณ์เพื่อปรับผลลัพธ์ คุณสามารถเลือกใช้การจำกัดสถานที่ตั้งหรือการให้น้ำหนักสถานที่ตั้งเพื่อระบุพื้นที่ที่จะค้นหาได้ แต่จะใช้ทั้ง 2 อย่างไม่ได้

การจำกัดตำแหน่งจะระบุพื้นที่ที่จะค้นหา ระบบจะไม่แสดงผลลัพธ์ที่อยู่นอกพื้นที่ที่ระบุ ตัวอย่างต่อไปนี้ใช้ข้อจำกัดด้านสถานที่เพื่อจำกัดคำขอให้อยู่ในข้อจำกัดด้านสถานที่แบบวงกลมที่มีรัศมี 5,000 เมตรโดยมีศูนย์กลางอยู่ที่ซานฟรานซิสโก

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Amoeba")
            .setLocationRestriction(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

เมื่อใช้การให้น้ำหนักพิเศษตามตำแหน่ง ตำแหน่งจะเป็นตำแหน่งที่ให้น้ำหนักพิเศษ ซึ่งหมายความว่าระบบจะแสดงผลลัพธ์รอบๆ ตำแหน่งที่ระบุ รวมถึงผลลัพธ์ที่อยู่นอกพื้นที่ที่ระบุ ตัวอย่างถัดไปจะเปลี่ยนคำขอก่อนหน้าให้ใช้การเอนเอียงตามตำแหน่ง

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Amoeba")
            .setLocationBias(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

ใช้ประเภทหลัก

ใช้พารามิเตอร์ประเภทหลักเพื่อจำกัดผลลัพธ์จากคำขอให้เป็นประเภทใดประเภทหนึ่งตามที่ระบุไว้ในตาราง กและตาราง ข คุณระบุอาร์เรย์ได้สูงสุด 5 ค่า หากละเว้น ระบบจะแสดงผลทุกประเภท

ตัวอย่างต่อไปนี้ระบุสตริงการค้นหา "Soccer" และใช้พารามิเตอร์ประเภทหลักเพื่อจำกัดผลการค้นหาให้แสดงเฉพาะสถานที่ตั้งประเภท "sporting_goods_store"

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

final List<Place.Field> primaryTypes = Arrays.asList("sporting_goods_store");

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Soccer")
            .setIncludedPrimaryTypes(primaryTypes)
            .setLocationBias(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

หากคุณละเว้นพารามิเตอร์ประเภทหลัก ผลลัพธ์อาจรวมสถานที่ตั้งประเภทที่คุณอาจไม่ต้องการ เช่น "athletic_field"

ใช้ต้นทาง

เมื่อคุณใส่พารามิเตอร์ origin ในคำขอ ซึ่งระบุเป็นพิกัดละติจูดและลองจิจูด API จะรวมระยะทางเส้นตรงจากจุดเริ่มต้นไปยังจุดหมายในการตอบกลับ (เข้าถึงโดยใช้ getDistanceMeters()) ตัวอย่างนี้ตั้งค่าจุดเริ่มต้นเป็นใจกลางซานฟรานซิสโก

Places.initializeWithNewPlacesApiEnabled(context, apiKey);
final List<Field> placeFields = getPlaceFields();

LatLng center = new LatLng(37.7749, -122.4194);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 5000);

final FindAutocompletePredictionsRequest autocompletePlacesRequest =
    FindAutocompletePredictionsRequest.builder()
            .setQuery("Amoeba")
            .setOrigin(center)
            .setLocationRestriction(circle)
            .build());
placesClient.findAutocompletePredictions(autoCompletePlacesRequest)
    .addOnSuccessListener(
        (response) -> {
            List<AutocompletePrediction> predictions = response.getResult().getAutocompletePredictions();
          }
    ).addOnFailureListener(
        exception -> {
            Log.e(TAG, "some exception happened" + exception.getMessage());
        })
    );

การเพิ่มประสิทธิภาพการเติมข้อความอัตโนมัติ (ใหม่)

ส่วนนี้อธิบายแนวทางปฏิบัติแนะนำที่จะช่วยให้คุณใช้ประโยชน์จากบริการ การเติมข้อความอัตโนมัติ (ใหม่) ได้อย่างเต็มที่

หลักเกณฑ์ทั่วไปมีดังนี้

แนวทางปฏิบัติแนะนำในการเพิ่มประสิทธิภาพต้นทุน

การเพิ่มประสิทธิภาพต้นทุนพื้นฐาน

หากต้องการเพิ่มประสิทธิภาพค่าใช้จ่ายในการใช้บริการเติมข้อความอัตโนมัติ (ใหม่) ให้ใช้มาสก์ฟิลด์ในวิดเจ็ตรายละเอียดสถานที่ (ใหม่) และการเติมข้อความอัตโนมัติ (ใหม่) เพื่อแสดงเฉพาะฟิลด์ข้อมูลการเติมข้อความอัตโนมัติ (ใหม่) ที่คุณต้องการ

การเพิ่มประสิทธิภาพต้นทุนขั้นสูง

พิจารณาการใช้งาน Autocomplete (ใหม่) แบบเป็นโปรแกรมเพื่อเข้าถึง SKU: ราคาคำขอเติมข้อความอัตโนมัติ และขอผลลัพธ์ Geocoding API เกี่ยวกับสถานที่ที่เลือกแทนรายละเอียดสถานที่ (ใหม่) ราคาต่อคำขอที่จับคู่กับ Geocoding API จะคุ้มค่ากว่าราคาต่อเซสชัน (อิงตามเซสชัน) หากเป็นไปตามเงื่อนไขทั้ง 2 ข้อต่อไปนี้

  • หากต้องการเพียงละติจูดและลองจิจูดหรือที่อยู่ของสถานที่ที่ผู้ใช้เลือก Geocoding API จะให้ข้อมูลนี้โดยมีค่าใช้จ่ายน้อยกว่าการเรียกใช้รายละเอียดสถานที่ (ใหม่)
  • หากผู้ใช้เลือกการคาดคะเนการเติมข้อความอัตโนมัติภายในคำขอการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) โดยเฉลี่ย 4 รายการหรือน้อยกว่า การกำหนดราคาต่อคำขออาจคุ้มค่ากว่าการกำหนดราคาต่อเซสชัน
หากต้องการความช่วยเหลือในการเลือกการติดตั้งใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ที่เหมาะกับความต้องการของคุณ ให้เลือกแท็บที่สอดคล้องกับคำตอบของคุณสำหรับคำถามต่อไปนี้

แอปพลิเคชันของคุณต้องการข้อมูลอื่นนอกเหนือจากที่อยู่และละติจูด/ลองจิจูดของการคาดคะเนที่เลือกไหม

ใช่ ต้องระบุรายละเอียดเพิ่มเติม

ใช้การเติมข้อความอัตโนมัติที่อิงตามเซสชัน (ใหม่) กับรายละเอียดสถานที่ (ใหม่)
เนื่องจากแอปพลิเคชันของคุณต้องใช้รายละเอียดสถานที่ (ใหม่) เช่น ชื่อสถานที่ สถานะธุรกิจ หรือเวลาทำการ การใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ควรใช้โทเค็นของเซสชัน (แบบเป็นโปรแกรมหรือฝังในวิดเจ็ต JavaScript, Android หรือ iOS) ต่อเซสชัน บวกกับ SKU ของ Places ที่เกี่ยวข้อง โดยขึ้นอยู่กับฟิลด์ข้อมูลสถานที่ที่คุณขอ1

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

การติดตั้งใช้งานแบบเป็นโปรแกรม
ใช้ โทเค็นของเซสชัน กับคำขอการเติมข้อความอัตโนมัติ (ใหม่) เมื่อขอรายละเอียดสถานที่ (ใหม่) เกี่ยวกับการคาดคะเนที่เลือก ให้ใส่พารามิเตอร์ต่อไปนี้

  1. รหัสสถานที่จากการตอบกลับการเติมข้อความอัตโนมัติ (ใหม่)
  2. โทเค็นของเซสชันที่ใช้ในคำขอการเติมข้อความอัตโนมัติ (ใหม่)
  3. พารามิเตอร์ fields ที่ระบุฟิลด์ข้อมูลของฟีเจอร์เติมข้อความอัตโนมัติ (ใหม่) ที่คุณต้องการ

ไม่ ต้องใช้เพียงที่อยู่และสถานที่ตั้ง

Geocoding API อาจเป็นตัวเลือกที่คุ้มค่ากว่ารายละเอียดสถานที่ (ใหม่) สำหรับแอปพลิเคชันของคุณ ทั้งนี้ขึ้นอยู่กับประสิทธิภาพการใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ประสิทธิภาพของ Autocomplete (ใหม่) ของแต่ละแอปพลิเคชันจะแตกต่างกันไปตามสิ่งที่ผู้ใช้ป้อน สถานที่ที่ใช้แอปพลิเคชัน และมีการใช้แนวทางปฏิบัติแนะนำในการเพิ่มประสิทธิภาพหรือไม่

หากต้องการตอบคำถามต่อไปนี้ ให้วิเคราะห์จำนวนอักขระโดยเฉลี่ยที่ผู้ใช้พิมพ์ก่อนเลือกการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) ในแอปพลิเคชัน

โดยเฉลี่ยแล้ว ผู้ใช้เลือกการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) ในคำขอน้อยกว่า 5 รายการใช่ไหม

ใช่

ใช้โปรแกรมเติมข้อความอัตโนมัติ (ใหม่) แบบเป็นโปรแกรมโดยไม่ต้องใช้โทเค็นของเซสชันและเรียกใช้ Geocoding API ในการคาดคะเนสถานที่ที่เลือก
Geocoding API แสดงที่อยู่และพิกัดละติจูด/ลองจิจูด การส่งคำขอเติมข้อความอัตโนมัติ 4 รายการ คำขอเติมข้อความอัตโนมัติ รวมถึงการเรียกใช้ Geocoding API เกี่ยวกับคำทำนายสถานที่ที่เลือกมีค่าใช้จ่ายต่อเซสชันน้อยกว่าการเติมข้อความอัตโนมัติต่อเซสชัน (ใหม่)1

ลองใช้แนวทางปฏิบัติแนะนำด้านประสิทธิภาพเพื่อช่วยให้ผู้ใช้ได้รับคำที่ระบบคาดคะเนซึ่งกำลังมองหาด้วยจำนวนอักขระที่น้อยลง

ไม่

ใช้การเติมข้อความอัตโนมัติ (ใหม่) ตามเซสชันกับรายละเอียดสถานที่ (ใหม่)
เนื่องจากจำนวนคำขอเฉลี่ยที่คุณคาดว่าจะทำก่อนที่ผู้ใช้จะเลือกการคาดการณ์การเติมข้อความอัตโนมัติ (ใหม่) เกินกว่าต้นทุนของการกำหนดราคาต่อเซสชัน การติดตั้งใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ควรใช้โทเค็นของเซสชันสำหรับทั้งคำขอการเติมข้อความอัตโนมัติ (ใหม่) และคำขอรายละเอียดสถานที่ (ใหม่) ที่เกี่ยวข้อง ต่อเซสชัน 1

การติดตั้งใช้งานวิดเจ็ต
ระบบจะสร้างการจัดการเซสชันลงใน วิดเจ็ต JavaScript, Android หรือ iOS โดยอัตโนมัติ ซึ่งรวมถึงทั้งคำขอเติมข้อความอัตโนมัติ (ใหม่) และคำขอรายละเอียดสถานที่ (ใหม่) ในการคาดคะเนที่เลือก อย่าลืมระบุพารามิเตอร์ fields เพื่อให้แน่ใจว่าคุณขอเฉพาะช่องที่ต้องการเท่านั้น

การติดตั้งใช้งานแบบเป็นโปรแกรม
ใช้โทเค็นของเซสชันกับคำขอเติมข้อความอัตโนมัติ (ใหม่) เมื่อขอรายละเอียดสถานที่ (ใหม่) เกี่ยวกับการคาดคะเนที่เลือก ให้ใส่พารามิเตอร์ต่อไปนี้

  1. รหัสสถานที่จากการตอบกลับของการเติมข้อความอัตโนมัติ (ใหม่)
  2. โทเค็นของเซสชันที่ใช้ในคำขอการเติมข้อความอัตโนมัติ (ใหม่)
  3. พารามิเตอร์ fields ที่ระบุ ช่อง เช่น ที่อยู่และเรขาคณิต

พิจารณาการหน่วงเวลาคำขอการเติมข้อความอัตโนมัติ (ใหม่)
คุณสามารถใช้กลยุทธ์ต่างๆ เช่น การหน่วงเวลาคำขอการเติมข้อความอัตโนมัติ (ใหม่) จนกว่าผู้ใช้จะพิมพ์อักขระ 3-4 ตัวแรก เพื่อให้แอปพลิเคชันส่งคำขอน้อยลง ตัวอย่างเช่น การส่งคำขอการเติมข้อความอัตโนมัติ (ใหม่) สำหรับอักขระแต่ละตัวหลังจากที่ผู้ใช้พิมพ์อักขระที่ 3 หมายความว่าหากผู้ใช้พิมพ์อักขระ 7 ตัวแล้วเลือกคำที่คาดการณ์ไว้ซึ่งคุณส่งคำขอ Geocoding API 1 รายการ ค่าใช้จ่ายทั้งหมดจะเป็นค่าใช้จ่ายสำหรับการเติมข้อความอัตโนมัติ (ใหม่) 4 รายการต่อคำขอ + Geocoding1

หากการหน่วงเวลาคำขอทำให้คำขอแบบเป็นโปรแกรมโดยเฉลี่ยต่ำกว่า 4 รายการได้ คุณสามารถทำตามคำแนะนำสำหรับการติดตั้งใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ที่มีประสิทธิภาพด้วย Geocoding API โปรดทราบว่าการหน่วงเวลาคำขออาจทำให้ผู้ใช้ที่คาดหวังว่าจะเห็นการคาดคะเนทุกครั้งที่กดแป้นพิมพ์ใหม่มองว่าเป็นเวลาในการตอบสนอง

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


  1. ดูค่าใช้จ่ายได้ที่รายการราคาของ Google Maps Platform

แนวทางปฏิบัติแนะนำด้านประสิทธิภาพ

หลักเกณฑ์ต่อไปนี้อธิบายวิธีเพิ่มประสิทธิภาพการเติมข้อความอัตโนมัติ (ใหม่)

  • เพิ่มข้อจำกัดในแต่ละประเทศ การให้น้ำหนักตามสถานที่ตั้ง และค่ากำหนดภาษา (สำหรับการติดตั้งใช้งานแบบเป็นโปรแกรม) ลงในการติดตั้งใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ไม่จำเป็นต้องใช้ค่ากำหนดภาษาสำหรับวิดเจ็ต เนื่องจากวิดเจ็ตจะเลือกค่ากำหนดภาษาจากเบราว์เซอร์หรืออุปกรณ์เคลื่อนที่ของผู้ใช้
  • หากการเติมข้อความอัตโนมัติ (ใหม่) มาพร้อมกับแผนที่ คุณสามารถกำหนดตำแหน่งตามวิวพอร์ตของแผนที่ได้
  • ในสถานการณ์ที่ผู้ใช้ไม่ได้เลือกการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) รายการใดรายการหนึ่ง โดยทั่วไปแล้วเนื่องจากการคาดคะเนเหล่านั้นไม่ใช่ที่อยู่ผลลัพธ์ที่ต้องการ คุณสามารถใช้ข้อมูลจากผู้ใช้เดิมซ้ำเพื่อพยายามรับผลลัพธ์ที่เกี่ยวข้องมากขึ้นได้ ดังนี้
    • หากคาดหวังให้ผู้ใช้ป้อนเฉพาะข้อมูลที่อยู่ ให้นำข้อมูลที่ผู้ใช้ป้อนเดิมมาใช้ซ้ำ ในการเรียก Geocoding API
    • หากคุณคาดหวังให้ผู้ใช้ป้อนคำค้นหาสำหรับสถานที่ที่เฉพาะเจาะจงตามชื่อหรือที่อยู่ ให้ใช้คำขอรายละเอียดสถานที่ (ใหม่) หากคาดว่าผลลัพธ์จะอยู่ในภูมิภาคที่เฉพาะเจาะจงเท่านั้น ให้ใช้การให้น้ำหนักตามสถานที่ตั้ง
    สถานการณ์อื่นๆ ที่ควรเปลี่ยนไปใช้ Geocoding API ได้แก่
    • ผู้ใช้ที่ป้อนที่อยู่ย่อย เช่น ที่อยู่สำหรับยูนิตหรืออพาร์ตเมนต์ที่เฉพาะเจาะจง ภายในอาคาร เช่น ที่อยู่ในสาธารณรัฐเช็ก "Stroupežnického 3191/17, Praha" จะแสดงการคาดคะเนบางส่วนในการเติมข้อความอัตโนมัติ (ใหม่)
    • ผู้ใช้ป้อนที่อยู่ที่มีคำนำหน้าส่วนของถนน เช่น "23-30 29th St, Queens" ในนครนิวยอร์ก หรือ "47-380 Kamehameha Hwy, Kaneohe" บนเกาะคาไวในฮาวาย

การให้น้ำหนักพิเศษกับบางตำแหน่ง

เอนเอียงผลลัพธ์ไปยังพื้นที่ที่ระบุโดยส่งพารามิเตอร์ location และพารามิเตอร์ radius ซึ่งจะสั่งให้การเติมข้อความอัตโนมัติ (ใหม่) ต้องการแสดงผลลัพธ์ภายในพื้นที่ที่กำหนด ผลลัพธ์ที่อยู่นอกพื้นที่ที่กำหนดอาจยังคงแสดงอยู่ คุณสามารถใช้พารามิเตอร์ includedRegionCodes เพื่อกรองผลลัพธ์ให้แสดงเฉพาะสถานที่ภายในประเทศที่ระบุได้

การจำกัดสถานที่ตั้ง

จำกัดผลการค้นหาให้อยู่ในพื้นที่ที่ระบุโดยส่งพารามิเตอร์ locationRestriction

นอกจากนี้ คุณยังจำกัดผลการค้นหาให้อยู่ในภูมิภาคที่กำหนดโดย location และพารามิเตอร์ radius ได้ด้วยการเพิ่มพารามิเตอร์ locationRestriction ซึ่งจะสั่งให้การเติมข้อความอัตโนมัติ (ใหม่) แสดงผลลัพธ์เฉพาะภายในภูมิภาคนั้น