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

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

لتطبيق أنماط الضرب والتعبئة على مضلّعات الحدود في إحدى طبقات العناصر:

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

  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.

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

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

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

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

  2. الحصول على مرجع لطبقة عناصر Locality عند بدء تشغيل الخريطة

    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"). إذا كان معرف المكان المحدد ليس لـ Hana، هاواي، فإن النمط ليس المنهجية.

    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).