הוספת מערך נתונים למפה וסגנון של מערך נתונים

בחירת פלטפורמה: Android iOS JavaScript

בדף הזה מוסבר איך להוסיף מערך נתונים למפה ולהחיל עיצוב.

צילום מסך שבו מוצגים נתוני פוליגונים מסוגננים.

דרישות מוקדמות

כדי להמשיך, אתם צריכים שיהיו לכם מזהה מפה, סגנון מפה ומזהה מערך נתונים.

שיוך מזהה של מערך נתונים לסגנון מפה

כדי לעצב את התכונות של מערך נתונים, צריך להחיל פונקציית סגנון על שכבת התכונות של מערך הנתונים במפה. שכבת התכונות של מערך הנתונים נוצרת כאשר לשייך מערך נתונים לסגנון מפה.

כדי לשייך את מערך הנתונים לסגנון המפה:

  1. במסוף Google Cloud, עוברים לדף Datasets.
  2. לוחצים על השם של מערך הנתונים. הדף פרטי מערך הנתונים יופיע.
  3. לוחצים על הכרטיסייה תצוגה מקדימה.
  4. בקטע סגנונות מפה משויכים, לוחצים על הוספת סגנון מפה.
    צילום מסך של הלחצן 'הוספת סגנון מפה'.
  5. לוחצים על תיבות הסימון של סגנונות המפה לשיוך ואז לוחצים על לוחצים על שמירה.

החלת סגנונות על מערך הנתונים

כדי להחיל סגנונות על מערך נתונים:

  1. ליצור פונקציה להגדרות היצרן של סגנון שמטמיעה את FeatureLayer.StyleFactory גרפי. הפונקציה הזו מגדירה את לוגיקת הסגנון של מערך נתונים.

  2. שיחת טלפון FeatureLayer.setFeatureStyle() כדי להחיל את הפונקציה להגדרות המקוריות על כל תכונה במערך הנתונים.

יצירת פונקציות יצרן של סגנון

הפונקציה להגדרות המקוריות של הסגנון חלה על כל תכונה במערך הנתונים בזמן הגדרת הפונקציה בשכבת התכונות. הפונקציה הזו חייבת החזרת FeatureStyle שמציין איך לעצב את הפוליגון.

אם היצרן של הסגנון מחזיר את הערך null, התכונה הנתונה לא עוברת רינדור. לקבלת מידע נוסף מידע נוסף זמין במאמר הסרת עיצוב משכבה.

SDK של מפות 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 ממפעל הסגנון, לדוגמה אם רוצה שתת-קבוצה של תכונות יישארו בלתי נראות.