การจัดรูปแบบ FeatureView

สไตล์ของฟีเจอร์ในชิ้นงาน FeatureView จะระบุโดยใช้กฎที่กําหนดไว้ในออบเจ็กต์ JavaScript คุณตั้งค่าสไตล์ได้ในระหว่างการกําหนดค่าเริ่มต้นของ FeatureViewLayer หรือเมื่อใดก็ได้ในภายหลัง ระบบการจัดสไตล์ช่วยให้คุณตั้งค่ากฎรูปแบบแบบกว้างที่มีผลกับฟีเจอร์กลุ่มใหญ่ รวมถึงกฎที่เฉพาะเจาะจงมากขึ้นสำหรับฟีเจอร์หนึ่งๆ ได้ สไตล์องค์ประกอบสามารถกําหนดโดยค่าคงที่หรืออิงตามข้อมูล โดยอิงตามลักษณะขององค์ประกอบ

ออบเจ็กต์สไตล์

โครงสร้างพื้นฐานของออบเจ็กต์สไตล์แสดงอยู่ด้านล่าง กฎมี 2 ประเภท ได้แก่ กฎทั่วไปและกฎเฉพาะ กฎทั่วไปมีผลกับฟีเจอร์ทั้งหมดในFeatureView ส่วนกฎที่เฉพาะเจาะจงมีผลกับฟีเจอร์บางส่วน

{
  // Broad style rules.
  opacity: ,
  polygonFillColor: ,

  // Specific style rules.
  rules: [
    {  },
    {  }
  ]
};

กฎทั่วไป

หากต้องการใช้พร็อพเพอร์ตี้สไตล์กับองค์ประกอบทั้งหมด (หรือองค์ประกอบของประเภทเรขาคณิตที่เฉพาะเจาะจง) ให้ระบุพร็อพเพอร์ตี้สไตล์ที่ระดับบนสุดในออบเจ็กต์สไตล์

{
  opacity: 0.5,
  pointShape: 'triangle',
  lineWidth: 10,
  polygonFillColor: 'green'
};

กฎเฉพาะ

หากต้องการใช้พร็อพเพอร์ตี้สไตล์กับฟีเจอร์บางส่วน ให้ใช้ช่อง rules ช่อง rules จะยอมรับรายการออบเจ็กต์ JavaScript โดยแต่ละรายการจะมี filter ที่เลือกฟีเจอร์ตามเงื่อนไขที่กําหนดโดยออบเจ็กต์ ee.Filter ตามด้วยชุดพร็อพเพอร์ตี้สไตล์ ในตัวอย่างด้านล่าง มีกฎที่ตั้งค่า polygonStrokeWidth และ polygonFillColor เฉพาะในกรณีที่พร็อพเพอร์ตี้ "REP_AREA" น้อยกว่า 100 กฎที่เจาะจงจะลบล้างพร็อพเพอร์ตี้สไตล์ของกฎทั่วไป และกฎที่อยู่ใกล้กับท้ายรายการ rules จะลบล้างกฎที่อยู่ใกล้กับต้นรายการ (ระบบจะประเมินกฎที่เจาะจงจากต้นรายการไปท้ายรายการ)

{
  rules: [
    {
      filter: ee.Filter.lt('REP_AREA', 100),
      polygonStrokeWidth: 0.5,
      polygonFillColor: 'blue'
    },
    {  }  // Optionally include additional rules.
  ]
};

รูปแบบการตั้งค่า

คุณตั้งค่าสไตล์ฟีเจอร์ได้เมื่อประกาศ FeatureViewLayer หรือเมื่อใดก็ได้หลังจากนั้น

การประกาศ FeatureViewLayer รายการ

หากต้องการตั้งค่าพารามิเตอร์การแสดงภาพเมื่อประกาศ FeatureViewLayer ให้ใช้พารามิเตอร์ visParams

var visParams = {
  opacity: 0.5,
  lineWidth: 10,
  polygonFillColor: 'purple'
};

var layer = ui.Map.FeatureViewLayer({
  assetId: 'WCMC/WDPA/current/polygons_FeatureView',
  visParams: visParams
});

Map.add(layer);

FeatureViewLayer ที่มีอยู่

หากต้องการตั้งค่าพารามิเตอร์การแสดงภาพสําหรับ FeatureViewLayer ที่มีอยู่ ให้ใช้ฟังก์ชัน setVisParams กฎนี้จะแทนที่กฎสไตล์ที่ระบุไว้ก่อนหน้านี้ ระบบจะตั้งค่าพร็อพเพอร์ตี้ที่ไม่ได้ระบุเป็นค่าเริ่มต้น

var layer = ui.Map.FeatureViewLayer('WCMC/WDPA/current/polygons_FeatureView');
Map.add(layer);

layer.setVisParams({
  opacity: 0.5,
  lineWidth: 10,
  polygonFillColor: 'purple'
});

สัญลักษณ์

สําหรับพร็อพเพอร์ตี้สไตล์แต่ละรายการ คุณสามารถระบุกฎสไตล์แบบคงที่หรือกฎสไตล์ที่อิงตามข้อมูลได้ ตัวเลือกที่อิงตามข้อมูลจะใช้ค่าพร็อพเพอร์ตี้องค์ประกอบเพื่อกำหนดสัญลักษณ์ ซึ่งอาจเป็นแบบเชิงหมวดหมู่หรือแบบประมาณก็ได้ ดูรายการตารางพร็อพเพอร์ตี้สไตล์เพื่อดูรายการพร็อพเพอร์ตี้สไตล์ทั้งหมด

ค่าคงที่

กฎรูปแบบคงที่ประกอบด้วยพร็อพเพอร์ตี้สไตล์ที่จะตั้งค่าและค่าของพร็อพเพอร์ตี้ ตัวอย่างต่อไปนี้จะตั้งค่าสีเติมของรูปหลายเหลี่ยมเป็นสีน้ำเงิน

var visParams = {
  polygonFillColor: 'blue'
};

เชิงหมวดหมู่

กฎรูปแบบเชิงหมวดหมู่ประกอบด้วยพร็อพเพอร์ตี้สไตล์ที่จะตั้งค่าและออบเจ็กต์ JavaScript ที่มีพร็อพเพอร์ตี้ 3 รายการ ได้แก่

  • property — ชื่อพร็อพเพอร์ตี้ฟีเจอร์ที่มีค่าที่จะส่งผลต่อสไตล์
  • categories — รายการของรายการที่แมปค่าพร็อพเพอร์ตี้องค์ประกอบกับสัญลักษณ์พร็อพเพอร์ตี้ตามสไตล์ แต่ละหมวดหมู่ประกอบด้วยค่าพร็อพเพอร์ตี้ตามด้วยค่าสัญลักษณ์ที่จะใช้ ค่าพร็อพเพอร์ตี้ที่กําหนดหมวดหมู่ต้องเป็นสตริง
  • defaultValue — สัญลักษณ์เริ่มต้นที่จะใช้กับองค์ประกอบที่ไม่มีการกําหนดค่าพร็อพเพอร์ตี้ใน categories หากเป็นค่า Null/ไม่ระบุ ระบบจะใช้การตั้งค่าสไตล์เริ่มต้น

เช่น ออบเจ็กต์ต่อไปนี้จะตั้งค่าพร็อพเพอร์ตี้สไตล์ color โดยอิงตามพร็อพเพอร์ตี้ฟีเจอร์ "MARINE" ฟีเจอร์ในหมวดหมู่ "MARINE" "0" จะตั้งค่าเป็นสีม่วง, "1" เป็นสีเขียว, "2" เป็นสีน้ำเงิน และหมวดหมู่อื่นๆ เป็นสีขาว

var visParams = {
  color: {
    property: 'MARINE',
    categories: [
      ['0', 'purple'],
      ['1', 'green'],
      ['2', 'blue']
    ],
    defaultValue: 'white'
  }
};

ประมาณ

กฎสไตล์ที่แทรกประกอบด้วยพร็อพเพอร์ตี้สไตล์ที่จะตั้งค่าและออบเจ็กต์ JavaScript ที่มีพร็อพเพอร์ตี้ได้สูงสุด 5 รายการ ดังนี้

  • property — ชื่อพร็อพเพอร์ตี้ฟีเจอร์ที่มีค่าที่จะส่งผลต่อสไตล์
  • mode — โหมดการอินเตอร์โพเลชัน ซึ่งอาจเป็น 'linear' หรือ 'interval'
  • palette — รายการสี ความทึบ หรือความกว้างเพื่อใช้หาค่าเฉลี่ยระหว่างค่าของพร็อพเพอร์ตี้ที่ป้อน รูปแบบจะขึ้นอยู่กับ mode โดยดูรายละเอียดเพิ่มเติมได้ที่ส่วนเชิงเส้นและช่วงเวลา

มีผลกับโหมด 'linear' เท่านั้น

  • min — ค่าพร็อพเพอร์ตี้ที่จะแมปกับองค์ประกอบแรกในรายการ palette
  • max — ค่าพร็อพเพอร์ตี้ที่จะแมปกับองค์ประกอบสุดท้ายในรายการ palette

เชิงเส้น

โหมดการหาค่าเฉลี่ยเชิงเส้นจะตั้งค่าพร็อพเพอร์ตี้รูปแบบองค์ประกอบโดยการแมปค่าอินพุตในช่วง min ถึง max เชิงเส้นระหว่างรายการค่าสัญลักษณ์ที่กําหนดไว้ในพร็อพเพอร์ตี้ palette ระบบจะจำกัดค่าอินพุตให้อยู่ในช่วงที่กำหนดโดย min และ max

เช่น ออบเจ็กต์ต่อไปนี้ตั้งค่าพร็อพเพอร์ตี้สไตล์ color ตามพร็อพเพอร์ตี้องค์ประกอบ "REP_AREA" พร็อพเพอร์ตี้ palette คือรายการสี ซึ่งบ่งบอกว่าค่าอินพุตระหว่าง min ถึง max ควรมีระดับเป็นเส้นตรงจากสีเหลืองเป็นสีแดงเป็นสีน้ำเงิน ค่าระหว่าง 1 ถึง 500 จะได้รับการปัดเศษระหว่างสีเหลืองและสีแดง และค่าระหว่าง 500 ถึง 1, 000 จะได้รับการปัดเศษระหว่างสีแดงและน้ำเงิน

var visParams = {
  color: {
    property: 'REP_AREA',
    mode: 'linear',
    palette: ['yellow', 'red', 'blue'],
    min: 1,
    max: 1000
  }
};

ช่วงเวลา

โหมดการประมาณค่าเป็นช่วงตั้งค่าพร็อพเพอร์ตี้รูปแบบองค์ประกอบโดยการแมปค่าอินพุตกับช่วงชั้น แล้วใช้สัญลักษณ์เฉพาะชั้น ระบบจะกําหนดค่าอินพุตจากพร็อพเพอร์ตี้องค์ประกอบที่เลือกให้กับค่าแบ่งชั้นที่ใกล้ที่สุดโดยการปัดเศษลง พร็อพเพอร์ตี้ palette มีการจัดรูปแบบเป็นรายการของลิสต์ โดยที่ลิสต์ย่อยแต่ละรายการมีค่าการแบ่งชั้นตามด้วยค่าพร็อพเพอร์ตี้สไตล์ องค์ประกอบที่มีค่าพร็อพเพอร์ตี้น้อยกว่าค่าแบ่งชั้นขั้นต่ำจะยังคงใช้การตั้งค่าพร็อพเพอร์ตี้สไตล์เริ่มต้น

ในตัวอย่างนี้ ระบบจะตั้งค่าความทึบของฟีเจอร์ที่เติมตามคลาสแบบเป็นขั้นของพร็อพเพอร์ตี้ "REP_AREA" คำจำกัดความของคลาสและสัญลักษณ์สไตล์จะระบุไว้ในพร็อพเพอร์ตี้ palette เป็นรายการของรายการ ซึ่งบ่งบอกว่าควรมีคลาส 4 คลาสที่มีช่วงพักที่ค่า 0, 80, 2,000 และ 5,000 โดยมีระดับความทึบของฟีเจอร์ 0.5, 0.35, 0.22 และ 0.15 ตามลำดับ กล่าวคือ องค์ประกอบที่มีค่า "REP_AREA" ในช่วง $ 0 \le x < 80 $ จะมีค่าความทึบของเส้นขอบ 0.5, ค่าในช่วง $ 80 \le x < 2000 $ จะมีค่าความทึบของเส้นขอบ 0.35 และอื่นๆ

var visParams = {
  fillOpacity: {
    property: 'REP_AREA',
    mode: 'interval',
    palette: [
      [0, 0.5],
      [80, 0.35],
      [2000, 0.22],
      [5000, 0.15]
    ]
  }
};

พร็อพเพอร์ตี้สไตล์ทั้งหมด

ด้านล่างนี้คือพร็อพเพอร์ตี้สไตล์ทั้งหมดที่คุณระบุได้ในออบเจ็กต์สไตล์ การตั้งค่าพร็อพเพอร์ตี้สไตล์สำหรับรูปทรงเรขาคณิตบางประเภทจะลบล้างพร็อพเพอร์ตี้สไตล์ที่เกี่ยวข้องซึ่งตั้งค่าไว้สำหรับ "รูปทรงเรขาคณิตทั้งหมด" (เช่น การตั้งค่า polygonFillColor จะลบล้างค่าที่ตั้งไว้ใน fillColor)

พร็อพเพอร์ตี้ ประเภท คำอธิบาย รองรับกฎที่อัตราส่วน
เรขาคณิตทั้งหมด
isVisible Boolean ตั้งค่าว่าฟีเจอร์จะแสดงหรือไม่ ไม่
color String กำหนดสีเติม/เส้นโครงร่างสำหรับรูปทรงเรขาคณิตทุกประเภท ต้องเป็นค่า Hex หรือสี CSS3 ใช่
opacity Double กำหนดความทึบของเส้นขอบ/การเติมสำหรับเรขาคณิตทุกประเภท ต้องเป็นแบบ Double ระหว่าง 0 ถึง 1 ใช่
width Double กำหนดความหนาของเส้นสำหรับรูปทรงเรขาคณิตทุกประเภท ใช่
fillColor String กำหนดสีเติมสำหรับรูปทรงเรขาคณิตทุกประเภท ต้องเป็นค่าฐาน 16 หรือสี CSS3 ใช่
เรขาคณิตของจุด
pointShape String ตั้งค่ารูปร่างของเรขาคณิตจุด รองรับรูปทรงเดียวกับ ee.FeatureCollection.style (วงกลม สี่เหลี่ยมผืนผ้า เพชร กากบาท เครื่องหมายบวก ห้าแฉก หกแฉก สามเหลี่ยม triangle_up, triangle_down, triangle_left, triangle_right, ห้าเหลี่ยม หกเหลี่ยม star5, star6) ไม่
pointSize Double ตั้งค่าความกว้างของรูปเรขาคณิตของจุด (เป็นพิกเซล) ใช่
pointFillColor String กำหนดสีเติมสำหรับเรขาคณิตจุด ต้องเป็นค่าฐาน 16 หรือสี CSS3 ใช่
pointFillOpacity Double กำหนดความโปร่งแสงของสีเติมสำหรับเรขาคณิตจุด ต้องเป็นตัวแปรประเภท double ระหว่าง 0 ถึง 1 ใช่
เรขาคณิตของเส้น
lineType String ตั้งค่าประเภทเส้น รองรับประเภทเดียวกับ ee.FeatureCollection.style (ทึบ ประ จุด) ไม่
lineWidth Double กำหนดความกว้างของเส้น (เป็นพิกเซล) ใช่
lineColor String กำหนดสีสำหรับเรขาคณิตของเส้น ต้องเป็นค่าฐาน 16 หรือสี CSS3 ใช่
lineOpacity Double ตั้งค่าความโปร่งแสงสำหรับเรขาคณิตของเส้น ต้องเป็นแบบ Double ระหว่าง 0 ถึง 1 ใช่
เรขาคณิตรูปหลายเหลี่ยม
polygonStrokeWidth Double กำหนดความกว้างของเส้นขีดของรูปหลายเหลี่ยม (เป็นพิกเซล) ใช่
polygonStrokeType String กำหนดประเภทเส้นสำหรับรูปหลายเหลี่ยม รองรับประเภทเดียวกับ ee.FeatureCollection.style (ทึบ ประ จุด) ไม่
polygonStrokeColor String กำหนดสีเส้นสำหรับเรขาคณิตรูปหลายเหลี่ยม ต้องเป็นค่าฐาน 16 หรือสี CSS3 ใช่
polygonStrokeOpacity Double กำหนดความทึบของเส้นสำหรับเรขาคณิตรูปหลายเหลี่ยม ต้องเป็นตัวเลขทศนิยมระหว่าง 0 ถึง 1 ใช่
polygonFillColor String กำหนดสีเติมสำหรับเรขาคณิตรูปหลายเหลี่ยม ต้องเป็นค่าฐาน 16 หรือสี CSS3 ใช่
polygonFillOpacity Double ตั้งค่าความโปร่งแสงของสีเติมสำหรับเรขาคณิตแบบรูปหลายเหลี่ยม ต้องเป็นตัวเลขทศนิยมระหว่าง 0 ถึง 1 ใช่