דוגמאות לתכונות של נתוני סגנון

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

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

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

דוגמה לעיצוב של נתוני נקודות

בדוגמה הזו מוצגת גישה לעיצוב תכונות של נתונים שמבוססים על גיאומטריה של נקודות.

צילום מסך שבו מוצגים נתוני נקודות מעוצבים.

מידע על מערך הנתונים

קבוצת הנתונים שבה השתמשנו בדוגמה הזו היא תוצאה של סקר סנאים שנערך בשנת 2018 בסנטרל פארק, ניו יורק. בקטע הבא מקובץ הנתונים בפורמט CSV, העמודות x ו-y משמשות למיקום גיאוגרפי. הקובץ כולל עמודה מסוג LatLng, אבל לא משתמשים בה בדוגמה הזו כי קבוצות נתונים תומכות בפורמט WKT רק אם העמודה נקראת WKT. מידע נוסף על הפורמטים הנתמכים למיקום זמין במאמר דרישות CSV.

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

X Y UniqueSquirrelID הקטאר Shift תאריך Hectare SquirrelNumber גיל PrimaryFurColor HighlightFurColor CombinationofPrimaryandHighlightColor Colornotes מיקום מדידה של AboveGroundSighter SpecificLocation פועל מרדף טיפוס אכילה ליקוט פעילויות אחרות קוקס Quaas גניחות Tailflags Tailtwitches גישות נייטרלית Runsfrom OtherInteractions LatLng
‎-73.9561344937861 40.7940823884086 37F-PM-1014-03 37F PM 10142018 3 + false false false false false false false false false false false false false POINT (-73.9561344937861 40.7940823884086)
‎-73.9688574691102 40.7837825208444 21B-AM-1019-04 21B AM 10192018 4 + false false false false false false false false false false false false false POINT (-73.9688574691102 40.7837825208444)
‎-73.9742811484852 40.775533619083 11B-PM-1014-08 11B PM 10142018 8 אפור אפור+ מעל הקרקע 10 false true false false false false false false false false false false false POINT (-73.97428114848522 40.775533619083)
-73.9596413903948 40.7903128889029 32E-PM-1017-14 32E PM 10172018 14 אדם מבוגר אפור אפור+ לא נבחרה שפה ראשית. הצבע האפור נבחר להדגשות. ביצענו התאמות ניהוליות. false false false true true false false false false false false false true POINT (-73.9596413903948 40.7903128889029)
‎-73.9702676472613 40.7762126854894 13E-AM-1017-05 13E AM 10172018 5 אדם מבוגר אפור קינמון אפור וקינמון מעל הקרקע על גזע עץ false false false false true false false false false false false false false POINT (-73.9702676472613 40.7762126854894)
‎-73.9683613516225 40.7725908847499 11H-AM-1010-03 11H AM 10102018 3 אדם מבוגר קינמון לבן קינמון ולבן false false false false true false false false false true false true false POINT (-73.9683613516225 40.7725908847499)
‎-73.9541201789795 40.7931811701082 36H-AM-1010-02 36H AM 10102018 2 אדם מבוגר אפור אפור+ ממש מחוץ להקטר מישור הקרקע FALSE false false false false true false false false false false false false false POINT (-73.9541201789795 40.7931811701082)

עיצוב תכונות של נתוני נקודות

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

Kotlin

private fun styleDatasetsLayer() {
// Create the style factory function. val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
// Set default colors to to yellow and point radius to 8. var fillColor = Color.YELLOW var strokeColor = Color.YELLOW var pointRadius = 8F // Check if the feature is an instance of DatasetFeature. if (feature is DatasetFeature) {
val furColors: MutableMap<String, String> = feature.getDatasetAttributes() // Determine CombinationofPrimaryandHighlightColor attribute. val furColor = furColors!!["CombinationofPrimaryandHighlightColor"] when (furColor) { "Black+" -> { fillColor = Color.BLACK strokeColor= Color.BLACK } "Cinnamon+" -> { fillColor = -0x750000 strokeColor= -0x750000 } "Cinnamon+Gray" -> { fillColor = -0x750000 strokeColor= -0x750000 pointRadius = 6F } "Cinnamon+White" -> { fillColor = -0x750000 strokeColor= Color.WHITE pointRadius = 6F } "Gray+" -> fillColor = Color.GRAY "Gray+Cinnamon" -> { fillColor = Color.GRAY strokeColor= -0x750000 pointRadius = 6F } "Gray+Cinnamon, White" -> { fillColor = Color.LTGRAY strokeColor= -0x750000 pointRadius = 6F } "Gray+White" -> { fillColor = Color.GRAY strokeColor= Color.WHITE pointRadius = 6F } } return@StyleFactory FeatureStyle.Builder() .fillColor(fillColor) .strokeColor(strokeColor) .pointRadius(pointRadius) .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) {
// Determine CombinationofPrimaryandHighlightColor attribute. Map<String, String> furColors = ((DatasetFeature) feature).getDatasetAttributes(); String furColor = furColors.get("CombinationofPrimaryandHighlightColor"); // Set default colors to to yellow and point radius to 8. int fillColor = Color.YELLOW; int strokeColor = Color.YELLOW; int pointRadius = 8; switch (furColor) { case "Black+": fillColor = Color.BLACK; strokeColor = Color.BLACK; break; case "Cinnamon+": fillColor = 0xff8b0000; strokeColor = 0xff8b0000; break; case "Cinnamon+Gray": fillColor = 0xff8b0000; strokeColor = Color.GRAY; pointRadius = 6; break; case "Cinnamon+White": fillColor = 0xff8b0000; strokeColor = Color.WHITE; pointRadius = 6; break; case "Gray+": fillColor = Color.GRAY; strokeColor = Color.GRAY; break; case "Gray+Cinnamon": fillColor = Color.GRAY; strokeColor = 0xff8b0000; pointRadius = 6; break; case "Gray+Cinnamon, White": fillColor = Color.LTGRAY; strokeColor = 0xff8b0000; pointRadius = 6; break; case "Gray+White": fillColor = Color.GRAY; strokeColor = Color.WHITE; pointRadius = 6; break; default: fillColor = Color.YELLOW; strokeColor = Color.YELLOW; pointRadius = 8; } return new FeatureStyle.Builder() .fillColor(fillColor) .strokeColor(strokeColor) .pointRadius(pointRadius) .build(); } return null; };
// Apply the style factory function to the feature layer. datasetLayer.setFeatureStyle(styleFactory); }

דוגמה לסגנון של נתוני פוליגון

בדוגמה הזו מוצגת גישה לעיצוב של ישויות נתונים שמבוססות על גיאומטריה של פוליגונים.

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

מידע על מערך הנתונים

קבוצת הנתונים שבה השתמשנו בדוגמה הזו מתארת פארקים בניו יורק. הקטע הבא מקובץ ה-GeoJSON של מערך הנתונים מציג רשומת מאפיין מייצגת.

{
  "type": "Feature",
  "properties": {
    "jurisdiction": "DPR",
    "mapped": "False",
    "zipcode": "11356",
    "acres": "0.05",
    "location": "College Pl., College Pt. Blvd., bet. 11 Ave. and 12 Ave.",
    "nys_assembly": "27",
    "councildistrict": "19",
    "url": "http://www.nycgovparks.org/parks/Q042/",
    "typecategory": "Triangle/Plaza",
    "us_congress": "14",
    "eapply": "Poppenhusen Park",
    "parentid": "Q-07",
    "gispropnum": "Q042",
    "retired": "false",
    "communityboard": "407",
    "objectid": "6248",
    "globalid": "F4810079-CBB9-4BE7-BBFA-B3C0C35D5DE5",
    "name311": "Poppenhusen Park",
    "department": "Q-07",
    "pip_ratable": "true",
    "subcategory": "Sitting Area/Triangle/Mall",
    "precinct": "109",
    "permit": "true",
    "acquisitiondate": null,
    "omppropid": "Q042",
    "gisobjid": "100000301",
    "signname": "Poppenhusen Park",
    "address": null,
    "permitparent": "Q-07",
    "class": "PARK",
    "nys_senate": "11",
    "permitdistrict": "Q-07",
    "borough": "Q",
    "waterfront": "false"
  },
  "geometry": {
    "type": "MultiPolygon",
    "coordinates": [
      [
        [
          [
            -73.84575702371716,
            40.78796240884273
          ],
          [
            -73.84593393292693,
            40.78796857347548
          ],
          [
            -73.84577256469657,
            40.787651355629556
          ],
          [
            -73.84575702371716,
            40.78796240884273
          ]
        ]
      ]
    ]
  }
},

עיצוב של ישויות נתונים מסוג פוליגון

הקוד בדוגמה הזו מחיל צביעה מיוחדת על מאפייני נתונים שמשויכים ל-typecategory מסוג Undeveloped או Parkway, וצובע את כל שאר המאפיינים בירוק.

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) { // Determine the value of the typecategory attribute. val typeCategories: MutableMap<String, String> = feature.getDatasetAttributes() val typeCategory = typeCategories!!["typecategory"] // Set default colors to green. var fillColor = 0x4000ff00 var strokeColor = 0xff00ff00 when (typeCategory) { "Undeveloped" -> { // Color undeveloped areas blue. fillColor = 0x400000ff strokeColor = 0x400000ff } "Parkway" -> { // Color parkway areas red. fillColor = 0x40ff0000 strokeColor = 0x40ff0000 } else -> { // Color all other areas green. fillColor = 0x4000ff00 strokeColor = 0xff00ff00 } } return@StyleFactory FeatureStyle.Builder() .fillColor(fillColor) .strokeColor(strokeColor) .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) {
// Determine the value of the typecategory attribute. Map<String, String> typeCategories = ((DatasetFeature) feature).getDatasetAttributes(); String typeCategory = typeCategories.get("typecategory"); // Set default colors to green. int fillColor = 0x4000ff00; int strokeColor = 0xff00ff00; switch (typeCategory) { case "Undeveloped": // Color undeveloped areas blue. fillColor = 0x400000ff; strokeColor = 0xff0000ff; break; case "Parkway": // Color parkway areas red. fillColor = 0x40ff0000; strokeColor = 0xffff0000; break; default: // Color all other areas green. fillColor = 0x4000ff00; strokeColor = 0xff00ff00; } return new FeatureStyle.Builder() .fillColor(fillColor) .strokeColor(strokeColor) .strokeWidth(2) .build(); } return null; };
// Apply the style factory function to the feature layer. datasetLayer.setFeatureStyle(styleFactory); }

דוגמה לעיצוב נתונים של קו פוליגוני

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

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

מידע על מערך הנתונים

מערך הנתונים שמשמש בדוגמה הזו מציג גשרים באזור סיאטל. הקטע הבא מקובץ ה-GeoJSON של מערך הנתונים מציג רשומת מאפיין מייצגת.

{
  "type": "Feature",
  "properties": {
      "OBJECTID": 1,
      "COMPTYPE": 66,
      "COMPKEY": 515774,
      "HANSEGKEY": 489781,
      "UNITID": "BRG-935",
      "UNITTYPE": " ",
      "BRGUNITID": "BRG-935",
      "UNITDESC_BRG": "YALE AVE BR REV LANE OC                                                                                                                                                                                                                                        ",
      "UNITDESC_SEG": "HOWELL ST ON RP BETWEEN HOWELL ST AND I5 SB                                                                                                                                                                                                                    ",
      "INSTDATE": null,
      "EXPDATE": null,
      "STATUS": " ",
      "STATUSDT": null,
      "CONDITION": " ",
      "CONDDT": null,
      "OWN": " ",
      "LSTVERIFY": null,
      "MAINTBY": " ",
      "ADDBY": "GARCIAA",
      "ADDDTTM": "2010-01-21T00:00:00Z",
      "MODBY": null,
      "MODDTTM": null,
      "BR_NBR": 935,
      "BR_CODE": " 935",
      "BR_TYPE": "ST",
      "BR_NAME": "YALE AVE BR REV LANE OC",
      "BR_FACILITIES": "YALE AVE-SR 5 ON RAMP",
      "BR_FEATURES": "SR 5 REV LANE",
      "BR_RATING": 0,
      "BR_INSET": 1,
      "BR_GEO": "DT",
      "BR_OWNER": "DOT",
      "BR_OWNER_NAME": "State of Washington",
      "GEOBASID": 0,
      "XGEOBASID": 0,
      "GISSEGKEY": 489781,
      "EARTHQUAKE_RESPONSE_TEAM": " ",
      "SHAPE_Length": 220.11891836147655
  },
  "geometry": {
      "type": "LineString",
      "coordinates": [
          [
              -122.329201929090928,
              47.616910448708538
          ],
          [
              -122.329206483407461,
              47.616976719821004
          ],
          [
              -122.32921802149356,
              47.617042137515213
          ],
          [
              -122.329236413912909,
              47.617105967923777
          ],
          [
              -122.329261454336034,
              47.617167494985758
          ],
          [
              -122.329292861855023,
              47.617226028479571
          ],
          [
              -122.329330284134699,
              47.617280911766009
          ],
          [
              -122.329373301365223,
              47.617331529154569
          ],
          [
              -122.329421430971635,
              47.617377312810319
          ],
          [
              -122.329474133027375,
              47.617417749124023
          ],
          [
              -122.32953081631139,
              47.617452384473893
          ]
      ]
  }
},

עיצוב של תכונות נתונים של קווים פוליגוניים

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

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 stroke with a width of 4. .strokeColor(0xff00ff00.toInt()) .strokeWidth(4F) .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 stroke with a width of 4. .strokeColor(0xff00ff00) .strokeWidth(4) .build(); } return null; };
// Apply the style factory function to the feature layer. datasetLayer.setFeatureStyle(styleFactory); }