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

เลือกแพลตฟอร์ม Android iOS JavaScript บริการผ่านเว็บ

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

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

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

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

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

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

สร้างคำขอเติมข้อความอัตโนมัติโดยเรียกใช้เมธอดใน 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.
    }
  }
}];

GooglePlacesSwift

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 หรือตาราง ข. สถานที่ต้องตรงกับ หนึ่งในค่าประเภทหลักที่ระบุที่จะรวมไว้ในการตอบกลับ

คำขอจะถูกปฏิเสธโดยมีข้อผิดพลาด 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" ];

GooglePlacesSwift

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);

GooglePlacesSwift

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);

GooglePlacesSwift

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];

GooglePlacesSwift

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.
    }
  }
}];

GooglePlacesSwift

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.
    }
  }
}];

GooglePlacesSwift

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 และตาราง ข. คุณสามารถระบุ ได้สูงสุด 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.
    }
  }
}];

GooglePlacesSwift

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.
      }
    }
}];

GooglePlacesSwift

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 ที่แสดงในบรรทัดพร้อมการค้นหา ฟิลด์/ผลลัพธ์ สำหรับข้อมูลเพิ่มเติม ดูที่ การแสดงโลโก้ของ Google และ การระบุแหล่งที่มา