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

پلتفرم مورد نظر را انتخاب کنید: اندروید، iOS، جاوا اسکریپت

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

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

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

قطب‌نما

کیت توسعه نرم‌افزار نقشه‌ها برای 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
      

هدف-سی

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
      

هدف-سی

mapView.settings.myLocationButton = YES;
      

جمع کننده کف

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

شما می‌توانید با تنظیم ویژگی indoorPicker از GMSUISettings روی NO ، کنترل انتخابگر کف را غیرفعال کنید.

سویفت

mapView.settings.indoorPicker = false
      

هدف-سی

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
}
      

هدف-سی

- (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;
}