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

اختيار النظام الأساسي: 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. إذا لم تكن قد فعلت ذلك من قبل، فاتبع الخطوات في البدء لإنشاء معرّف ونمط خريطة جديدَين. احرص على تفعيل المنطقة المحلية طبقة الخصائص.

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