با استفاده از Maps Static API، میتوانید نمایش نقشه استاندارد گوگل را با اعمال سبکهای خودتان سفارشی کنید. میتوانید نمایش بصری ویژگیهایی مانند جادهها، پارکها، مناطق مسکونی و سایر نقاط مورد علاقه را تغییر دهید. رنگ یا سبک آنها را تغییر دهید تا بر محتوای خاصی تأکید کنید، محتوای اطراف را در صفحه تکمیل کنید یا حتی ویژگیها را به طور کامل پنهان کنید.
مثالها
مثال زیر نقشهای از بروکلین، ایالات متحده را نمایش میدهد که در آن، جادههای محلی به رنگ سبز روشن و مناطق مسکونی به رنگ سیاه نمایش داده شدهاند. همچنین، روشنایی برچسبها معکوس شده است تا در مقابل پسزمینه تیره، بهتر دیده شوند. توجه داشته باشید که این مثال کاربردی از کدگذاری URL استفاده میکند:
https://maps.googleapis.com/maps/api/staticmap?size=512x512&zoom=15¢er=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¢er=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 را در URL درخواست وارد کنید.
هر اعلان style میتواند شامل آرگومانهای زیر باشد که با کاراکترهای پایپ (" | ") از هم جدا شدهاند:
-
feature(اختیاری) ویژگیهایی را که باید برای این تغییر سبک انتخاب شوند، نشان میدهد. ویژگیها شامل مواردی روی نقشه، مانند جادهها، پارکها یا سایر نقاط مورد علاقه هستند. اگر هیچ آرگومانیfeatureوجود نداشته باشد، سبک مشخص شده برای همه ویژگیها اعمال میشود. -
element(اختیاری) عنصر(های) ویژگی مشخص شده را برای انتخاب در این تغییر سبک نشان میدهد. عناصر، ویژگیهای یک ویژگی، مانند هندسه یا برچسبها هستند. اگر هیچ آرگومانیelementوجود نداشته باشد، سبک برای همه عناصر ویژگی مشخص شده اعمال میشود. - مجموعهای از قوانین سبک (اجباری) برای اعمال بر ویژگی(ها) و عنصر(های) مشخص شده. API قوانین را به ترتیبی که در اعلان
styleظاهر میشوند، اعمال میکند. شما میتوانید هر تعداد قانون را در محدودیتهای طول URL معمول API Static Maps لحاظ کنید.
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 با فرمت#RRGGBB) رنگ پایه را نشان میدهد.توجه: این گزینه، رنگ را تنظیم میکند و در عین حال، اشباع و روشنایی مشخص شده در سبک پیشفرض گوگل (یا در سایر گزینههای سبکی که روی نقشه تعریف میکنید) را حفظ میکند. رنگ حاصل، نسبت به سبک نقشه پایه است. اگر گوگل تغییری در سبک نقشه پایه ایجاد کند، این تغییرات بر ویژگیهای نقشه شما که با
hueسبکدهی شدهاند، تأثیر میگذارد. در صورت امکان، بهتر است از سبکدهندهcolorمطلق استفاده کنید. -
lightness(مقداری بین-100و100) درصد تغییر در روشنایی عنصر را نشان میدهد. مقادیر منفی، تیرگی را افزایش میدهند (که -100 نشاندهندهی رنگ سیاه است) در حالی که مقادیر مثبت، روشنایی را افزایش میدهند (که +100 نشاندهندهی رنگ سفید است).توجه: این گزینه، میزان روشنایی را تنظیم میکند و در عین حال، اشباع و رنگ مشخص شده در سبک پیشفرض گوگل (یا در سایر گزینههای سبکی که روی نقشه تعریف میکنید) را حفظ میکند. رنگ حاصل، نسبت به سبک نقشه پایه است. اگر گوگل تغییری در سبک نقشه پایه ایجاد کند، این تغییرات بر ویژگیهای نقشه شما که با
lightnessسبکبندی شدهاند، تأثیر میگذارد. در صورت امکان، بهتر است از سبکدهندهcolorمطلق استفاده کنید. -
saturation(یک مقدار ممیز شناور بین-100و100) نشان دهنده درصد تغییر در شدت رنگ پایه برای اعمال به عنصر است.توجه: این گزینه، اشباع رنگ (saturation) را تنظیم میکند و در عین حال، رنگ و روشنایی (lightness) مشخص شده در سبک پیشفرض گوگل (یا در سایر گزینههای سبکی که روی نقشه تعریف میکنید) را حفظ میکند. رنگ حاصل، نسبت به سبک نقشه پایه است. اگر گوگل تغییری در سبک نقشه پایه ایجاد کند، این تغییرات بر ویژگیهای نقشه شما که با
saturationسبکبندی شدهاند، تأثیر میگذارد. در صورت امکان، بهتر است از سبکدهندهcolorمطلق (absolute color styler) استفاده کنید. -
gamma(یک مقدار ممیز شناور بین0.01و10.0، که در آن1.0هیچ اصلاحی اعمال نمیکند) میزان اصلاح گاما را برای اعمال به عنصر نشان میدهد. اصلاحات گاما، روشنایی رنگها را به صورت غیرخطی تغییر میدهند، در حالی که بر مقادیر سفید یا سیاه تأثیری ندارند. اصلاح گاما معمولاً برای تغییر کنتراست چندین عنصر استفاده میشود. به عنوان مثال، میتوانید گاما را برای افزایش یا کاهش کنتراست بین لبهها و فضای داخلی عناصر تغییر دهید.توجه: این گزینه با استفاده از منحنی گاما، روشنایی را نسبت به سبک پیشفرض گوگل تنظیم میکند. اگر گوگل تغییری در سبک نقشه پایه ایجاد کند، این تغییرات بر ویژگیهای نقشه شما که با
gammaسبکبندی شدهاند، تأثیر میگذارد. در صورت امکان، بهتر است از سبکدهندهcolorمطلق استفاده کنید. -
invert_lightness(در صورتtrue) روشنایی موجود را معکوس میکند. این برای مثال، برای تغییر سریع به یک نقشه تیرهتر با متن سفید مفید است.نکته: این گزینه به سادگی سبک پیشفرض گوگل را معکوس میکند. اگر گوگل هرگونه تغییری در سبک نقشه پایه ایجاد کند، این تغییرات بر ویژگیهای نقشه شما که با
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
مقادیر hue RGB که از بخشهای مساوی قرمز، سبز و آبی تشکیل شدهاند، رنگ را نشان نمیدهند، زیرا هیچ یک از این مقادیر جهتگیری را در فضای مختصات HSL نشان نمیدهند. به عنوان مثال میتوان به "#000000" (سیاه)، "#FFFFFF" (سفید) و تمام سایههای خالص خاکستری اشاره کرد. برای نشان دادن سیاه، سفید یا خاکستری، باید تمام saturation حذف کنید (مقدار را روی -100 تنظیم کنید) و به جای آن lightness تنظیم کنید.
علاوه بر این، هنگام تغییر ویژگیهای موجود که از قبل طرح رنگی دارند، تغییر مقداری مانند hue saturation یا lightness موجود آن را تغییر نمیدهد.