การควบคุมและท่าทางสัมผัส

เลือกแพลตฟอร์ม: Android iOS JavaScript

การใช้ Maps SDK สำหรับ iOS ช่วยให้คุณปรับแต่งวิธีที่ผู้ใช้ โต้ตอบกับแผนที่ได้โดยการกำหนดว่าคอมโพเนนต์ UI ในตัว ใดจะปรากฏบนแผนที่และอนุญาตให้ใช้ท่าทางสัมผัสใด

การควบคุมแผนที่

Maps SDK สำหรับ iOS มีการควบคุม UI ในตัวบางอย่างที่ คล้ายกับการควบคุมที่พบในแอปพลิเคชัน Google Maps สำหรับ iOS คุณ สลับระดับการมองเห็นของตัวควบคุมเหล่านี้ได้โดยใช้คลาส GMSUISettings การเปลี่ยนแปลงที่เกิดขึ้นในชั้นเรียนนี้จะแสดงบนแผนที่ทันที

เข็มทิศ

Maps SDK สำหรับ iOS มีกราฟิกเข็มทิศซึ่งจะปรากฏที่มุมขวาบนของแผนที่ในบางกรณี เข็มทิศจะปรากฏขึ้นก็ต่อเมื่อกล้องหันไปในทิศทางที่มีค่า Bearing ไม่เป็น 0 เท่านั้น เมื่อ ผู้ใช้คลิกเข็มทิศ กล้องจะเคลื่อนไหวกลับไปยังตำแหน่งที่มีการวางแนว เป็น 0 (การวางแนวเริ่มต้น) และเข็มทิศจะจางหายไปในเวลาต่อมา

เข็มทิศจะปิดอยู่โดยค่าเริ่มต้น คุณเปิดใช้เข็มทิศได้โดยตั้งค่าพร็อพเพอร์ตี้ compassButton ของ GMSUISettings เป็น YES อย่างไรก็ตาม คุณไม่สามารถ บังคับให้แสดงเข็มทิศเสมอได้

Swift

let camera = GMSCameraPosition(latitude: 37.757815, longitude: -122.50764, zoom: 12) let mapView = GMSMapView(frame: .zero, camera: camera) mapView.settings.compassButton = true       

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.757815                                                         longitude:-122.50764                                                              zoom:12]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.settings.compassButton = YES;       

ปุ่มตำแหน่งของฉัน

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

Swift

mapView.settings.myLocationButton = true       

Objective-C

mapView.settings.myLocationButton = YES;       

เครื่องมือเลือกชั้น

ตัวควบคุมเครื่องมือเลือกชั้นจะปรากฏที่ด้านขวาล่างของหน้าจอเมื่อใดก็ตามที่ แผนที่ในอาคารแสดงอย่างโดดเด่น เมื่อแผนที่ในอาคาร 2 รายการขึ้นไปปรากฏให้เห็น ตัวเลือกชั้นจะเกี่ยวข้องกับอาคารที่อยู่ใกล้กับกึ่งกลางของหน้าจอมากที่สุด อาคารแต่ละหลังมีชั้นเริ่มต้นซึ่งจะเลือกเมื่อตัวเลือกแสดงเป็นครั้งแรก คุณเลือกชั้นอื่นได้โดยเลือกจากเครื่องมือเลือก

คุณปิดใช้การควบคุมเครื่องมือเลือกชั้นได้โดยตั้งค่าindoorPickerพร็อพเพอร์ตี้ ของ GMSUISettings เป็น NO

Swift

mapView.settings.indoorPicker = false       

Objective-C

mapView.settings.indoorPicker = NO;       

ท่าทางสัมผัสบนแผนที่

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

  • scrollGestures — ควบคุมว่าจะเปิดใช้หรือปิดใช้ท่าทางการเลื่อน หากเปิดใช้ ผู้ใช้อาจปัดเพื่อเลื่อนกล้อง
  • zoomGestures — ควบคุมว่าจะเปิดใช้หรือปิดใช้ท่าทางสัมผัสเพื่อซูม หากเปิดใช้ ผู้ใช้อาจแตะ 2 ครั้ง แตะ 2 นิ้ว หรือบีบนิ้วเพื่อ ซูมกล้อง โปรดทราบว่าการแตะสองครั้งหรือการบีบเมื่อเปิดใช้scrollGestures อาจเลื่อนกล้องไปยังจุดที่ระบุ
  • tiltGestures - ควบคุมว่าจะเปิดใช้หรือปิดใช้ท่าทางสัมผัสการเอียง หากเปิดใช้ ผู้ใช้จะใช้การปัดลงหรือขึ้นในแนวตั้งด้วย 2 นิ้ว เพื่อเอียงกล้องได้
  • rotateGestures - ควบคุมว่าจะเปิดใช้หรือปิดใช้ท่าทางสัมผัสหมุน หากเปิดใช้ ผู้ใช้จะใช้ท่าทางหมุนด้วย 2 นิ้วเพื่อ หมุนกล้องได้

ในตัวอย่างด้านล่าง ระบบได้ปิดใช้ทั้งท่าทางสัมผัสการเลื่อนและซูม

Swift

override func loadView() {   let camera = GMSCameraPosition.camera(     withLatitude: 1.285,     longitude: 103.848,     zoom: 12   )    let mapView = GMSMapView.map(withFrame: .zero, camera: camera)   mapView.settings.scrollGestures = false   mapView.settings.zoomGestures = false   self.view = mapView }       

Objective-C

- (void)loadView {   GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285                                                           longitude:103.848                                                                zoom:12];   GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];   mapView.settings.scrollGestures = NO;   mapView.settings.zoomGestures = NO;   self.view = mapView; }