کنترل ها و ژست ها

پلتفرم را انتخاب کنید: Android iOS JavaScript

با استفاده از Maps SDK برای iOS، می‌توانید نحوه تعامل کاربران با نقشه خود را با تعیین اینکه کدام یک از اجزای رابط کاربری داخلی روی نقشه ظاهر می‌شوند و کدام حرکات مجاز هستند، سفارشی کنید.

کنترل های نقشه

Maps SDK برای iOS برخی از کنترل‌های UI داخلی را ارائه می‌کند که مشابه موارد موجود در Google Maps برای برنامه iOS هستند. با استفاده از کلاس GMSUISettings می‌توانید قابلیت مشاهده این کنترل‌ها را تغییر دهید. تغییرات ایجاد شده در این کلاس بلافاصله روی نقشه منعکس می شود.

قطب نما

Maps SDK برای iOS یک گرافیک قطب نما را ارائه می دهد که تحت شرایط خاص در گوشه سمت راست بالای نقشه ظاهر می شود. قطب نما فقط زمانی ظاهر می شود که دوربین به گونه ای باشد که دارای یک یاتاقان غیر صفر باشد. هنگامی که کاربر روی قطب نما کلیک می کند، دوربین به موقعیتی با تحمل صفر (جهت پیش فرض) متحرک می شود و پس از مدت کوتاهی قطب نما محو می شود.

قطب نما به طور پیش فرض غیرفعال است. می‌توانید با تنظیم ویژگی compassButton در GMSUISettings روی YES ، قطب‌نما را فعال کنید. با این حال، نمی توانید قطب نما را مجبور کنید همیشه نشان داده شود.

سویفت

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

هدف-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 ، دکمه را فعال کنید.

سویفت

mapView.settings.myLocationButton = true
      

هدف-C

mapView.settings.myLocationButton = YES;
      

کفگیر

هر زمان که یک نقشه داخلی به طور برجسته نشان داده شود، کنترل انتخابگر طبقه در نزدیکی سمت راست پایین صفحه ظاهر می شود. هنگامی که دو یا چند نقشه داخلی قابل مشاهده است، انتخابگر طبقه به نزدیکترین ساختمان به مرکز صفحه مربوط می شود. هر ساختمان دارای یک طبقه پیش فرض است که زمانی که انتخاب کننده برای اولین بار نمایش داده می شود، انتخاب می شود. شما می توانید با انتخاب طبقه متفاوت از انتخاب کننده، طبقه دیگری را انتخاب کنید.

می‌توانید با تنظیم ویژگی indoorPicker GMSUISettings روی NO ، کنترل طبقه‌گیر را غیرفعال کنید.

سویفت

mapView.settings.indoorPicker = false
      

هدف-C

mapView.settings.indoorPicker = NO;
      

حرکات نقشه

می‌توانید با تنظیم ویژگی‌های کلاس GMSUISettings ، که به عنوان ویژگی GMSMapView در دسترس است، حرکات پیش‌فرض روی نقشه را غیرفعال کنید. ژست های زیر را می توان به صورت برنامه ریزی فعال و غیرفعال کرد. توجه داشته باشید که غیرفعال کردن ژست دسترسی برنامه‌ای به تنظیمات دوربین را محدود نمی‌کند.

  • scrollGestures - فعال یا غیرفعال بودن حرکات اسکرول را کنترل می کند. در صورت فعال بودن، کاربران می‌توانند انگشت خود را برای حرکت به دوربین بکشند.
  • zoomGestures - فعال یا غیرفعال بودن حرکات زوم را کنترل می کند. در صورت فعال بودن، کاربران می‌توانند برای بزرگ‌نمایی دوربین، دو بار ضربه بزنند، دو انگشت ضربه بزنند یا نیشگون بگیرند. توجه داشته باشید که وقتی scrollGestures فعال است، دوبار ضربه زدن یا نیشگون گرفتن آن ممکن است دوربین را تا نقطه مشخص شده حرکت دهد.
  • tiltGestures - فعال یا غیرفعال بودن حرکات شیب را کنترل می کند. اگر فعال باشد، کاربران می‌توانند از یک تند کشیدن دو انگشتی عمودی به پایین یا بالا برای کج کردن دوربین استفاده کنند.
  • rotateGestures - فعال یا غیرفعال بودن حرکات چرخشی را کنترل می کند. در صورت فعال بودن، کاربران می توانند از حرکت چرخش دو انگشتی برای چرخاندن دوربین استفاده کنند.

در مثال زیر، هر دو حرکت حرکت و زوم غیرفعال شده است.

سویفت

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
}
      

هدف-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;
}