บริการ 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. }
เติมข้อความอัตโนมัติ (ใหม่)
ฟีเจอร์เติมข้อความอัตโนมัติจะแสดงผลอาร์เรย์ของอินสแตนซ์GMSAutocompleteSuggestion
ได้สูงสุด 5 รายการ อาร์เรย์ประกอบด้วย
placeID
types
: ประเภทที่ใช้กับสถานที่นี้distanceMeters
: ระยะทางจากต้นทางattributedFullText
: ข้อความคำแนะนำที่มนุษย์อ่านได้แบบเต็มattributedPrimaryText
: ข้อความหลักที่อ่านได้ของคำแนะนำattributedSecondaryText
: ข้อความรองที่มนุษย์อ่านได้ของคำแนะนำstructuredFormat
: ชื่อที่เฉพาะเจาะจงและข้อความที่สื่อความหมายชัดเจน เช่น เมืองหรือภูมิภาค
พารามิเตอร์ที่จำเป็น
query
สตริงข้อความที่จะค้นหา ระบุคำเต็มและสตริงย่อย ชื่อสถานที่ ที่อยู่ และ Plus Codes บริการฟีเจอร์เติมข้อความอัตโนมัติ (ใหม่) จะแสดงรายการที่ตรงกันโดยอิงตามสตริงนี้ และจัดเรียงผลลัพธ์ตามความเกี่ยวข้องที่รับรู้
พารามิเตอร์ที่ไม่บังคับ
ประเภท
สถานที่หนึ่งๆ มีประเภทหลักได้เพียงประเภทเดียวจากประเภท Table
A หรือ Table
B ที่เชื่อมโยงอยู่
เช่น ประเภทหลักอาจเป็น mexican_restaurant
หรือ steak_house
โดยค่าเริ่มต้น API จะแสดงสถานที่ทั้งหมดตามพารามิเตอร์ input
โดยไม่คำนึงถึงค่าประเภทหลักที่เชื่อมโยงกับสถานที่ จำกัดผลการค้นหาให้อยู่ในประเภทหลักบางประเภทหรือประเภทหลักทั้งหมดโดยส่งพารามิเตอร์ types
ใช้พารามิเตอร์นี้เพื่อระบุค่าประเภทได้สูงสุด 5 ค่าจากตาราง A หรือตาราง B สถานที่ต้องตรงกับค่าประเภทหลักที่ระบุไว้ค่าใดค่าหนึ่งจึงจะรวมอยู่ในคำตอบ
ระบบจะปฏิเสธคำขอพร้อมข้อผิดพลาด INVALID_REQUEST
ในกรณีต่อไปนี้
- ระบุมากกว่า 5 ประเภท
- ระบุประเภทที่ไม่รู้จัก
ประเทศ
รวมเฉพาะผลลัพธ์จากรายการภูมิภาคที่ระบุ ซึ่งระบุเป็นอาร์เรย์ของค่า 2 อักขระ ccTLD ("โดเมนระดับบนสุด") ได้สูงสุด 15 รายการ หากไม่ระบุ ระบบจะไม่ใช้ข้อจำกัดกับการตอบกลับ เช่น หากต้องการจํากัดภูมิภาคเป็นเยอรมนีและฝรั่งเศส ให้ทําดังนี้
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
ผลลัพธ์จะอยู่ในบริเวณที่ตัดกันของการตั้งค่าทั้ง 2 รายการ
inputOffset
ออฟเซตอักขระ Unicode ที่นับจาก 0 ซึ่งระบุตำแหน่งเคอร์เซอร์ใน input
ตำแหน่งเคอร์เซอร์อาจส่งผลต่อคำที่ระบบคาดคะเน หากว่างเปล่า ระบบจะตั้งค่าเริ่มต้นเป็นความยาว input
locationBias หรือ locationRestriction
คุณสามารถระบุ locationBias
หรือ locationRestriction
เพียงรายการใดรายการหนึ่งเพื่อกําหนดพื้นที่การค้นหา ให้คิดว่า 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)
สี่เหลี่ยมผืนผ้าคือวิวพอร์ตละติจูด-ลองจิจูด ซึ่งแสดงเป็นจุด 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
รหัสภูมิภาคที่ใช้จัดรูปแบบการตอบกลับ ซึ่งระบุเป็นค่า 2 อักขระของ 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
ก็ได้ แต่จะต้องใช้เพียงรายการใดรายการหนึ่งเพื่อระบุพื้นที่ที่จะค้นหา
การจํากัดสถานที่ตั้งจะระบุพื้นที่ที่จะค้นหา ระบบจะไม่แสดงผลลัพธ์ที่อยู่นอกพื้นที่ที่ระบุ ตัวอย่างต่อไปนี้ใช้การจํากัดสถานที่เพื่อจํากัดคำขอให้อยู่ภายในการจํากัดสถานที่แบบวงกลมที่มีรัศมี 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. }
ประเภทการใช้งาน
ใช้พารามิเตอร์ types เพื่อจํากัดผลการค้นหาจากคําขอให้อยู่ในรูปแบบที่ระบุไว้ในตาราง 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 ที่แสดงในบรรทัดเดียวกับช่อง/ผลการค้นหา ดูข้อมูลเพิ่มเติมได้ที่การแสดงโลโก้ Google และการระบุแหล่งที่มา