لتطبيق أنماط الضرب والتعبئة على مضلّعات الحدود في إحدى طبقات العناصر:
إنشاء دالة مصنع للأنماط تعمل على تنفيذ
FeatureLayer.StyleFactory
من واجهة pyplot. تحدد هذه الدالة منطق التصميم لطبقة ميزة.اتصل
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
. إذا كان رقم تعريف المكان هو هانا، هاواي،
تطبق الدالة نمط تعبئة ورسم مخصص على المضلّع:
إذا لم تكن قد فعلت ذلك من قبل، فاتبع الخطوات في البدء لإنشاء معرّف ونمط خريطة جديدَين. احرص على تفعيل المنطقة المحلية طبقة الخصائص.
الحصول على إشارة إلى طبقة عنصر المنطقة عند تهيئة الخريطة.
لغة 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() }إنشاء دالة مصنع للأنماط وتطبيقها على المنطقة طبقة الخصائص.
لا ينطبق المثال التالي على الدالة إلا إذا كان المكان معرّف العنصر هو هانا، هاواي ("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)
.