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