این نمای کلی نحوه پیکربندی نقشهای را که بااستفاده از «کیت توسعه نرمافزار Google Maps برای iOS» به برنامه 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
میتوانید لایه ترافیک را روشن و خاموش کنید. مثال زیر نشان میدهد که لایه ترافیک چگونه ممکن است در نقشه ظاهر شود.

لایه حملونقل عمومی
«کیت توسعه نرمافزار 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;
برای ایجاد سبکهای روشن و تاریک سفارشی برای نقشههایتان، از سبکپردازی نقشه بااستفاده از فضای ابری استفاده کنید.