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

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

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

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

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

เข็มทิศ

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