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

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

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

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

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

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

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

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

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

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

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

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

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

  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(2) .build(); } return null; };
    // Apply the style factory function to the feature layer. datasetLayer.setFeatureStyle(styleFactory); }

إزالة الأنماط من طبقة

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

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