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

เลือกแพลตฟอร์ม แอนดรอยด์ iOS JavaScript

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

ตัวควบคุมแผนที่

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

เข็มทิศ

Maps SDK สำหรับ iOS มีกราฟิกเข็มทิศที่ปรากฏใน ที่มุมบนขวาของแผนที่ในบางกรณี เข็มทิศจะ จะปรากฏขึ้นเมื่อกล้องอยู่ในแนวเดียวกับทิศทางที่ไม่ใช่ 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 นิ้ว หรือบีบเพื่อ ซูมกล้อง โปรดทราบว่าการแตะสองครั้งหรือบีบเมื่อ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;
}