نقشه‌های سبک‌دارشده

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

مثال‌ها

مثال زیر نقشه‌ای از بروکلین، ایالات متحده، را با سبک‌دهی برای رنگ‌آمیزی جاده‌های محلی به رنگ سبز روشن و مناطق مسکونی به رنگ سیاه نمایش می‌دهد. همچنین روشنایی برچسب‌ها را معکوس می‌کند تا در پس‌زمینه تیره بهتر دیده شوند. توجه داشته باشید که این نمونه کاربردی از کدبندی نشانی وب استفاده می‌کند:

https://maps.googleapis.com/maps/api/staticmap?size=512x512&zoom=15&center=Brooklyn&style=feature:road.local%7Celement:geometry%7Ccolor:0x00ff00&style=feature:landscape%7Celement:geometry.fill%7Ccolor:0x000000&style=element:labels%7Cinvert_lightness:true&style=feature:road.arterial%7Celement:labels%7Cinvert_lightness:false&key=YOUR_API_KEY&signature=YOUR_SIGNATURE
نقشه طراحی‌شده بروکلین.

مثال زیر از عملیات‌های سبک‌بندی و ساده‌سازی برای نزدیک کردن ظاهر به اطلس جاده‌ای ایالات متحده استفاده می‌کند:

https://maps.googleapis.com/maps/api/staticmap?size=512x512&zoom=12&center=Chicago&format=png&style=feature:road.highway%7Celement:geometry%7Cvisibility:simplified%7Ccolor:0xc280e9&style=feature:transit.line%7Cvisibility:simplified%7Ccolor:0xbababa&style=feature:road.highway%7Celement:labels.text.stroke%7Cvisibility:on%7Ccolor:0xb06eba&style=feature:road.highway%7Celement:labels.text.fill%7Cvisibility:on%7Ccolor:0xffffff&key=YOUR_API_KEY&signature=DITIGAL_SIGNATURE
سبک نقشه «اطلس جاده‌های ایالات متحده».

نحو سبک

برای ایجاد نقشه سبک‌دار سفارشی، یک یا چند پارامتر style را در نشانی وب درخواست بگنجانید.

هر اعلان style می‌تواند شامل آرگومان‌های زیر باشد که با نویسه‌های پایپ ("|") از هم جدا شده‌اند:

  • ‫feature (اختیاری) ویژگی‌هایی را نشان می‌دهد که باید برای این اصلاح سبک انتخاب کنید. ویژگی‌ها شامل چیزهایی در نقشه، مثل جاده‌ها، پارک‌ها، یا دیگر نقاط موردعلاقه می‌شود. اگر هیچ آرگومان feature وجود نداشته باشد، سبک مشخص‌شده برای همه عارضه‌ها اعمال می‌شود.
  • element (اختیاری) نشان‌دهنده عنصر(های) عارضه مشخص‌شده برای انتخاب این اصلاح سبک است. عناصر عبارت‌اند از ویژگی‌های یک عارضه، مثل هندسه یا برچسب‌ها. اگر هیچ آرگومان element وجود نداشته باشد، سبک برای همه عناصر ویژگی مشخص‌شده اعمال می‌شود.
  • مجموعه‌ای از قوانین سبک (الزامی) برای اعمال روی ویژگی(ها) و عنصر(های) مشخص‌شده. «میانای برنامه‌سازی کاربردی» قوانین را به ترتیبی که در اظهارنامه style ظاهر می‌شوند اعمال می‌کند. می‌توانید هر تعداد قانون را در محدودیت‌های عادی طول نشانی وب «میانای برنامه‌سازی کاربردی Maps Static» اضافه کنید.
style=feature:myFeatureArgument|element:myElementArgument|myRule1:myRule1Argument|myRule2:myRule2Argument

ویژگی‌ها

style بیانیه زیر همه جاده‌های نقشه را رنگی می‌کند:

style=feature:road|color:0xffffff

در اینجا چند انتخاب ویژگی رایج آورده شده است:

  • feature:all (پیش‌فرض) همه ویژگی‌های نقشه را انتخاب می‌کند.
  • feature:road همه جاده‌های روی نقشه را انتخاب می‌کند.
  • feature:road.local همه جاده‌های محلی را انتخاب می‌کند.

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

ویژگی‌ها درخت دسته‌ای را تشکیل می‌دهند که 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 توده‌های آب را انتخاب می‌کند.

عناصر

style زیر برچسب‌های همه جاده‌های محلی رنگ می‌زند:

style=feature:road.local|element:labels|color:0xffffff

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

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

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

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

قوانین سبک

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

اعلان style زیر دو قانون سبک را روی جاده‌های نقشه اعمال می‌کند. قانون اول رنگی را به جاده‌ها اعمال می‌کند. قانون دوم نمایش جاده‌ها را ساده می‌کند، بنابراین خطوط نازک‌تری بدون خطوط پیرامونی دارند:

style=feature:road|color:0xffffff|visibility:simplified

هر بیانیه style باید حاوی یک یا چند عملیات باشد که بااستفاده از نویسه خط عمودی («|») از هم جدا شده‌اند. هر عملیات مقدار آرگومان خود را بااستفاده از نویسه دونقطه («:») مشخص می‌کند و همه عملیات‌ها به‌ترتیبی که مشخص می‌کنید بر انتخاب اعمال می‌شوند.

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

  • 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 مقدار رنگ hex در HTML را می‌گیرد، فقط از این مقدار برای تعیین رنگ پایه استفاده می‌کند - یعنی جهت آن در اطراف چرخه رنگ، نه اشباع یا روشنایی آن، که به‌صورت جداگانه به‌عنوان تغییرات درصدی نشان داده می‌شوند.

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

چرخ رنگ RGB

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

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