PerfectVector
โดย Irene Kimอ่าน 3 นาที

SVG marker ใน QGIS: เตรียมสัญลักษณ์ที่แก้สีได้

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

ในหน้านี้

หากต้องการเตรียม SVG marker สำหรับ QGIS ที่แก้สีได้ ให้เพิ่มตัวแทนค่า param() ของ QGIS ในแอตทริบิวต์สีที่ต้องการให้แอปควบคุม คงสีที่ระบุชัดไว้บนบริเวณที่ควรมีสีคงที่ คู่มือ Symbol Selector ของ QGIS 3.44 อธิบายตัวแทนค่าสำหรับสีเติม เส้นขอบ ความทึบของทั้งสอง และความกว้างเส้นขอบ

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

ขอบเขตคู่มือนี้: เราเรนเดอร์ SVG ต้นฉบับปกติในเบราว์เซอร์และตรวจ XML ของสำเนาที่ใส่พารามิเตอร์ เราไม่ได้นำสำเนาเข้า QGIS ไวยากรณ์พารามิเตอร์ด้านล่างทำตามเอกสาร 3.44 ส่วนการตรวจปลายทางต้องให้คุณหรือผู้รับงาน GIS ทำในแอป

เก็บไฟล์หลักปกติและสำเนา QGIS

ใช้สองไฟล์ที่มีเรขาคณิตเดียวกัน:

ไฟล์วัตถุประสงค์
marker-master.svgสี SVG ปกติสำหรับแก้ไขและตรวจในเบราว์เซอร์
marker-qgis.svgสำเนาปลายทางที่มีตัวแทนค่าพารามิเตอร์ QGIS ในแอตทริบิวต์ที่เลือก

การแยกนี้ทำให้ภาพต้นฉบับตรวจง่าย ภาพตัวอย่างไฟล์หลักปกติในเบราว์เซอร์พิสูจน์ว่าต้นทางนั้นเรนเดอร์อย่างไรในเบราว์เซอร์ ไม่ได้พิสูจน์ว่าสำเนา QGIS นำเข้าสำเร็จหรือตัวควบคุมทำงานตามที่ตั้งใจ

สัญลักษณ์ต้นฉบับของเรามีตัวหลักสีเขียว ช่องวงกลมโปร่งใส และส่วนตกแต่งข้าวหลามตัดสีทอง มีสองพาธและไม่มีภาพราสเตอร์ฝัง

ภาพต้นทางต้นฉบับ
ภาพเรนเดอร์ในเบราว์เซอร์ของ SVG หมุดสีเขียวปกติที่มีช่องโปร่งใสและส่วนตกแต่งทองคงที่ พร้อมภาพตัวอย่างที่ 24, 32 และ 48 พิกเซล
SVG หลักปกติที่เรนเดอร์ในเบราว์เซอร์ เห็นลายตารางผ่านช่องเปิด นี่ไม่ใช่การทดสอบนำเข้า QGIS หรือพารามิเตอร์สี

สร้างช่องเปิดจริงในต้นทาง

บันทึกเป็น marker-master.svg:

<svg xmlns="http://www.w3.org/2000/svg"
     width="64" height="64" viewBox="0 0 64 64">
  <path id="body" fill="#237466" fill-opacity="1"
        stroke="#173f37" stroke-opacity="1" stroke-width="2"
        fill-rule="evenodd"
        d="M32 5C19 5 10 14 10 27C10 42 32 59 32 59S54 42 54 27C54 14 45 5 32 5Z M32 17A10 10 0 1 0 32 37A10 10 0 1 0 32 17Z"/>
  <path id="accent" fill="#f2c96c" stroke="none"
        d="M32 41L36 46L32 51L28 46Z"/>
</svg>

พาธตัวหลักมีเส้นรอบนอกและเส้นรอบวงกลมด้านใน fill-rule="evenodd" ทำให้บริเวณด้านในเป็นช่องเปิดในโครงสร้างนี้ จึงเห็นพื้นหลังผ่านสัญลักษณ์ แทนการระบายวงกลมขาวปิดด้านบน เอกสารอ้างอิง fill-rule ของ MDN อธิบายว่ากฎกำหนดบริเวณเติมสีอย่างไร

viewBox กำหนดกรอบพิกัดต้นทาง ที่นี่เป็นจัตุรัส 64 หน่วยและมีพื้นที่รอบเส้นขอบ รักษากรอบนี้ให้ตรงกันทั้งสองสำเนา หากสัญลักษณ์ดูเล็กผิดคาดในกรอบ ให้ตรวจเรขาคณิตและขอบว่างก่อนเพิ่มขนาดแสดงผล

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

ใส่พารามิเตอร์ให้ตัวหลักและคงสีส่วนตกแต่ง

ทำสำเนาชื่อ marker-qgis.svg บนพาธที่มี id="body" แทนแอตทริบิวต์สีทั้งห้าด้วยบล็อกนี้:

fill="param(fill) #237466"
fill-opacity="param(fill-opacity) 1"
stroke="param(outline) #173f37"
stroke-opacity="param(outline-opacity) 1"
stroke-width="param(outline-width) 2"

คงข้อมูลพาธและ fill-rule เดิมไว้ ปล่อย fill="#f2c96c" และ stroke="none" ของพาธ accent ตามเดิม

แอตทริบิวต์ SVGตัวแทนค่า QGISสิ่งที่ตั้งใจควบคุม
fillparam(fill)สีเติมตัวหลัก
fill-opacityparam(fill-opacity)ความทึบสีเติมตัวหลัก
strokeparam(outline)สีเส้นขอบตัวหลัก
stroke-opacityparam(outline-opacity)ความทึบเส้นขอบตัวหลัก
stroke-widthparam(outline-width)ความกว้างเส้นขอบตัวหลัก

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

อย่าแทนทุกสีด้วย param(fill) โดยอัตโนมัติ ในงานนี้จะทิ้งความตั้งใจที่ให้ส่วนตกแต่งทองแยกต่างหาก ใช้ตัวแทนค่าร่วมเฉพาะบริเวณที่ควรตอบสนองต่อตัวควบคุมเดียวกัน

ตรวจสำเนาปลายทางก่อนส่งมอบ

การตรวจ XML ของเรายืนยันว่าทั้งสองไฟล์มี viewBox และข้อมูลพาธตรงกัน สำเนา QGIS มีตัวแทนค่าทั้งห้าที่ตั้งใจบน body; accent คงสีเติมทองตายตัว ไม่มีองค์ประกอบ <image> ไฟล์ภายนอก หรือฟอนต์ในตัวอย่างนี้

สำหรับสัญลักษณ์ของคุณ ตรวจว่า:

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

การแยกวิเคราะห์ XML สำเร็จตรวจไวยากรณ์ ไม่ได้รับรองว่าตัวเรนเดอร์ปลายทางรองรับทุกคุณสมบัติ SVG ทำต้นทางให้เรียบง่ายและตรวจในแอปต่อ

ตรวจสัญลักษณ์ในโครงการ QGIS ของผู้รับ

ในตัวเลือกสัญลักษณ์จุด เลือกชั้นสัญลักษณ์ SVG marker แล้วโหลดสำเนาปลายทาง คู่มือ QGIS ตามเวอร์ชันที่ลิงก์ด้านบนอธิบายชนิดนี้และตัวควบคุมที่มี

ก่อนใช้ทั่วแผนที่ ให้ผู้รับตรวจสีเติม เส้นขอบ และความทึบตัวหลักแยกกัน ยืนยันว่าส่วนตกแต่งทองคงสี ตรวจช่องเปิดที่ขนาดสัญลักษณ์ใช้งาน และเปิดโครงการที่แชร์ใหม่โดยมีไฟล์สัญลักษณ์อยู่ด้วย ตรวจแผนที่หรือเลย์เอาต์ที่ส่งออกด้วย เพราะนั่นคือไฟล์ที่ผู้ชมได้รับ

การตรวจเหล่านี้ทำให้งานส่งมอบครบ ภาพเบราว์เซอร์และการตรวจต้นทางของเราครอบคลุมภาพขาเข้า ส่วนโครงการ QGIS จริงกำหนดผลสุดท้าย

เมื่อไอคอนเริ่มจากคลิปอาร์ตราสเตอร์

หากรูปสัญลักษณ์ที่กำหนดเองมีเพียง PNG หรือ JPG เครื่องมือคลิปอาร์ตเป็น SVG ของ PerfectVector สร้างภาพเวกเตอร์สำหรับแก้ไขกลับมาได้ ตรวจพาธ ลดรายละเอียดที่หายที่ขนาดสัญลักษณ์ และแยกตัวหลักจากส่วนตกแต่งสีคงที่ก่อนเพิ่มพารามิเตอร์ QGIS คู่มือเตรียมไอคอนเล็ก อธิบายความชัดเจนต้นทางและการเก็บงานที่ขนาดเล็ก

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

คำถามที่พบบ่อย

ทำไม SVG marker ที่นำเข้าไม่มีสีที่ต้องการให้ควบคุม? ตรวจว่าแอตทริบิวต์สีที่เกี่ยวข้องมีตัวแทนค่าพารามิเตอร์ QGIS หรือไม่ ในตัวอย่างนี้ใส่พารามิเตอร์เฉพาะตัวหลัก ส่วนทองจงใจคงที่ จากนั้นตรวจตัวควบคุมในเวอร์ชัน QGIS ปลายทาง

คงสีตกแต่งหนึ่งสีไว้ได้หรือไม่? ปล่อยสีเติมบริเวณนั้นเป็นค่าที่ระบุชัด และใช้พารามิเตอร์ร่วมเฉพาะบริเวณที่ต้องการควบคุม เก็บส่วนตกแต่งเป็นพาธแยกเพื่อให้ตรวจต้นทางง่าย

แปลงไอคอนเป็นเวกเตอร์แล้วกลายเป็นข้อมูลภูมิศาสตร์หรือไม่? ไม่ มันสร้างภาพสำหรับสัญลักษณ์ ตำแหน่ง พิกัด และความแม่นยำแผนที่ยังขึ้นกับข้อมูลภูมิศาสตร์และกระบวนการ GIS

แหล่งอ้างอิง

  1. QGIS 3.44 — Symbol Selector — พารามิเตอร์ SVG marker และค่าเริ่มต้นที่เลือกใส่ได้
  2. MDN — fill-rule — บริเวณเติมสีและกฎคู่คี่ที่ใช้สร้างช่องเปิด
  3. MDN — viewBox — กรอบพิกัด SVG ที่สำเนาต้นทางทั้งคู่ใช้

สำหรับรูปสัญลักษณ์ราสเตอร์ แปลงคลิปอาร์ตเป็น SVG ตรวจช่องเปิดและรายละเอียดเล็ก แล้วเตรียมสำเนา QGIS แยก เก็บไฟล์หลักปกติ จากนั้นให้ผู้รับทดสอบสีและรูปลักษณ์สัญลักษณ์ในโครงการจริงก่อนส่งมอบ

เพิ่มเติมจากบล็อก

เริ่มต้นด้วย SVG ที่เรียบร้อยขึ้น
และแก้ไขได้ง่ายกว่า