ตั้งค่าชั้นข้อมูล
การตั้งค่าชั้นข้อมูล (Layer) เป็นจุดเริ่มต้นสำหรับกำหนดรูปแบบในการแสดงบนแผนที่ โดยข้อมูลที่สามารถมาแสดงผลบน Map Style Editor คือข้อมูลเชิงพื้นที่ประเภท เวกเตอร์ (Vector) และราสเตอร์ (Raster) ซึ่งสามารถกำหนดได้ตามเนื้อหาในส่วนนี้
- แหล่งข้อมูลสำหรับแสดงผล
- รูปแบบการแสดงผล
- กรองข้อมูล
- ปรับการแสดงผลตามระยะซูม
- สร้างข้อมูลเพิ่มเติม (Metadata)
แหล่งข้อมูล
Layer
การสร้างชั้นข้อมูล โดยใช้ข้อมูลที่จัดเก็บไว้ใน Vallaris Geostore และทำการแปลงเป็นไทล์ (Tiles) ทั้งข้อมูลประเภทเวกเตอร์ไทล์ (Vector Tiles) และราสเตอร์ไทล์ (Raster Tiles)
- Vector Tiles : ข้อมูล Vector Tiles ทีี่ได้จากการแปลงข้อมูล Feature ที่จัดเก็บบน Vallaris Geostore
- Coverage Tiles : ข้อมูล Coverage Tiles ทีี่ได้จากการแปลงข้อมูล Coverage ที่จัดเก็บบน Vallaris Geostore
Source
- GeoJSON
GeoJSON (JSON)GeoJSON (URL)
- Vector
Vector (TileJSON URL)Vector (XYZ URL)
- Raster
Raster (TileJSON URL)Raster (XYZ URL)
- Image
Image
รูปแบบการแสดงผลข้อมูล
เมื่อผู้ใช้งานทำการเพิ่มเลเยอร์ข้อมูล ส่วนการตั้งค่าการแสดงผล จุดเริ่มต้นของการออกแบบรูปแบบการแสดงผลให้กับข้อมูล เช่น ประเภทข้อมูล,ระดับการซูมที่ข้อมูลจะแสดงผลบนแผนที่
ขั้นตอนการตั้งค่ารูปแบบแสดงผล
- เลือกเลเยอร์ ที่ต้องการตั้งค่าประเภทการแสดงผล
- คลิกไปที่ แถบเมนูตั้งค่า (Configuration)
- ที่แถบซ้ายมือคลิกที่ เมนูประเภท (Type)
- เมื่อระบุเสร็จสิ้นให้คลิกปุ่ม บันทึก
เวกเตอร์ (Vector) และไทล์ (Tiles)
ข้อมูลเชิงพื้นที่ประเภทเวกเตอร์ ที่ได้ทำการเพิ่มชั้นข้อมูลมายังแผนที่ที่สร้างขึ้น ผู้ใช้งานต้องทำการระบุรูปแบบการแสดงผลให้สอดคล้องกับข้อมูล เพื่อประสิทธิภาพที่ดีในการสื่อสาร และนำเสนอได้อย่างมีประสิทธิภาพ
ประเภทชั้นข้อมูล
ข้อมูลเชิงพื้นที่ประเภทเวกเตอร์ มีรูปแบบการแสดงผลหลายรูปแบบ เพื่อตอบโจทย์การแสดงผลข้อมูลบนพื้นโลก
| ประเภทข้อมูลเชิงพื้นที่ | รูปแบบการแสดงผล | คำอธิบาย |
|---|---|---|
| จุด (Point) | circle, symbol, heatmap | ข้อมูลเชิงพื้นที่ประเภทจุด (Point) สามารถตั้งค่าเป็นลักษณะต่างๆ ของการแสดงผลบนแผนที่ ได้แก่ จุดแบบวงกลม (Circle) ,ควา มหนาแน่นของจุด (Heatmap) , จุดสำหรับไอคอนหรือข้อความ (Symbol) ซึ่งจะไม่สามารถแสดงในรูปแบบเส้น และพื้นที่ได้ |
| เส้น (Line) | circle,line, symbol, heatmap | ข้อมูลเส้น (Line) ที่แสดงในรูปแบบสัญลักษณ์ (Icon, Symbol, Text) ซึ่งจะต้องกำหนดค่่า symbol-placement เป็น line โดยสัญลักษณ์ (Symbol, Icon, Text) จะแสดงระนาบไปข้อมูลเส้น |
| พื้นที่ (Polygon) | circle, , fill, fill-extrusion, symbol,heatmap | ข้อมูลพื้นที่ (Polygon) ที่แสดงในรูปแบบสัญลักษณ์ (Icon, Symbol, Text) จะแสดงไม่ตรงกับจุดกึ่งกลางเสมอไป โดยปกติแล้วค่าเริ่มต้นของ symbol-placement เป็น point จะใช้จุดกึ่งกลางของพื้นที่ (Polygon) เป็นตำแหน่งหลัก แต่พื้นที่ที่มีรูปร่างซับซ้อนขนาดใหญ่ จะทำการเลือกหลายจุดที่เหมาะสม เพื่อมองเห็นได้ชัด |
ค่าเริ่มต้นเป็น วงกลม (Circle) ซึ่งผู้ใช้งานสามารถเปลี่ยนประเภทการแสดงผล ตามความเหมาะสมกับข้อมูลที่ได้ระบุไว้ได้



ประเภทชั้นข้อมูล (Layer Type)
ราสเตอร์ (Raster) และไทล์ (Tiles)
ข้อมูลเชิงพื้นที่ประเภทราสเตอร์ ข้อมูลในการแสดงผลอยู่ในรูปแบบ Coverage ซึ่งเป็นการแสดงผลในรูปแบบ Cloud Optimized GeoTIFF (COG) โดยมีคุณสมบัติในการแสดงผลข้อมูลที่มีการจัดเก็บแบบ tiled และ internal overviews เพื่อให้สามารถดึงข้อมูลเฉพาะส่วนที่ต้องการได้โดยตรงจากเซิร์ฟเวอร์
ประเภทการแสดงผล
- Coverage : สำหรับข้อมูล ภาพถ่ายดาวเทียม, ถ่ายทางอากาศ
กรองข้อมูล (Filter)
การกรองข้อมูลเชิงพื้นที่ประเภทเวกเตอร์ (Vector) โดยสามารถทำได้กับข้อมูลที่จัดเก็บบน Geostore และข้อมูลที่เพิ่มจากภายนอก ซึ่งจะเป็นการใช้ข้อมูลคุณลักษณะ (Attributes Data) หากข้อมูลถูกจัดเก็บไว้ในรูปแบบ GeoJSON มักถูกจัดเก็บไว้ในฟิลด์ properties เพื่อเป็นเงื่อนไขสำหรับการกรองข้อมูล
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [100.523186, 13.736717]
},
"properties": {
"name": "Grand Palace",
"type": "Historical Site",
"city": "Bangkok",
"visitor_count": 8000
}
}
เงื่อนไขการกรองข้อมูล
เมื่อผู้ใช้งานต้องการกรองข้อมูล จากข้อมูล Vector Tiles ทั้งหมดให้ใช้เฉพาะสิ่งที่ต้องการนำมาแสดงผล สามารถกรองข้อมูลที่อยู่ในฟิลด์ properties ของเลเยอร์ ซึ่งต้องทำการกำหนดเงื่อนไขสำหรับการ Filter มีตัวดำเนินการ ดังต่อไปนี้
- All การใช้ All ข้อมูลจะแสดงผล เมื่อเงื่อนไขทั้งหมดเป็นจริง หรือตรงกับเงื่อนไขที่กำหนด (and)
- Any การใช้ Any ข้อมูลจะแสดงผล เมื่อเงื่อนไขที่กำหนดมีตัวใดตัวหนึ่งเป็นจริง (or)
- None ผลลัพธ์จะตรงข้ามกับเงื่อนไขที่ทำการระบุ (not)
ตัวกรอง (Filter)
ข้อความ (Text)
| สัญลักษณ์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
== | เท่ากับ | ["==", "pv_tn", "ขอนแก่น"] |
!= | ไม่เท่ากับ | ["!=", "pv_tn", "กรุงเทพฯ"] |
in | อยู่ในรายการ (OR หลายค่า) | ["in", "pv_tn", "ขอนแก่น", "นครพนม"] |
!in | ไม่อยู่ในรายการ | ["!in", "pv_tn", "เชียงใหม่", "ภูเก็ต"] |
has | มี property นี้อยู่ | ["has", "pv_tn"] |
!has | ไม่มี property นี้ | ["!has", "pv_tn"] |
ตัวเลข (Number)
| สัญลักษณ์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
== | เท่ากับ | ["==", "population", 1000000] |
!= | ไม่เท่ากับ | ["!=", "population", 500000] |
> | มากกว่า | [">", "population", 1000000] |
< | น้อยกว่า | ["<", "population", 500000] |
>= | มากกว่าหรือเท่ากับ | [">=", "population", 1000000] |
<= | น้อยกว่าหรือเท่ากับ | ["<=", "population", 500000] |
in | อยู่ในรายการ (OR หลายค่า) | ["in", "population", 100000, 200000, 300000] |
!in | ไม่อยู่ในรายการ | ["!in", "population", 400000, 500000] |
has | มี property นี้อยู่ | ["has", "population"] |
!has | ไม่มี property นี้ | ["!has", "population"] |
ตรรกะ (Boolean)
| สัญลักษณ์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
== | เท่ากับ (true หรือ false) | ["==", "is_active", true] |
!= | ไม่เท่ากับ (true หรือ false) | ["!=", "is_active", false] |
has | มี property นี้อยู่ | ["has", "is_active"] |
!has | ไม่มี property นี้ | ["!has", "is_active"] |
ปรับการแสดงผลตามระยะซูม
ระดับการซูมของแผนที่เป็นการกำหนดสัดส่วนการแสดงผลของแผนที่ในเชิงตัวเลข โดยแผนที่ที่ให้บริการมีขอบเขตการซูมตั้งแต่ระดับต่ำสุดที่ 0 ถึงระดับสูงสุดที่ 22
- ระดับการซูมต่ำสุด (0): แสดงภาพรวมของพื้นที่ในขอบเขตกว้างที่สุด เช่น การแสดงภาพรวมระดับโลกหรือระดับทวีป เหมาะสำหรับการมองภาพรวมของพื้นที่ขนาดใหญ่
- ระดับการซูมสูงสุด (22): แสดงรายละเอียดของพื้นที่ในขอบเขตแคบที่สุด เช่น การแสดงรายละเอียดของอาคาร หรือตรอกซอย เหมาะสำหรับการพิจารณารายละเอียดของสถานที่เฉพาะเจาะจง
ระดับการ ซูม
ระดับการซูม : 0
มุมมองการแสดงผล :
โลก
- โลก (0 - 3)
- ทวีป (4 - 5)
- ประเทศ (6 - 9)
- ภูมิภาค (10 - 11)
- จังหวัด(12 - 14)
- อำเภอ (15- 16)
- ตำบล (17 - 18)
- หมู่บ้าน, เส้นทาง (19 - 22)
คำอธิบายข้อมูลของชั้นข้อมูล (Layer Metadata)
ข้อมูลเพิ่มเติม ของชั้นข้อมูล (Layer) ซึ่งเป็นประโยชน์ในการอธิบาย รายละเอียดหรือความหมาย ให้กับชั้นข้อมูลนั้นๆ ที่ต้องการสื่อให้ก ับผู้ใช้งานในการพัฒนาเว็บไซต์
ชั้นข้อมูลบนแผนที่ (Layer) มีองค์ประกอบสำคัญที่ใช้สำหรับการแสดงผล
| ชื่อฟิลด์ | คำอธิบาย |
|---|---|
id | รหัสชื่อชั้นข้อมูล (Layer) |
layout | การตั้งค่าด้านการแสดงผล visible : แสดงผล none : ซ่อน |
maxzoom | ระดับซูมสูงสุดที่ชั้นข้อมูลแสดงผล |
minzoom | ระดับซูมต่ำสุดที่ชั้นข้อมูลแสดงผล |
paint | การกำหนดสไตล์ของชั้น เช่น สี ขอบ ความโปร่งแสง เป็นต้น |
source | รหัสหรือชื่อแหล่งข้อมูล เช่น vector tile, geojson ฯลฯ |
source-layer | ชื่อของชั้นข้อมูลย่อยภายใน Vector Tiles |
type | ประเภทชั้นข้อมูล circle : จุดวงกลมline : เส้น symbol : สัญลักษณ์ fill : พื้นที่fill-extrusion : พื้นที่ยกความสูงheat-map : พื้นที่ยกความสูง |
{
"id": "layer_id",
"layout": {
"visibility": "visible"
},
"maxzoom": 22,
"metadata": {
"vallaris:group": "Group-example"
},
"minzoom": 0,
"paint": {...},
"source": "66ee393eae78b6d2972e1cc6",
"source-layer": "66ee393eae78b6d2972e1cc6",
"type": "fill"
}
ขั้นตอนการสร้างคำอธิบายข้อมูล (Matadata)
- เลือกชั้นข้อมูล (Layer) ที่ต้องการสร้างข้อมูลเพิ่มเติม จะแสดงหน้าต่างสำหรับแก้ไขด้านขวามือ
- เลือกแท็บ "ตั้งค่า" และเลือกเมนู "คำอธิบายชุดข้อมูล"
- คลิกปุ่ม "เพิ่มคีย์" จะปรากฏว่าหน้าต่างสำหรับระบุชื่อ "ฟิลด์" และ "ค่าข้อมูล"
- คลิกปุ่ม "บันทึก" เพื่อเพิ่มข้อมูลเพิ่มเติม (Metadata)
คำอธิบายชั้นข้อ มูล (Layer Metadata) ไม่ส่งผลต่อการแสดงผลของแผนที่โดยตรง แต่สามารถนำไปใช้ในงานพัฒนา เช่น การจัดกลุ่ม หรือแสดงคำอธิบายชั้นข้อมูลในเว็บแอปพลิเคชัน