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