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

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

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

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

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

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

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

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

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

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

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

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

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

  2. استخدِم الدالة FeatureLayer.setFeatureStyle() لتطبيق دالة إنشاء الأنماط على كل عنصر في مجموعة البيانات.

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

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

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

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

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

بما أنّ هذه الدالة تعمل على كل عنصر في طبقة، من المهم تحسينها. لتجنُّب التأثير في الوقت المستغرَق للعرض، يمكنك استدعاء 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 -> { ... } }

جافا

// 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() }

    جافا

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

    جافا

    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 من مصنع الأنماط، على سبيل المثال إذا كنت تريد أن تظل مجموعة فرعية من الميزات غير مرئية.