مرجع سبک برای «کیت توسعه نرم‌افزار Google Maps برای iOS»

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

با گزینه‌های سبک می‌توانید ارائه سبک‌های استاندارد نقشه Google را سفارشی‌سازی کنید، نمایش بصری ویژگی‌هایی مانند جاده‌ها، پارک‌ها، کسب‌وکارها، و دیگر نقاط جالب را تغییر دهید. علاوه‌بر تغییر سبک این ویژگی‌ها، می‌توانید ویژگی‌ها را به‌طور کامل پنهان کنید. این یعنی می‌توانید بر مؤلفه‌های خاصی از نقشه تأکید کنید یا نقشه را مکمل سبک صفحه اطراف کنید.

مثال‌ها

اعلان سبک JSON زیر همه عارضه‌های نقشه را به رنگ خاکستری درمی‌آورد، سپس هندسه جاده اصلی را به رنگ آبی درمی‌آورد، و برچسب‌های منظره را کاملاً پنهان می‌کند:

[
  {
    "featureType": "all",
    "stylers": [
      { "color": "#C0C0C0" }
    ]
  },{
    "featureType": "road.arterial",
    "elementType": "geometry",
    "stylers": [
      { "color": "#CCFFFF" }
    ]
  },{
    "featureType": "landscape",
    "elementType": "labels",
    "stylers": [
      { "visibility": "off" }
    ]
  }
]

شیء JSON

اعلامیه سبک JSON شامل عناصر زیر است:

  • featureType (اختیاری) - ویژگی‌هایی که باید برای این اصلاح سبک انتخاب شوند. عوارض، ویژگی‌های جغرافیایی روی نقشه هستند، ازجمله جاده‌ها، پارک‌ها، پهنه‌های آبی، و غیره. اگر ویژگی‌ای را مشخص نکنید، همه ویژگی‌ها انتخاب می‌شوند.
  • elementType (اختیاری) - ویژگی عارضه مشخص‌شده برای انتخاب. عناصر بخش‌های فرعی یک عارضه هستند، ازجمله برچسب‌ها و هندسه. اگر عنصری را مشخص نکنید، همه عناصر ویژگی انتخاب می‌شوند.
  • سبک‌دهنده‌ها - قوانینی که باید روی عناصر و ویژگی‌های انتخاب‌شده اعمال شود. سبک‌دهنده‌ها رنگ، نمایان بودن، و وزن ویژگی را نشان می‌دهند. می‌توانید یک یا چند سبک‌دهنده را به عارضه‌ای اعمال کنید.

برای مشخص کردن سبک، باید مجموعه‌ای از گزینشگرهای featureType و elementType و stylers خود را در آرایه سبک ترکیب کنید. می‌توانید هر ترکیبی از ویژگی‌ها را در یک آرایه هدف‌یابی کنید. اما تعداد سبک‌هایی که می‌توانید به‌طور هم‌زمان اعمال کنید محدود است. اگر آرایه سبک شما از حداکثر تعداد نویسه‌ها فراتر رود، هیچ سبکی اعمال نمی‌شود.

بقیه این صفحه اطلاعات بیشتری درباره ویژگی‌ها، عناصر، و سبک‌دهنده‌ها دارد.

featureType

تکه‌کد JSON زیر همه جاده‌های روی نقشه را انتخاب می‌کند:

{
  "featureType": "road"
}

عناصر، یا انواع عناصر، مشخصه‌های جغرافیایی روی نقشه هستند، ازجمله جاده‌ها، پارک‌ها، آب‌ها، کسب‌وکارها، و غیره.

ویژگی‌ها درخت دسته‌ای را تشکیل می‌دهند که all ریشه آن است. اگر ویژگی‌ای را مشخص نکنید، همه ویژگی‌ها انتخاب می‌شوند. مشخص کردن ویژگی all همین تأثیر را دارد.

برخی‌از ویژگی‌ها حاوی ویژگی‌های فرزندی هستند که بااستفاده از نشانه‌گذاری نقطه مشخص می‌کنید. برای مثال، landscape.natural یا road.local. اگر فقط ویژگی والد را مشخص کنید، مثلاً road، سبک‌هایی که برای والد مشخص می‌کنید بر همه فرزندان آن، مثلاً road.local و road.highway، اعمال می‌شود.

توجه داشته باشید که ویژگی‌های والد ممکن است شامل برخی‌از عناصری باشد که در همه ویژگی‌های فرزند آن‌ها وجود ندارد.

ویژگی‌های زیر دردسترس است:

  • ‫all (پیش‌فرض) همه ویژگی‌ها را انتخاب می‌کند.
  • administrative همه تقسیمات کشوری را انتخاب می‌کند. سبک‌دهی فقط برچسب‌های مناطق اداری را تحت تأثیر قرار می‌دهد، نه مرزهای جغرافیایی یا رنگ‌آمیزی.
    • ‫administrative.country کشور را انتخاب می‌کند.
    • administrative.land_parcel قطعه‌های زمین را انتخاب می‌کند.
    • ‫administrative.locality محله را انتخاب می‌کند.
    • administrative.neighborhood محله انتخاب شد.
    • ‫administrative.province استان‌ها را انتخاب می‌کند.
  • ‫landscape همه مناظر را انتخاب می‌کند.
    • landscape.man_made عوارض ساخت دست انسان، مانند ساختمان‌ها و دیگر سازه‌ها را انتخاب می‌کند.
    • landscape.natural عوارض طبیعی مانند کوه‌ها، رودخانه‌ها، کویرها، و یخچال‌های طبیعی را انتخاب می‌کند.
    • landscape.natural.landcover ویژگی‌های پوشش زمین را انتخاب می‌کند، یعنی مواد فیزیکی که سطح زمین را می‌پوشاند، مانند جنگل‌ها، مراتع، تالاب‌ها، و زمین‌های بایر.
    • landscape.natural.terrain ویژگی‌های عوارض زمینی سطح زمین، مثل ارتفاع، شیب، و جهت را انتخاب می‌کند.
  • poi همه نقاط موردعلاقه را انتخاب می‌کند.
    • poi.attraction جاذبه‌های گردشگری را انتخاب می‌کند.
    • ‫poi.business کسب‌وکار را انتخاب می‌کند.
    • ‫poi.government ساختمان‌های دولتی را انتخاب می‌کند.
    • ‫poi.medical خدمات اضطراری، ازجمله بیمارستان‌ها، داروخانه‌ها، پلیس، پزشکان، و غیره را انتخاب می‌کند.
    • ‫poi.park پارک‌ها را انتخاب می‌کند.
    • ‫poi.place_of_worship عبادتگاه‌ها، ازجمله کلیساها، معابد، مساجد، و غیره را انتخاب می‌کند.
    • ‫poi.school مدرسه را انتخاب می‌کند.
    • ‫poi.sports_complex مجتمع‌های ورزشی را انتخاب می‌کند.
  • road همه جاده‌ها را انتخاب می‌کند.
    • ‫road.arterial جاده‌های شریانی را انتخاب می‌کند.
    • ‫road.highway بزرگراه‌ها را انتخاب می‌کند.
    • ‫road.highway.controlled_access آزادراه‌ها با دسترسی کنترل‌شده را انتخاب می‌کند.
    • ‫road.local جاده‌های محلی را انتخاب می‌کند.
  • transit همه ایستگاه‌ها و خطوط حمل‌ونقل عمومی را انتخاب می‌کند.
    • transit.line خطوط حمل‌ونقل عمومی را انتخاب می‌کند.
    • transit.station همه ایستگاه‌های حمل‌ونقل عمومی را انتخاب می‌کند.
    • transit.station.airport فرودگاه‌ها را انتخاب می‌کند.
    • ‫transit.station.bus ایستگاه اتوبوس را انتخاب می‌کند.
    • transit.station.rail ایستگاه‌های راه‌آهن را انتخاب می‌کند.
  • ‫water توده‌های آب را انتخاب می‌کند.

elementType

تکه‌کد JSON زیر برچسب‌های همه جاده‌های محلی را انتخاب می‌کند:

{
  "featureType": "road.local",
  "elementType": "labels"
}

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

عناصر زیر دردسترس هستند، اما توجه داشته باشید که یک ویژگی خاص ممکن است از هیچ‌یک، برخی، یا همه عناصر پشتیبانی کند:

رنگ‌های نوشتار برچسب fill و stroke براساس سطح بزرگ‌نمایی تغییر می‌کند. برای اینکه تجربه در سطوح بزرگ‌نمایی یکسان باشد، همیشه هم fill و هم stroke را تعریف کنید.

  • ‫all (پیش‌فرض) همه عناصر ویژگی مشخص‌شده را انتخاب می‌کند.
  • ‫geometry همه عناصر هندسی ویژگی مشخص‌شده را انتخاب می‌کند.
    • ‫geometry.fill فقط رنگ‌آمیزی هندسه عارضه را انتخاب می‌کند.
    • ‫geometry.stroke فقط ضربه هندسه عارضه را انتخاب می‌کند.
  • labels برچسب‌های متنی مرتبط با ویژگی مشخص‌شده را انتخاب می‌کند.
    • labels.icon فقط نماد نمایش‌داده‌شده در برچسب ویژگی را انتخاب می‌کند.
    • labels.text فقط نوشتار برچسب را انتخاب می‌کند.
    • labels.text.fill فقط رنگ برچسب را انتخاب می‌کند. پر کردن برچسب معمولاً به‌صورت خطوط رنگی‌ای که نوشتار برچسب را احاطه می‌کند ارائه می‌شود.
    • labels.text.stroke فقط خط دور نوشتار برچسب را انتخاب می‌کند.

stylers

سبک‌دهنده‌ها گزینه‌های قالب‌بندی هستند که می‌توانید روی عناصر و ویژگی‌های نقشه اعمال کنید.

تکه‌کد JSON زیر ویژگی را بااستفاده از مقدار RGB به‌صورت سبز روشن نمایش می‌دهد:

"stylers": [
  { "color": "#99FF33" }
]

این گزیده همه شدت رنگ عارضه‌ای را، صرف‌نظر از رنگ اولیه آن، برمی‌دارد. جلوه این است که ویژگی را به‌صورت سیاه‌وسفید ارائه کند:

"stylers": [
  { "saturation": -100 }
]

این قطعه کد ویژگی را کاملاً پنهان می‌کند:

    "stylers": [
      { "visibility": "off" }
    ]

گزینه‌های سبک زیر پشتیبانی می‌شوند:

  • hue (رشته RGB hex با قالب #RRGGBB) نشان‌دهنده رنگ اصلی است.

    توجه: این گزینه فام را تنظیم می‌کند و درعین‌حال اشباع و روشنایی مشخص‌شده در سبک پیش‌فرض Google (یا در گزینه‌های سبک دیگری که در نقشه تعریف می‌کنید) را حفظ می‌کند. رنگ حاصل به سبک نقشه پایه مربوط است. اگر Google تغییری در سبک نقشه پایه ایجاد کند، این تغییرات بر ویژگی‌های نقشه شما که با hue سبک‌بندی شده‌اند تأثیر می‌گذارد. بهتر است اگر می‌توانید از سبک‌ساز مطلق color استفاده کنید.

  • ‫lightness (مقدار نقطه شناور بین -100 و 100) نشان‌دهنده تغییر درصد در روشنایی عنصر است. مقادیر منفی تاریکی را افزایش می‌دهد (که ۱۰۰- نشان‌دهنده سیاه است) درحالی‌که مقادیر مثبت روشنایی را افزایش می‌دهد (که ۱۰۰+ نشان‌دهنده سفید است).

    توجه: این گزینه روشنایی را تنظیم می‌کند و درعین‌حال اشباع و فام مشخص‌شده در سبک پیش‌فرض Google (یا در گزینه‌های سبک دیگری که در نقشه تعریف می‌کنید) را حفظ می‌کند. رنگ حاصل به سبک نقشه پایه مربوط است. اگر Google تغییری در سبک نقشه پایه ایجاد کند، این تغییرات بر ویژگی‌های نقشه شما که با lightness سبک‌بندی شده‌اند تأثیر می‌گذارد. بهتر است درصورت امکان از سبک‌دهنده مطلق color استفاده کنید.

  • saturation (مقدار نقطه شناور بین -100 و 100) نشان‌دهنده تغییر درصد شدت رنگ اصلی برای اعمال روی عنصر است.

    توجه: این گزینه اشباع را تنظیم می‌کند و درعین‌حال فام و روشنایی مشخص‌شده در سبک پیش‌فرض Google (یا در گزینه‌های سبک دیگری که در نقشه تعریف می‌کنید) را حفظ می‌کند. رنگ حاصل به سبک نقشه پایه بستگی دارد. اگر Google تغییری در سبک نقشه پایه ایجاد کند، این تغییرات بر ویژگی‌های نقشه شما که با saturation سبک‌بندی شده‌اند تأثیر می‌گذارد. بهتر است درصورت امکان از سبک‌دهنده مطلق color استفاده کنید.

  • gamma (مقدار ممیز شناور بین 0.01 و 10.0، که 1.0 هیچ اصلاحی را اعمال نمی‌کند) نشان‌دهنده مقدار اصلاح گامایی است که باید برای عنصر اعمال شود. اصلاحات گاما روشنایی رنگ‌ها را به‌صورت غیرخطی تغییر می‌دهند، درحالی‌که مقادیر سفید یا سیاه را تحت‌تأثیر قرار نمی‌دهند. تصحیح گاما معمولاً برای اصلاح کنتراست چند عنصر استفاده می‌شود. برای مثال، می‌توانید گاما را تغییر دهید تا تضاد بین لبه‌ها و داخل عناصر را افزایش یا کاهش دهید.

    توجه: این گزینه بااستفاده از منحنی گاما، روشنایی را نسبت‌به سبک پیش‌فرض Google تنظیم می‌کند. اگر Google تغییری در سبک نقشه پایه ایجاد کند، این تغییرات بر ویژگی‌های نقشه‌تان که با gamma سبک‌بندی شده‌اند تأثیر می‌گذارد. بهتر است درصورت امکان از سبک‌ساز مطلق color استفاده کنید.

  • ‫invert_lightness (اگر true باشد) روشنایی موجود را معکوس می‌کند. این ویژگی برای مثال برای رفتن سریع به نقشه تیره‌تر با نوشتار سفید مفید است.

    توجه: این گزینه به‌سادگی سبک پیش‌فرض Google را معکوس می‌کند. اگر Google تغییری در سبک نقشه پایه ایجاد کند، این تغییرات بر ویژگی‌های نقشه شما که با invert_lightness سبک‌بندی شده‌اند تأثیر می‌گذارد. بهتر است درصورت امکان از سبک‌دهنده مطلق color استفاده کنید.

  • ‫visibility (on،‏ off، یا simplified) نشان می‌دهد که عنصر در نقشه نشان داده می‌شود یا نه و چگونه نشان داده می‌شود. رؤیت‌پذیری simplified برخی‌از ویژگی‌های سبک را از ویژگی‌های تحت‌تأثیر قرارگرفته برمی‌دارد؛ برای مثال، جاده‌ها به خطوط نازک‌تر بدون طرح کلی ساده می‌شوند، درحالی‌که پارک‌ها نوشتار برچسب خود را ازدست می‌دهند اما نماد برچسب را حفظ می‌کنند.
  • color (رشته هگز RGB با قالب #RRGGBB) رنگ ویژگی را تنظیم می‌کند.
  • weight (مقدار عدد صحیح، بزرگ‌تر یا مساوی صفر) وزن ویژگی را به پیکسل تنظیم می‌کند. تنظیم وزن روی مقدار بالا ممکن است منجر به برش نزدیک مرزهای کاشی شود.

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

توجه: ترتیب مهم است، زیرا برخی‌از عملیات‌ها جابه‌جایی‌پذیر نیستند. ویژگی‌ها و/یا عناصری که ازطریق عملیات سبک اصلاح می‌شوند (معمولاً) ازقبل سبک‌های موجود دارند. این عملیات روی آن سبک‌های موجود (درصورت وجود) اعمال می‌شود.

مدل ته‌رنگ، اشباع، میزان نور

نقشه‌های سبک‌دار از مدل ته‌رنگ، اشباع، روشنایی (HSL) برای نشان دادن رنگ در عملیات سبک‌ساز استفاده می‌کنند. رنگ‌مایه نشان‌دهنده رنگ اصلی است، اشباع رنگ نشان‌دهنده شدت آن رنگ است، و روشنایی نشان‌دهنده مقدار نسبی سفید یا سیاه در رنگ تشکیل‌دهنده است.

تصحیح گاما روشنایی را در فضای رنگ تغییر می‌دهد، معمولاً برای افزایش یا کاهش کنتراست. علاوه‌براین، مدل HSL رنگ را در فضای مختصات تعریف می‌کند که در آن hue جهت را در چرخه رنگ نشان می‌دهد، درحالی‌که اشباع و روشنایی دامنه‌ها را در امتداد محورهای مختلف نشان می‌دهند. ته‌رنگ‌ها در فضای رنگ RGB اندازه‌گیری می‌شوند که شبیه به اکثر فضاهای رنگ RGB است، با این تفاوت که سایه‌های سفید و سیاه در آن وجود ندارد.

مدل رنگ، اشباع، میزان نور

اگرچه hue مقدار رنگ هگز HTML را می‌گیرد، اما فقط از این مقدار برای تعیین رنگ اصلی استفاده می‌کند - یعنی جهت آن در چرخ رنگ، نه اشباع یا روشنایی آن، که به‌صورت جداگانه به‌عنوان تغییرات درصدی نشان داده می‌شوند.

برای مثال، می‌توانید رنگ خالص سبز را به‌صورت hue:0x00ff00 یا hue:0x000100 تعریف کنید. هر دو رنگ یکسان هستند. هر دو مقدار در مدل رنگ HSL به سبز خالص اشاره دارند.

چرخ رنگ RGB

مقادیر RGB hue که از بخش‌های مساوی قرمز، سبز، و آبی تشکیل شده‌اند ته‌رنگ را نشان نمی‌دهند، زیرا هیچ‌یک از این مقادیر جهت‌گیری در فضای مختصات HSL را نشان نمی‌دهند. برای مثال، «#۰۰۰۰۰۰» (سیاه)، «#FFFFFF» (سفید)، و همه سایه‌های خالص خاکستری. برای نشان دادن سیاه، سفید، یا خاکستری، باید همه saturation را بردارید (مقدار را روی -100 تنظیم کنید) و به‌جای آن lightness را تنظیم کنید.

علاوه‌براین، هنگام اصلاح ویژگی‌های موجود که ازقبل دارای طرح رنگ هستند، تغییر دادن مقداری مثل hue باعث تغییر saturation یا lightness موجود آن نمی‌شود.