เพิ่มสถานที่อัตโนมัติ (ใหม่)

บริการ Autocomplete (ใหม่) คือ iOS API ที่แสดงสถานที่แนะนำตามคำขอ ในคำขอ ให้ระบุสตริงการค้นหาข้อความและขอบเขตทางภูมิศาสตร์ที่ควบคุมพื้นที่การค้นหา

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

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

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

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

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

สร้างคำขอเติมข้อความอัตโนมัติโดยเรียกใช้เมธอดใน GMSPlaceClient คุณสามารถส่งพารามิเตอร์ใน GMSAutocompleteRequest ออบเจ็กต์ คำตอบจะแสดงคำแนะนำที่เติมข้อความอัตโนมัติภายใน GMSAutocompletePlaceSuggestion ออบเจ็กต์

ต้องมีคีย์ API และพารามิเตอร์ query นอกจากนี้ คุณยังใส่ GMSAutocompleteSessionToken เพื่อเชื่อมโยงคำขอกับเซสชันการเรียกเก็บเงิน และ GMSAutocompleteFilter เพื่อใช้กับผลลัพธ์

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

Swift

let token = GMSAutocompleteSessionToken()

let northWestBounds = CLLocationCoordinate2DMake(40.921628, -73.700051)
let southEastBounds = CLLocationCoordinate2DMake(40.477398, -74.259087)

let filter = GMSAutocompleteFilter()
filter.types = [kGMSPlaceTypeRestaurant]
filter.locationBias = GMSPlaceRectangularLocationOption(northWestBounds, southEastBounds)
    
let request = GMSAutocompleteRequest(query:"Spagh")
request.filter = filter
request.sessionToken = token

GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in
      if let error = error {
        print("Autocomplete error: \(error)")
        return
      }
      if let autocompleteResults = results {
        for result in autocompleteResults {
          print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))")
        }
      }
    })

Objective-C

CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(37.388162, -122.088137);
CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(37.395804, -122.077023);

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.types = @[ kGMSPlaceTypeRestaurant ];
filter.locationBias = GMSPlaceRectangularLocationOption(northEast, southWest);
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"];
request.sessionToken = token;
request.filter = filter;

[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
  // Handle response
  for (GMSAutocompleteSuggestion *suggestion in results) {
    if (suggestion.placeSuggestion) {
      // Show place suggestion data.
    }
  }
}];

Places Swift SDK สำหรับ iOS (เวอร์ชันตัวอย่าง)

let center = (37.3913916, -122.0879074)
let northEast = (37.388162, -122.088137)
let southWest = (37.395804, -122.077023)

let bias = RectangularCoordinateRegion(northEast: northEast, southWest: southWest)
let filter = AutocompleteFilter(types: [ .restaurant ], origin: center, coordinateRegionBias: bias)

let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", filter: filter)
switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) {
case .success(let autocompleteSuggestions):
  // Handle suggestions.
case .failure(let placesError):
  // Handle error.
}

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

การเติมข้อความอัตโนมัติจะแสดงผลอาร์เรย์สูงสุด 5 รายการ GMSAutocompleteSuggestion อินสแตนซ์ อาร์เรย์มีข้อมูลต่อไปนี้

  • placeID
  • types: ประเภทที่เกี่ยวข้องกับสถานที่นี้
  • distanceMeters: ระยะทางจากต้นทาง
  • attributedFullText: ข้อความคำแนะนำที่มนุษย์อ่านได้แบบเต็ม
  • attributedPrimaryText: ข้อความหลักที่มนุษย์อ่านได้ของคำแนะนำ
  • attributedSecondaryText: ข้อความรองที่มนุษย์อ่านได้ของคำแนะนำ
  • structuredFormat: ชื่อเฉพาะและข้อความที่สื่อความหมาย เช่น เมือง หรือ ภูมิภาค

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

query

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

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

ประเภท

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

โดยค่าเริ่มต้น API จะแสดงตำแหน่งทั้งหมดตามพารามิเตอร์ input โดยไม่คํานึงถึงค่าประเภทหลักที่เชื่อมโยงกับสถานที่ จำกัดผลการค้นหา เป็นประเภทหลักหรือประเภทหลักหนึ่งๆ โดยการส่ง พารามิเตอร์ types

ใช้พารามิเตอร์นี้เพื่อระบุค่าประเภทได้สูงสุด 5 ค่าจาก Table A หรือตาราง B. สถานที่ต้องตรงกับ หนึ่งในค่าประเภทหลักที่ระบุที่จะรวมไว้ในการตอบกลับ

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

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

ประเทศ

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

Swift

let filter = GMSAutocompleteFilter()
filter.countries = ["DE", "FR"]

Objective-C

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.countries = @[ @"DE", @"FR" ];

Places Swift SDK สำหรับ iOS (เวอร์ชันตัวอย่าง)

let filter = AutocompleteFilter(countries: ["DE", "FR"])
  

หากคุณระบุทั้ง locationRestriction และ countries ผลลัพธ์จะเป็น ที่อยู่ในบริเวณจุดตัดของการตั้งค่าทั้งสอง

inputOffset

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

locationBias หรือ locationRestriction

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

  • locationBias ระบุพื้นที่ที่จะค้นหา ตำแหน่งนี้ใช้เป็นค่ากําหนด ซึ่งหมายความว่าระบบจะแสดงผลการค้นหารอบๆ ตำแหน่งที่ระบุ รวมถึงผลการค้นหานอกพื้นที่ที่ระบุ

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

ระบุภูมิภาค locationBias หรือ locationRestriction เป็นรูปสี่เหลี่ยมผืนผ้า วิวพอร์ตหรือเป็นวงกลม

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

เช่น

Swift

let center = CLLocationCoordinate2DMake(40.730610, -73.935242)
let radius = 1000.0

filter.locationBias = GMSPlaceCircularLocationOption(center, radius)

Objective-C

CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.730610, -73.935242);
radius = 1000.0;

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.locationBias = GMSPlaceCircularLocationOption(center, radius);

Places Swift SDK สำหรับ iOS (เวอร์ชันตัวอย่าง)

let center = CLLocationCoordinate2DMake(40.477398, -74.259087)

let bias = CircularCoordinateRegion(center: center, radius: 1000.0)

let filter = AutocompleteFilter(coordinateRegionBias: bias)      
  

สี่เหลี่ยมผืนผ้าคือวิวพอร์ตละติจูด-ลองจิจูด ซึ่งแสดงเป็น 2 ในแนวทแยงมุม ตรงข้ามกับ 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 และช่องที่แสดงต้องไม่ว่างเปล่า วิวพอร์ตว่างเปล่าจะทำให้เกิดข้อผิดพลาด

ตัวอย่างเช่น วิวพอร์ตนี้ล้อมรอบนิวยอร์กซิตี้ทั้งหมด

Swift

let high = CLLocationCoordinate2DMake(40.921628, -73.700051)
let low = CLLocationCoordinate2DMake(40.477398, -74.259087)

let filter = GMSAutocompleteFilter()
filter.locationBias = GMSPlaceRectangularLocationOption(high, low)

Objective-C

CLLocationCoordinate2D high = CLLocationCoordinate2DMake(40.477398, -74.259087);
CLLocationCoordinate2D low = CLLocationCoordinate2DMake(440.921628, -73.700051);

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.locationBias = GMSPlaceRectangularLocationOption(high, low);

Places Swift SDK สำหรับ iOS (เวอร์ชันตัวอย่าง)

let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087)
let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051)

let filter = AutocompleteFilter(coordinateRegionBias: bias)
  

origin

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

Swift

let filter = GMSAutocompleteFilter()
filter.origin =  CLLocation(latitude: 37.395804, longitude: -122.077023)
 

Objective-C

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];

filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude: -122.077023];

Places Swift SDK สำหรับ iOS (เวอร์ชันตัวอย่าง)

let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
  

regionCode

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

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

sessionToken

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

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

ใช้ locationRestriction และ locationBias

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

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

Swift

let token = GMSAutocompleteSessionToken()

let center = CLLocationCoordinate2DMake(37.775061, -122.419400)
let radius = 5000.0

let filter = GMSAutocompleteFilter()
filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius)
    
let request = GMSAutocompleteRequest(query:"Piz")
request.filter = filter
request.sessionToken = token

GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in
      if let error = error {
        print("Autocomplete error: \(error)")
        return
      }
      if let autocompleteResults = results {
        for result in autocompleteResults {
          print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))")
        }
      }
    })

Objective-C

CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400);
radius = 5000.0;

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius);
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"];
request.sessionToken = token;
request.filter = filter;

[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
  // Handle response
  for (GMSAutocompleteSuggestion *suggestion in results) {
    if (suggestion.placeSuggestion) {
      // Show place suggestion data.
    }
  }
}];

Places Swift SDK สำหรับ iOS (เวอร์ชันตัวอย่าง)

let center = (37.775061, -122.419400)
let radius = 5000.0
let restriction = CircularCoordinateRegion(center: center, radius: radius)
let filter = AutocompleteFilter(coordinateRegionRestriction: restriction)
let token = AutocompleteSessionToken()

let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter)
switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) {
case .success(let autocompleteSuggestions):
  for suggestion in autocompleteSuggestions {
    switch suggestion {
    case .place:
      // Show place suggestion data.
    }
  }
case .failure(let placesError):
  // Handle error.
}
  

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

Swift

let token = GMSAutocompleteSessionToken()

let center = CLLocationCoordinate2DMake(37.775061, -122.419400)
let radius = 5000.0

let filter = GMSAutocompleteFilter()
filter.locationBias = GMSPlaceCircularLocationOption(center, radius)
    
let request = GMSAutocompleteRequest(query:"Piz")
request.filter = filter
request.sessionToken = token

GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in
      if let error = error {
        print("Autocomplete error: \(error)")
        return
      }
      if let autocompleteResults = results {
        for result in autocompleteResults {
          print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))")
        }
      }
    })

Objective-C

CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400);
radius = 5000.0;

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.locationBias = GMSPlaceCircularLocationOption(center, radius);
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"];
request.sessionToken = token;
request.filter = filter;

[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
  // Handle response
  for (GMSAutocompleteSuggestion *suggestion in results) {
    if (suggestion.placeSuggestion) {
      // Show place suggestion data.
    }
  }
}];

Places Swift SDK สำหรับ iOS (เวอร์ชันตัวอย่าง)

let center = (37.775061, -122.419400)
let radius = 5000.0
let bias = CircularCoordinateRegion(center: center, radius: radius)
let filter = AutocompleteFilter(coordinateRegionBias: bias)
let token = AutocompleteSessionToken()

let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter)
switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) {
case .success(let autocompleteSuggestions):
  for suggestion in autocompleteSuggestions {
    switch suggestion {
    case .place:
      // Show place suggestion data.
    }
  }
case .failure(let placesError):
  // Handle error.
}
  

ประเภทการใช้งาน

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

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

Swift

let token = GMSAutocompleteSessionToken()

let filter = GMSAutocompleteFilter()
filter.types = ["sporting_goods_store"]
    
let request = GMSAutocompleteRequest(query:"Soccer")
request.filter = filter
request.sessionToken = token

GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in
      if let error = error {
        print("Autocomplete error: \(error)")
        return
      }
      if let autocompleteResults = results {
        for result in autocompleteResults {
          print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))")
        }
      }
    })

Objective-C

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.types = @[ "sporting_goods_store" ];
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Soccer"];
request.sessionToken = token;
request.filter = filter;

[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
  // Handle response
  for (GMSAutocompleteSuggestion *suggestion in results) {
    if (suggestion.placeSuggestion) {
      // Show place suggestion data.
    }
  }
}];

Places Swift SDK สำหรับ iOS (เวอร์ชันตัวอย่าง)

let filter = AutocompleteFilter(types: [ PlaceType(rawValue: "sporting_goods_store") ])
let token = AutocompleteSessionToken()

let autocompleteRequest = AutocompleteRequest(query: "Soccer", sessionToken: token, filter: filter)
switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) {
case .success(let autocompleteSuggestions):
  for suggestion in autocompleteSuggestions {
    switch suggestion {
    case .place:
      // Show place suggestion data.
    }
  }
case .failure(let placesError):
  // Handle error.
}
    

ใช้ต้นทาง

เมื่อคุณใส่พารามิเตอร์ origin ในคำขอ โดยระบุเป็น พิกัดละติจูดและลองจิจูด API จะรวมระยะทางของเส้นตรง จากต้นทางไปยังปลายทางในการตอบกลับ การตอบกลับจะแสดงแอตทริบิวต์ ระยะทางเท่ากับ distanceMeters

ตัวอย่างนี้กำหนดต้นทางไว้ที่จุดศูนย์กลางของซานฟรานซิสโก

Swift

let token = GMSAutocompleteSessionToken()

let origin = CLLocation(latitude: 37.7749, longitude: -122.4194)

let filter = GMSAutocompleteFilter()

filter.origin =  origin
    
let request = GMSAutocompleteRequest(query:"Amoeba")
request.filter = filter
request.sessionToken = token

GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in
      if let error = error {
        print("Autocomplete error: \(error)")
        return
      }
      if let autocompleteResults = results {
        for result in autocompleteResults {
          print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText)) and distance: \(String(describing: result.placeSuggestion?.distanceMeters))")
        }
      }
    })

Objective-C

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude:-122.077023];
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Amoeba"];
request.sessionToken = token;
request.filter = filter;

[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
  // Handle response
  for (GMSAutocompleteSuggestion *suggestion in results) {
    if (suggestion.placeSuggestion) {
      // Show place suggestion data.
      }
    }
}];

Places Swift SDK สำหรับ iOS (เวอร์ชันตัวอย่าง)

let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.7749, longitude: -122.4194))
let token = AutocompleteSessionToken()

let autocompleteRequest = AutocompleteRequest(query: "Amoeba", sessionToken: token, filter: filter)
switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) {
case .success(let autocompleteSuggestions):
  for suggestion in autocompleteSuggestions {
    switch suggestion {
    case .place:
      // Show place suggestion data.
    }
  }
case .failure(let placesError):
  // Handle error.
}
  

การระบุแหล่งที่มา

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