این نمای کلی نحوه پیکربندی نقشهای را که به برنامه iOS اضافه شده است بااستفاده از Maps SDK for iOS شرح میدهد.
نمای کلی
پساز افزودن نقشه به برنامهتان، میتوانید گزینههای اولیه و تنظیمات زمان اجرای نقشه را پیکربندی کنید. برای جزئیات بیشتر درباره افزودن محفظه نقشه، به افزودن نقشه مراجعه کنید.
تنظیمات اولیه نقشه شامل موارد زیر است:
- موقعیت دوربین، شامل: مکان، بزرگنمایی، جهت، و شیب. برای جزئیات مربوط به موقعیت دوربین، دوربین و نما را ببینید.
- رنگ پسزمینه نقشه.
- نوع نقشه.
- مؤلفههای میانای کاربر برای نمایش، مثل دکمههای بزرگنمایی و قطبنما.
- اشارههایی که باید فعال شود.
در زمان اجرا میتوانید این تنظیمات و برخی تنظیمات اضافی را با بهروزرسانی شیء
GMSMapView
پیکربندی کنید.
گزینههای نقشه
هنگام مقداردهی اولیه نمای نقشه، گزینههای پیکربندی با
GMSMapViewOptions تنظیم میشوند.
ویژگیهای گزینه شامل frame، camera، mapID، یا backgroundColor است.
| گزینههای نقشه | |
|---|---|
| قاب | مقدار:
CGRectقاب نقشه. پیشفرضها به CGRectZero.
|
| دوربین | مقدار:
GMSCameraPositionموقعیت دوربین نقشه پیشفرض.
|
| mapID | مقدار:
GMSMapIDGoogle mapID. پارامتر اختیاری.
|
| backgroundColor | مقدار:
UIColorپیشفرض: UIColor.lightGray
|
پیکربندی گزینههای نقشه
میتوانید ویژگیهای گزینه خودتان را تنظیم کنید یا
GMSMapViewOptions
نمونهسازیشده را با مقادیر پیشفرض مستقیماً به GMSMapView ارسال کنید.
Swift
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options)
آبجکتیو-سی
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
در اینجا نمونهای از ارسال شیء GMSMapViewOptions
با مقادیر پیشفرض مستقیماً به GMSMapView آورده شده است.
Swift
let options = GMSMapViewOptions() let mapView = GMSMapView(options:options) //initialized with default values
آبجکتیو-سی
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; //initialized with default values
پیکربندی رنگ پسزمینه
هنگام کار در حالت تیره یا جابهجایی بین نماهای نقشه، ممکن است مفید باشد که رنگ پسزمینه پیشفرض نقشه را لغو کنید. این کار را میتوان با تنظیم ویژگی backgroundColor گزینههای نقشه انجام داد.
Swift
let options = GMSMapViewOptions() options.backgroundColor = UIColor.yellowColor let mapView = GMSMapView(options:options)
آبجکتیو-سی
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.backgroundColor = UIColor.yellowColor; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
انواع نقشه
میتوانید نقشهتان را با یکی از چند نوع نقشه سفارشیسازی کنید. نوع نقشه، نمایش کلی نقشه را تعیین میکند. برای مثال، اطلس معمولاً حاوی نقشههای سیاسی است که بر نمایش مرزها تمرکز دارند، و نقشههای جادهای که همه جادههای یک شهر یا منطقه را نشان میدهند. کیت توسعه نرمافزار Google Maps برای iOS انواع نقشههای زیر را ارائه میدهد:
| نوع نقشه | |
|---|---|
| معمولی | مقدار:
kGMSTypeNormalنقشه راه معمول. جادهها، برخی ویژگیهای ساختهشده توسط انسان، و ویژگیهای طبیعی مهم مانند رودخانهها را نشان میدهد. برچسبهای جاده و ویژگی
نیز قابلمشاهده است. از تنظیم آرایش رنگهای نقشه روی تیره، روشن،
یا پیروی از تنظیمات سیستم پشتیبانی میکند.
|
| هیبرید | مقدار:
kGMSTypeHybridدادههای عکس ماهوارهای با نقشههای جادهای اضافه شد. برچسبهای جاده و ویژگی نیز قابلمشاهده است. |
| ماهواره | مقدار:
kGMSTypeSatelliteدادههای عکس ماهوارهای. برچسبهای جاده و عارضه قابلمشاهده نیستند.
|
| عوارض زمین | مقدار:
kGMSTypeTerrainدادههای توپوگرافی. نقشه شامل رنگها، خطوط تراز و برچسبها،
و سایهزنی پرسپکتیو است. برخیاز جادهها و برچسبها نیز قابلمشاهده هستند. از
تنظیم آرایش رنگهای نقشه روی تیره، روشن، یا پیروی از تنظیمات سیستم پشتیبانی میکند.
|
| هیچکدام | مقدار:
kGMSTypeNoneکاشی نقشه وجود ندارد. کاشیهای نقشه مبنا پرداز نخواهند شد. این حالت در ترکیب با لایههای کاشی مفید است. وقتی نوع نقشه روی «هیچکدام» تنظیم شده باشد، نمایش دادههای ترافیک غیرفعال میشود. |
تغییر نوع نقشه
برای تنظیم نوع نقشه، مقدار جدیدی به ویژگی GMSMapView.mapType
اختصاص دهید. برای مثال، برای نمایش نوع نقشه ماهوارهای:
Swift
let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView(options:options) mapView.mapType = .satellite
آبجکتیو-سی
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; mapView.mapType = kGMSTypeSatellite;
انتخابگر زیر مقایسهای از نقشههای عوارض زمینی، معمولی، و ترکیبی را برای همان مکان نشان میدهد:
نقشههای داخلی
در سطوح بزرگنمایی بالا، «کیت توسعه نرمافزار Google Maps برای iOS» نقشه ساختمان فضاهای داخلی مانند فرودگاهها، مراکز خرید، فروشگاههای خردهفروشی بزرگ، و ایستگاههای حملونقل عمومی را نشان میدهد. نقشههای ساختمان داخلی در کاشیهای نقشه پیشفرض برای نوع نقشه «معمولی» (kGMSTypeNormal) ادغام شدهاند و وقتی کاربر بزرگنمایی میکند بهطور خودکار فعال میشوند و وقتی نقشه کوچکنمایی میشود محو میشوند.
میتوانید نقشههای داخلی را با تنظیم کردن ویژگی indoorEnabled
GMSMapView روی NO غیرفعال کنید.
Swift
mapView.isIndoorEnabled = false
آبجکتیو-سی
mapView.indoorEnabled = NO;
یا میتوانید فقط کنترل «انتخابگر طبقه» را غیرفعال کنید.
افزودن نقشه ساختمان
نقشه ساختمان در مکانهای منتخب دردسترس است. اگر دادههای نقشه ساختمان برای ساختمانی که میخواهید در برنامهتان برجسته کنید دردسترس نیست، میتوانید:
- نقشه ساختمان را مستقیماً به Google Maps اضافه کنید. با این کار، برنامههایتان برای همه کاربران Google Maps دردسترس قرار میگیرد.
- نمایش نقشه ساختمان بهعنوان رونهاد زمینی. این کار باعث میشود فقط کاربران برنامه شما بتوانند نقشه ساختمانهایتان را ببینند.
لایه ترافیک
میتوانید به کاربران خود این امکان را بدهید که نقشه را با اطلاعات تراکم ترافیک که روی آن قرار گرفته است مشاهده کنند. این ویژگی خلاصهای تصویری از وضعیت ترافیک محلی آنها ارائه میدهد. با فراخوانی روش
trafficEnabled
میتوانید لایه ترافیک را روشن و خاموش کنید. مثال زیر نشان میدهد که لایه ترافیک چگونه ممکن است در نقشه ظاهر شود.

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

دسترسپذیری
بهطور پیشفرض، عناصر دسترسپذیری در نقشه پنهان هستند. میتوانید با تنظیم کردن ویژگی accessibilityElementsHidden
GMSMapView روی NO،
دسترسپذیری را فعال کنید. این کار باعث میشود عناصر دسترسپذیری برای اشیاء همپوشان (مانند GMSMarker و پنجرههای اطلاعات، GMSPolyline و غیره) تولید شوند.
Swift
mapView.accessibilityElementsHidden = false
آبجکتیو-سی
mapView.accessibilityElementsHidden = NO;
این ویژگی مطابق با پروتکل غیررسمی UIAccessibility است، با این تفاوت که
مقدار پیشفرض در «کیت توسعه نرمافزار Maps برای iOS» YES است.
مکان من
بهطور پیشفرض، هیچ داده مکانی در نقشه نشان داده نمیشود. با تنظیم myLocationEnabled روی
GMSMapView، میتوانید نقطه آبی «مکان
من» و جهت قطبنما را فعال کنید.
Swift
mapView.isMyLocationEnabled = true
آبجکتیو-سی
mapView.myLocationEnabled = YES;
فعال کردن این ویژگی، مکان فعلی کاربر را ازطریق ویژگی
myLocation ارائه میدهد. این ویژگی ممکن است فوراً دردسترس نباشد - برای مثال، اگر iOS از کاربر بخواهد اجازه دسترسی به این دادهها را بدهد. در این مورد،
nil است.
Swift
print("User's location: \(String(describing: mapView.myLocation))")
آبجکتیو-سی
NSLog(@"User's location: %@", mapView.myLocation);
ساختمانهای سهبعدی
بسیاری از شهرها، وقتی از نزدیک مشاهده شوند، ساختمانهای سهبعدی قابل مشاهده خواهند داشت، همانطور که در تصویر سیاتل، واشنگتن در زیر قابل مشاهده است.
میتوانید ساختمانهای سهبعدی را با تنظیم ویژگی مربوطه
GMSMapView
در Swift یا Objective-C، همانطور که در زیر نشان داده شده است، غیرفعال کنید:
Swift
mapView.isBuildingsEnabled = false
آبجکتیو-سی
[mapView setBuildingsEnabled:NO];
لایهگذاری نقشه
Google Map طوری طراحی شده است که کل منطقه تعریفشده توسط GMSMapView را پر کند.
چندین جنبه از نحوه نمایش و رفتار نقشه توسط ابعاد
نما تعریف میشود:
- هدف دوربین مرکز منطقه حاشیهدار را منعکس میکند.
- کنترلهای نقشه نسبتبه لبههای نقشه قرار گرفتهاند.
- اطلاعات حقوقی، مانند بیانیههای حق نشر یا نشانواره Google، در امتداد لبه پایینی نقشه نشان داده میشود.
میتوانید بااستفاده از
GMSMapView، در اطراف لبههای نقشه لایه اضافه کنید.دارایی padding. نقشه همچنان کل ظرف را پر میکند، اما موقعیتیابی نوشتار و کنترل، اشارههای نقشه، و حرکات دوربین بهگونهای رفتار میکنند که گویی در فضای کوچکتری قرار گرفته است. این امر منجر به
تغییرات زیر میشود:
- حرکات دوربین بااستفاده از فراخوانیهای API یا فشردن دکمهها (مثلاً قطبنما، مکان من) نسبت به منطقه حاشیهدار است.
-
GMSMapView.projectionتصویری را برمیگرداند که فقط شامل منطقه حاشیهدار است. - کنترلهای میانای کاربر با تعداد مشخصی نقطه از لبه محفظه فاصله دارند.
حاشیه داخلی میتواند هنگام طراحی واسطهای کاربری که بخشی از نقشه را همپوشانی میکنند مفید باشد. برای مثال، در تصویر، نقشه در امتداد لبههای بالا و راست حاشیهگذاری شده است. کنترلهای نقشه قابلمشاهده و نوشتار قانونی در امتداد لبههای منطقه حاشیهدار، که به رنگ سبز نشان داده شده است، نمایش داده میشود، درحالیکه نقشه همچنان کل ظرف را پر میکند، که به رنگ آبی نشان داده شده است. در این مثال، میتوانید منویی را روی سمت راست نقشه شناور کنید بدون اینکه کنترلهای نقشه را بپوشاند.

برای افزودن لایه به نقشه، شیء UIEdgeInsets ایجاد کنید و آن را به
GMSMapView منتقل کنید.padding دارایی.
Swift
// Insets are specified in this order: top, left, bottom, right let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0) mapView.padding = mapInsets
آبجکتیو-سی
// Insets are specified in this order: top, left, bottom, right UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0); mapView.padding = mapInsets;
آرایش رنگهای نقشه
برای نقشههای نوع معمولی و عوارض زمینی، میتوانید آرایش رنگها را روی تیره، روشن، یا استفاده از تنظیمات فعلی سیستم تنظیم کنید. برای مثال، میتوانید آرایش رنگهای نقشه را براساس زمان روز یا استفاده از دستگاه در فضای داخلی یا خارجی تیره یا روشن کنید.
از GMSMapView
overrideUserInterfaceStyle:
برای تنظیم و بهروزرسانی آرایش رنگها در نقشه استفاده کنید.
Swift
let options = GMSMapViewOptions() // Map is init to use light mode by default. let mapView = GMSMapView(options: options) // Set map to use dark mode. mapView.overrideUserInterfaceStyle = .dark // Set map to use light mode. mapView.overrideUserInterfaceStyle = .light // Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle mapView.overrideUserInterfaceStyle = .unspecified
آبجکتیو-سی
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; // Map is init to always use light mode. GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; // Set map to use dark mode. mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark; // Set map to use light mode. mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; // Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;
برای ایجاد سبکهای روشن و تیره سفارشی برای نقشههایتان، از سبکپردازی نقشه بااستفاده از فضای ابری استفاده کنید.