خرائط ذات نمط

يمكنك تخصيص طريقة عرض خريطة Google العادية من خلال تطبيق أنماطك الخاصة عند استخدام Maps Static API. ويمكنك تغيير طريقة العرض المرئي للميزات، مثل الطرق والمتنزهات والمناطق السكنية وغيرها من نقاط الاهتمام. يمكنك تغيير لونها أو نمطها لتسليط الضوء على محتوى معيّن أو استكمال المحتوى المحيط على الصفحة أو حتى إخفاء الميزات بالكامل.

أمثلة

يعرض المثال التالي خريطة لمدينة بروكلين في الولايات المتحدة، تم تصميمها لتلوين الطرق المحلية باللون الأخضر الزاهي والمناطق السكنية باللون الأسود. وهو يعكس أيضًا سطوع التصنيفات بحيث تبرز بشكل أفضل على خلفية داكنة. تجدر الإشارة إلى أنّ هذا المثال العملي يستخدم ترميز عنوان URL:

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 واحدة أو أكثر في عنوان URL للطلب.

قد يحتوي كل إعلان style على الوسيطات التالية، مفصولة بشُرط رأسية ("|"):

  • تشير السمة feature (اختيارية) إلى الميزات التي يجب اختيارها لتعديل النمط هذا. تشمل الميزات عناصر على الخريطة، مثل الطرق والحدائق أو نقاط الاهتمام الأخرى. في حال عدم توفّر الوسيطة feature، سيتم تطبيق النمط المحدّد على جميع الميزات.
  • تشير السمة element (اختيارية) إلى عناصر الميزة المحددة المطلوب اختيارها لتعديل النمط هذا. العناصر هي خصائص الميزة، مثل الهندسة أو التسميات. في حال عدم توفّر وسيطة element، سيتم تطبيق النمط على جميع عناصر الميزة المحددة.
  • هي مجموعة من قواعد النمط (الإلزامية) التي يتم تطبيقها على الميزات والعناصر المحدّدة. وتطبّق واجهة برمجة التطبيقات القواعد بالترتيب الذي تظهر به في بيان style. ويمكنك تضمين أي عدد من القواعد ضمن قيود طول عنوان URL العادية في Maps Static API.
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

العناصر هي أقسام فرعية للميزة. تتكوّن الطريق، على سبيل المثال، من خط رسومي (الشكل الهندسي) على الخريطة، بالإضافة إلى النص الذي يشير إلى اسمها (تصنيف).

العناصر التالية متاحة، ولكن يُرجى العلم بأنّ ميزة معيّنة قد لا تتيح أيًا من العناصر، أو بعض منها، أو جميعها:

  • يؤدي اختيار 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) إلى اللون الأساسي.

    ملاحظة: يؤدي هذا الخيار إلى ضبط تدرج اللون مع الحفاظ على التشبع والإضاءة المحددتين في نمط Google التلقائي (أو في خيارات النمط الأخرى التي تحددها على الخريطة). ويكون اللون الناتج عن ذلك مرتبطًا بنمط الخريطة الأساسية. إذا أجرى Google أي تغييرات على نمط الخريطة الأساسي، ستؤثّر التغييرات في عناصر الخريطة التي تحمل نمط hue. من الأفضل استخدام مصمِّم color المطلق إذا أمكن.

  • تشير القيمة lightness (قيمة النقطة العائمة بين -100 و100) إلى النسبة المئوية للتغيّر في سطوع العنصر. تزيد القيم السالبة من درجة التعتيم (حيث تحدد القيم الموجبة -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 إلى الاتجاه داخل عجلة الألوان، بينما يشير تشبُّع اللون والإضاءة إلى الاتّجاهات على طول المحاور المختلفة. يتم قياس تدرجات اللون ضمن مساحة ألوان نموذج أحمر أخضر أزرق، على غرار معظم مساحات ألوان نموذج أحمر أخضر أزرق، باستثناء أنّ ظلالَي الأبيض والأسود غير موجودة.

تدرج اللون، التشبع، نموذج الإضاءة

تأخذ السمة hue قيمة لون HTML سداسية عشرية، إلا أنّها تستخدم هذه القيمة فقط لتحديد اللون الأساسي، أي اتجاهه حول بكرة الألوان، وليس تشبُّع اللون أو الإضاءة، كما يتم الإشارة إلى هذه القيمة بشكل منفصل عند تغيّر النسبة المئوية.

على سبيل المثال، يمكنك تحديد تدرج اللون الأخضر الخالص مثل hue:0x00ff00 أو hue:0x000100. فاللونان يتطابقان. تشير كلتا القيمتين إلى اللون الأخضر النقي في نموذج ألوان HSL.

عجلة ألوان نموذج أحمر أخضر أزرق

أمّا قيم RGB hue التي تتكوّن من أجزاء متساوية باللونين الأحمر والأخضر والأزرق، فإنّها لا تشير إلى تدرج اللون، لأنّ أيًّا من هذه القيم لا يشير إلى اتجاه في مساحة إحداثيات HSL. تشمل الأمثلة "#000000" (أسود) و"#FFFFFF" (أبيض) وجميع الظلال الرمادية الخالصة. للإشارة إلى اللون الأسود أو الأبيض أو الرمادي، يجب إزالة كل saturation (ضبط القيمة على -100) وتعديل lightness بدلاً من ذلك.

بالإضافة إلى ذلك، عند تعديل الميزات الحالية التي سبق لها استخدام الألوان، لن يؤدي تغيير قيمة مثل hue إلى تغيير saturation أو lightness الحالية.