ค้นหาที่เที่ยวกันจาก Autocomplete ของ GoogleMaps ทำยังไงล่ะ !?

มาถึงตอนนี้คงใช้งาน Google Maps รวมกับ Swift พอได้แล้วนะคะ ที่นี้เราจะทำ Autocomplete เพื่อค้นหาสถานที่ที่เราอยากไปกันดูบ้าง ไม่ยากเลยค่ะ ใช้แอปพลิเคชันที่เราเคยสร้างไว้จากหัวข้อ อยากใช้ Google Maps กับ iOS App กันเถอะนะ ซึ่งการทำงานที่เราอยากได้คือ



เมื่อพร้อมแล้วก็เริ่มกันเลยค่ะ การทำ Autocomplete เราจะใช้การเปิดหน้าสำหรับ Search สถานที่ขึ้นมา และสามารถกดปิดหน้านั้น เพื่อกลับมายังแผนที่ได้ ดังนั้นสิ่งที่เราต้องมีคือ Navigation Controller ค่ะ ด้วยเหตุนี้เราไปสร้าง Navigation Controller กันก่อนที่ Main.storyboard



สร้าง Navigation Controller ใน Main.storyboard

 
จากนั้นเราจะวางปุ่มสำหรับ Search ข้อมูล ในที่นี้เราจะเลือกใช้เป็น Bar Button Item ค่ะ

ใส่ Search Button

เรียบร้อยแล้วก็ประกาศ IBAction ให้ปุ่มด้วยเลยจ้าาาา ซึ่งการทำงานของปุ่มนี้ คือ


เราจะเรียกใช้การทำงานจาก GMSAutocompleteViewController() เพื่อเปิดหน้าการทำงานที่ Google ให้มาอยู่แล้วค่ะ จากนั้นเราต้องใช้คำสั่งในการแสดงหน้า view คือ self.present(....) น่ะค่ะ

ถ้าสังเกตนิดนึงตอนนี้เราจะมี Error เล็กๆ เกิดขึ้น เนื่องจากเราจำเป็นต้อง import GooglePlaces และเรียกใช้ Autocomplete ด้วย ดังนี้


เมื่อใส่แล้วจะพบว่า GMSAutocompleteViewControllerDelegate นั้นต้องการ func 3 อัน คือ

Function ที่ 1 : didAutocompleteWith 

โดยการทำงานภายใน func จะประกาศตัวแปร loc เพื่อดึง latitude และ longitude มาเก็บไว้ สำหรับใช้ปักหมุด รวมทั้งประกาศ camera สำหรับปรับมุมมองบน Map ให้ไปยังสถานที่ที่ผู้ใช้เลือกไว้ จากนั้น set ลง Map เลยจ้าาาาา และปักหมุด (อันนี้เหมือนในบทความก่อนหน้าเรื่อง Google Map น่ะ)

Function ที่ 2 และ 3 คือ


ส่วนของการทำงาน wasCancelled เพียงแค่ ตอนที่ผู้ใช้งานไม่ต้องการ Search แล้วจะปิดหน้าก็ให้ซ่อนหน้านั้นไป แค่นั้นจ้าาาา

เพียงเท่านี้ก็ลอง Run ดูการทำงานได้แล้ว ไม่ยากค่ะ ง่ายๆ เนอะ 😚😚😚













Comments