สำหรับทุกคนที่ยังคงมองหาคำตอบนี้โดยไม่ใช้รูปแบบ spatialite ฉันพบสิ่งที่ใช้งานได้
หากคุณมี csv และใช้การเข้าร่วมเพื่อเข้าร่วมกับเลเยอร์เชิงพื้นที่หนึ่งในตัวเลือกของการเข้าร่วมคือการแคชเลเยอร์ คุณสามารถไปที่ตัวเลือกนี้หากคุณไปที่คุณสมบัติของเลเยอร์ของคุณจากนั้นไปที่ข้อมูลที่เข้าร่วมและคลิกแก้ไขการเข้าร่วม หากคุณปิดใช้งานตัวเลือกแคชคุณสามารถโหลดชั้นข้อมูลใหม่หลังจากที่ csv เปลี่ยนไปแล้วเรียกใช้การทาสีใหม่ของแผนที่เพื่อรับมุมมองแผนที่ที่รีเฟรช
คุณสามารถทำการรีโหลดและทาสีใหม่ใน Python Console ก่อนอื่นคุณต้องกำหนดชื่อแผนที่ผ้าใบ csv และเลเยอร์:
mc = iface.mapCanvas()
layer=mc.currentLayer()
csv_layer=mc.currentLayer()
ต้องแน่ใจว่าเลเยอร์ใช้งานได้เมื่อคุณตั้งชื่อพวกมันในคอนโซลเมื่อใช้เมธอด currentLayer (ต้องเป็น 'เลเยอร์ปัจจุบัน')
จากนั้นหากคุณตั้งค่าแคชเป็นปิดสำหรับการเข้าร่วมของคุณคุณสามารถแก้ไข csv จากนั้นใช้คำสั่งสองคำสั่งต่อไปนี้ในคอนโซล Python เพื่อวาดแผนที่ของคุณใหม่:
csv_layer.reload()
layer.triggerRepaint()
สิ่งนี้ใช้ได้สำหรับฉัน แต่ฉันมีข้อมูล 100 แถวเท่านั้น อาจเป็นไปได้ว่าการดำเนินการจะช้าโดยไม่ต้องแคชเมื่อคุณมีชุดข้อมูลที่ใหญ่กว่า