บริการการเติมข้อความอัตโนมัติ (ใหม่) คือ 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
สตริงข้อความที่จะค้นหา ระบุคำเต็มและสตริงย่อย ชื่อสถานที่ ที่อยู่ และรหัสบวก บริการฟีเจอร์เติมข้อความอัตโนมัติ (ใหม่) จะแสดงรายการที่ตรงกันโดยอิงตามสตริงนี้และจัดเรียงผลลัพธ์ตามความเกี่ยวข้องที่รับรู้
พารามิเตอร์ที่ไม่บังคับ
ประเภท
สถานที่หนึ่งๆ จะมีประเภทหลักได้เพียงประเภทเดียวจากประเภท Table
A หรือ Table
B ที่เชื่อมโยงอยู่
เช่น ประเภทหลักอาจเป็น mexican_restaurant
หรือ steak_house
โดยค่าเริ่มต้น API จะแสดงสถานที่ทั้งหมดตามพารามิเตอร์ input
โดยไม่คำนึงถึงค่าประเภทหลักที่เชื่อมโยงกับสถานที่ จํากัดผลการค้นหาให้อยู่ในรูปแบบหลักหรือประเภทหลักที่เฉพาะเจาะจงโดยการส่งพารามิเตอร์ types
ใช้พารามิเตอร์นี้เพื่อระบุค่าประเภทได้สูงสุด 5 ค่าจาก Table A หรือ Table 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
(แต่ใช้ทั้ง 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. }
ประเภทการใช้งาน
ใช้พารามิเตอร์ 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 และการระบุแหล่งที่มา