تطبيق نمط مضلع للحدود

اختيار النظام الأساسي: Android iOS JavaScript

لتطبيق أنماط للخطوط والحشو على مضلّعات الحدود في طبقة ميزة:

  1. أنشئ دالة مصنع أنماط تنفِّذ واجهة FeatureLayer.StyleFactory . تحدِّد هذه الدالة منطق التصميم لطبقة ميزة.

  2. استخدِم دالة FeatureLayer.setFeatureStyle() لتطبيق دالة مصنع الأنماط على طبقة العناصر.

يوضح المثال التالي مضلّع الحدود منطقة واحدة في طبقة عناصر المنطقة.

لقطة شاشة تعرِض مضلّع هانا في هاواي

إنشاء دالة مصنع للأنماط

يتم تطبيق دالة "منشأة الأنماط" على كل مضلّع في طبقة العناصر المتأثرة في وقت ضبط الدالة على طبقة العناصر. يجب أن تُعرِض هذه الدالة FeatureStyle كائنًا يحدِّد كيفية وضع تنسيق على المضلّع.

تُرسِل حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل Android مثيلًا لمحاولة Feature إلى وظيفة إنشاء الأنماط. يمثل المثيل Feature بيانات التعريف الخاصة بالميزات، مما يتيح لك الوصول إلى بيانات التعريف في مصنع الأنماط الأخرى.

يجب أن تعرِض دالة "مُنشئ الأنماط" دائمًا نتائج متّسقة عند تطبيقها. على سبيل المثال، إذا أردت تلوين مجموعة من العناصر بشكل عشوائي، يجب ألا يقع الجزء العشوائي في دالة نمط العناصر، لأنّ ذلك قد يؤدي إلى نتائج غير مقصودة.

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

  • فعِّل فقط طبقات العناصر التي تحتاج إليها.

  • اتصل بالرقم FeatureLayer.setFeatureStyle(null) عندما لا تكون إحدى طبقات العناصر قيد الاستخدام.

ضبط سُمك المضلّع وتعبئةه

عند تصميم مضلّع حدود في دالة مصنع الأنماط، يمكنك تعيين:

  • لون الخط ودرجة التعتيم لحدود المضلّع بتنسيق الألوان ARGB كما هو محدد في Color الصف. تكون القيمة التلقائية شفافة (0x00000000).

  • عرض الخط لحدود المضلع بوحدات بكسل الشاشة القيمة التلقائية هي 2.

  • لون التعبئة وشفافية المضلع بتنسيق اللون ARGB، كما هومحدد من قِبل فئة Color تكون القيمة التلقائية شفافة (0x00000000).

البحث عن أرقام تعريف الأماكن لاستهداف الميزات

تطبق العديد من التطبيقات أنماطًا على ميزة استنادًا إلى موقع الميزة. بالنسبة على سبيل المثال، قد ترغب في تطبيق النمط على بلدان أو مناطق أو الإقليمية. يتم تمثيل موقع العنصر رقم تعريف المكان.

تحدِّد أرقام تعريف الأماكن مكانًا بشكلٍ فريد في قاعدة بيانات "أماكن Google" وعلى Google. و"خرائط Google". للحصول على رقم تعريف مكان، اتّبِع الخطوات التالية:

تختلف التغطية حسب المنطقة. اطّلِع على تغطية حدود Google للحصول على التفاصيل.

تتوفر الأسماء الجغرافية من العديد من المصادر، مثل مجلس USGS للأسماء الجغرافية و الولايات المتحدة ملفات المجازفات

استخدام PlaceFeature للحصول على معرّف مكان

فئة PlaceFeature هي فئة فرعية لفئة Feature. ويمثّل عنصر مكان (عنصر يتضمّن رقم تعريف مكان) يتضمّن عناصر من النوع ADMINISTRATIVE_AREA_LEVEL_1 وADMINISTRATIVE_AREA_LEVEL_2 COUNTRY وLOCALITY وPOSTAL_CODE وSCHOOL_DISTRICT.

عندما يكون رقم تعريف المكان متوفّرًا، تمرِّر حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" لنظام التشغيل Android مثيلًا من PlaceFeature إلى دالّة PlaceFeature لإنشاء الأنماط، ما يتيح لك تحديد الموقع الجغرافي للعنصر.

مثال على مصنع الأنماط

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

  1. اتّبِع الخطوات الواردة في البدء لإنشاء رقم تعريف جديد للخريطة ونمط جديد للخريطة، إذا لم يسبق لك إجراء ذلك. احرص على تفعيل المنطقة المحلية طبقة الخصائص.

  2. الحصول على إشارة إلى طبقة عنصر المنطقة عند تهيئة الخريطة.

    Java

    private FeatureLayer localityLayer;
    @Override public void onMapReady(GoogleMap map) { // Get the LOCALITY feature layer. localityLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.LOCALITY) .build());
    // Apply style factory function to LOCALITY layer. styleLocalityLayer(); }

    Kotlin

    private var localityLayer: FeatureLayer? = null
    override fun onMapReady(googleMap: GoogleMap) { // Get the LOCALITY feature layer. localityLayer = googleMap.getFeatureLayer(FeatureLayerOptions.Builder() .featureType(FeatureType.LOCALITY) .build())
    // Apply style factory function to LOCALITY layer. styleLocalityLayer() }

  3. إنشاء دالة مصنع للأنماط وتطبيقها على المنطقة طبقة الخصائص.

    لا ينطبق المثال التالي على الدالة إلا إذا كان المكان معرّف العنصر هو هانا، هاواي ("ChIJ0zQtYiWsVHkRk8lRoB1RNPo"). إذا لم يكن رقم تعريف المكان المحدّد خاصًا بهانا، هاواي، لن يتم تطبيق النمط.

    Java

    private void styleLocalityLayer() {
    // Create the style factory function. FeatureLayer.StyleFactory styleFactory = (Feature feature) -> {
    // Check if the feature is an instance of PlaceFeature, // which contains a place ID. if (feature instanceof PlaceFeature) { PlaceFeature placeFeature = (PlaceFeature) feature;
    // Determine if the place ID is for Hana, HI. if (placeFeature.getPlaceId().equals("ChIJ0zQtYiWsVHkRk8lRoB1RNPo")) {
    // Use FeatureStyle.Builder to configure the FeatureStyle object // returned by the style factory function. return new FeatureStyle.Builder() // Define a style with purple fill at 50% opacity and solid purple border. .fillColor(0x80810FCB) .strokeColor(0xFF810FCB) .build(); } } return null; };
    // Apply the style factory function to the feature layer. localityLayer.setFeatureStyle(styleFactory); }

    Kotlin

    private fun styleLocalityLayer() {
    // Create the style factory function. val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
    // Check if the feature is an instance of PlaceFeature, // which contains a place ID. if (feature is PlaceFeature) { val placeFeature: PlaceFeature = feature as PlaceFeature
    // Determine if the place ID is for Hana, HI. if (placeFeature.getPlaceId().equals("ChIJ0zQtYiWsVHkRk8lRoB1RNPo")) {
    // Use FeatureStyle.Builder to configure the FeatureStyle object // returned by the style factory function. return@StyleFactory FeatureStyle.Builder() // Define a style with purple fill at 50% opacity and // solid purple border. .fillColor(0x80810FCB.toInt()) .strokeColor(0xFF810FCB.toInt()) .build() } } return@StyleFactory null }
    // Apply the style factory function to the feature layer. localityLayer?.setFeatureStyle(styleFactory) }

إزالة التصميم من طبقة

لإزالة التنسيق من طبقة، اتصل بالرقم FeatureLayer.setFeatureStyle(null).