إضافة مجموعة بيانات إلى خريطة ومجموعة بيانات نمط

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

توضّح لك هذه الصفحة كيفية إضافة مجموعة بيانات إلى خريطة وتطبيق الأنماط.

لقطة شاشة تعرض بيانات المضلّع ذات الأنماط.

المتطلبات الأساسية

قبل المتابعة، يجب أن يكون لديك معرف خريطة ونمط خريطة ومعرف مجموعة بيانات.

ربط معرّف مجموعة بيانات بنمط خريطة

لتحديد نمط ميزات مجموعة بيانات، يمكنك تطبيق دالة النمط على طبقة مجموعة البيانات على الخريطة. يتم إنشاء طبقة ميزة مجموعة البيانات عندما ربط مجموعة بيانات بنمط خريطة.

لربط مجموعة البيانات بنمط الخريطة:

  1. في Google Cloud Console، انتقِل إلى صفحة مجموعات البيانات.
  2. انقر فوق اسم مجموعة البيانات. ستظهر صفحة تفاصيل مجموعة البيانات.
  3. انقر على علامة التبويب معاينة.
  4. في قسم أنماط الخريطة المرتبطة، انقر على إضافة نمط الخريطة:
    لقطة شاشة لزر "ADD MAP STYLE".
  5. انقر فوق مربعات الاختيار لأنماط الخريطة المراد ربطها ثم انقر انقر على حفظ.

تطبيق الأنماط على مجموعة البيانات

لتطبيق الأنماط على مجموعة بيانات:

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

  2. اتصل FeatureLayer.setFeatureStyle() لتطبيق دالة المصنع على كل ميزة في مجموعة البيانات.

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

يتم تطبيق دالة المصنع على كل ميزة في مجموعة البيانات في الوقت الذي تقوم فيه بتعيين الدالة على طبقة الخصائص. يجب أن تكون هذه الدالة إرجاع FeatureStyle يحدد كيفية تصميم المضلّع.

إذا عرض مصنع النمط null، لن يتم عرض الميزة المحددة. لمزيد من المعلومات، معلومات، يُرجى الاطّلاع على إزالة النمط من طبقة معيّنة.

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

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

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

يمكنك أيضًا استدعاء الدالة FeatureLayer.getDatasetId() للحصول على معرّف مجموعة البيانات.

تعيين الحد الخارجي والتعبئة ونصف قطر النقطة

عند تصميم ميزة في وظيفة مصنع الأنماط، يمكنك ضبط:

  • لون الخط ودرجة التعتيم للحدود كما هو محدد في السمة Color الصف. القيمة التلقائية هي شفافة (Color.TRANSPARENT).

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

  • ملء اللون والتعتيم كما هو محدد في السمة Color الصف. القيمة التلقائية هي شفافة (Color.TRANSPARENT).

  • نصف القطر لعنصر نقطة يتراوح بين 0 و128 بكسل.

استخدام قواعد النمط البسيطة

إنّ أبسط طريقة لتصميم الميزات هي تحديد FeatureLayer.StyleFactory التي تنشئ دائمًا كائن FeatureStyle متطابقًا، بغض النظر عن الجديدة. يمكنك تطبيق خيارات نمط الميزة مباشرةً على طبقة عناصر مجموعة البيانات أو استخدام جنبًا إلى جنب مع FeatureStyleFunction.

استخدام قواعد نمط التعريف

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

على سبيل المثال، استخدم الطريقة DatasetFeature.getDatasetAttributes() لعرض يشير ذلك المصطلح إلى القيمة Map<String,String> لسمات مجموعة البيانات لعنصر. يمكنك بعد ذلك تخصيص تصميم الميزة بناءً على سماتها.

يحدد هذا المثال قيمة "highlightColor" لكل منها إحدى ميزات مجموعة البيانات للتحكم في التصميم:

Kotlin

// Get the dataset feature, so we can work with all of its attributes.
val datasetFeature: DatasetFeature = feature as DatasetFeature
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. val attributeColor: MutableMap<String, String> = datasetFeature.getDatasetAttributes() when (attributeColor["highlightColor"]) { "Black" -> { ... } "Red" -> { ... } else -> { ... } }

Java

// Get the dataset feature, so we can work with all of its attributes.
DatasetFeature datasetFeature = (DatasetFeature) feature;
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. Map<String, String> attributeColor = datasetFeature.getDatasetAttributes(); switch(attributeColor.get("highlightColor")) { case "Black": ... break; case "Red": ... break; default: // Color not defined. ... break; }

تطبيق النمط على طبقة عناصر مجموعة البيانات

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

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

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

    Kotlin

    private var datasetLayer: FeatureLayer? = null
    override fun onMapReady(googleMap: GoogleMap) { // Get the DATASET feature layer. datasetLayer = googleMap.getFeatureLayer(FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build())
    // Apply style factory function to DATASET layer. styleDatasetsLayer() }

    Java

    private FeatureLayer datasetLayer;
    @Override public void onMapReady(GoogleMap map) { // Get the DATASET feature layer. datasetLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build());
    // Apply style factory function to DATASET layer. styleDatasetsLayer(); }

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

    يطبق المثال التالي نفس التعبئة والحد على جميع الميزات في مجموعة البيانات.

    Kotlin

    private fun styleDatasetsLayer() {
    // Create the style factory function. val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
    // Check if the feature is an instance of DatasetFeature. if (feature is DatasetFeature) {
    return@StyleFactory FeatureStyle.Builder() // Define a style with green fill at 50% opacity and // solid green border. .fillColor(0x8000ff00.toInt()) .strokeColor(0xff00ff00.toInt()) .strokeWidth(2F) .build() } return@StyleFactory null }
    // Apply the style factory function to the feature layer. datasetLayer?.setFeatureStyle(styleFactory) }

    Java

    private void styleDatasetsLayer() {
    // Create the style factory function. FeatureLayer.StyleFactory styleFactory = (Feature feature) -> {
    // Check if the feature is an instance of DatasetFeature. if (feature instanceof DatasetFeature) {
    return new FeatureStyle.Builder() // Define a style with green fill at 50% opacity and solid green border. .fillColor(0x8000ff00) .strokeColor(0xff00ff00) .strokeWidth(2F) .build(); } return null; };
    // Apply the style factory function to the feature layer. datasetLayer.setFeatureStyle(styleFactory); }

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

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

يمكنك أيضًا إرجاع null من الشركة المصنّعة للأزياء، مثلاً إذا كنت تريد أن تظل مجموعة فرعية من الميزات غير مرئية.