คำถามติดแท็ก qgis-custom-function

3
การสร้างคุณสมบัติในวิธีอัตโนมัติด้วย QGIS?
ฉันต้องการสร้างรหัสอัตโนมัติในขณะที่สร้างคุณสมบัติใหม่ ดังนั้นทุกครั้งที่ฉันสร้างจุดใหม่ ID ของมันจะเพิ่มขึ้น 1 เช่น: Feature 1: id 1 Feature 2: id 2 Feature 3: id 3 ฉันจะโจมตีสิ่งนี้ได้อย่างไร

2
ใส่สไตล์เลเยอร์เฉพาะโดยใช้หน้ากากหลายเหลี่ยมใน QGIS?
ฉันมีเลเยอร์บรรทัดและเลเยอร์หลายเหลี่ยมใน QGIS: ฉันต้องการจัดแต่งสไตล์ส่วนหนึ่งของเลเยอร์บรรทัดด้านนอกรูปหลายเหลี่ยมโดยใช้สไตล์เดียวและส่วนด้านในใช้สไตล์ที่แตกต่าง: ฉันไม่ต้องการสร้างชุดข้อมูลอนุพันธ์เช่น คลิปเลเยอร์บรรทัดและลักษณะสองส่วน นี่เป็นกรณีที่เรียบง่าย แต่ในโครงการ QGIS ของฉันฉันมีเลเยอร์ 30 ชั้นดังนั้นฉันคิดว่าการผสมเลเยอร์ใด ๆ จะรบกวนเลเยอร์พื้นฐาน เป็นไปได้ไหมที่จะทำอะไรแบบนี้? ฉันไม่ต้องการแสดงเลเยอร์รูปหลายเหลี่ยมมันเป็นเพียงที่นี่เพื่อให้เห็นภาพสิ่งที่ฉันต้องการจะทำ

1
เลื่อนการแสดงบรรทัดที่ทับซ้อนกันใน QGIS หรือไม่
เมื่อจุดทับซ้อนกันมีคุณสมบัตินี้ที่อนุญาตให้แสดงล็อตของพวกเขาแยกกันโดยรอบโดยรอบที่พวกเขาเรียกว่า 'การกำจัดจุด' แต่มันใช้ไม่ได้กับบทละครดังนั้นสำหรับฉันแล้วมันค่อนข้างเป็นไปได้ในเชิงแนวคิดเพื่อให้บรรลุถึงสิ่งที่ต้องการ: ฉันต้องการเห็นเส้นที่แตกต่างกันซึ่งในความเป็นจริงล้วนอยู่ในที่เดียวกัน (ฉันกำลังทำงานในเครือข่ายโทรคมนาคม) วิธีเดียวที่ฉันเห็นในตอนนี้คือการสร้างเส้นที่แตกต่างกันอย่างในภาพด้านบนดังนั้นจึงสร้างข้อผิดพลาดเชิงพื้นที่ ฉันใช้ QGIS 2.14

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

1
ฟังก์ชั่น QGIS-Custom ไม่แสดงใน Field Calculator
ฉันใช้เอสเซนและพยายามที่จะทำตามแอนนิต้า Graser กวดวิชาที่ยอดเยี่ยมแบบเรืองแสงรูปทรง ฉันได้สร้างazimuthฟังก์ชั่นแล้วโหลด แต่ไม่มีอะไรแสดงในแท็บนิพจน์ - ไม่ได้กำหนดเองด้วยค่าเริ่มต้น func! นิพจน์มีอยู่azimuth.pyในรูปแบบ C :\Users\Max\.qgis2\python\expressionsพร้อม.pycไฟล์ที่เกี่ยวข้อง การรีสตาร์ท QGIS นั้นไม่ได้สร้างความแตกต่างเลย

1
การบันทึกฟังก์ชั่น Python ที่กำหนดเองใน QGIS
ฉันจะบันทึกฟังก์ชัน Python ที่กำหนดเองของฉันใน QGIS ได้อย่างไร ฉันต้องการให้ผู้ใช้ช่วยเหลือสำหรับฟังก์ชั่นที่ฉันเขียนให้พวกเขา: ฉันได้ลองเพิ่ม docstring แล้ว: แต่เมื่อใดก็ตามที่ฉันคลิกโหลดข้อผิดพลาดจะปรากฏขึ้น: ข้อความแสดงข้อผิดพลาดแสดงข้อผิดพลาดการเยื้องอย่างชัดเจนซึ่งไม่สอดคล้องกับรหัสจริงของฉัน

2
การแยกข้อความจากฟิลด์สตริงก่อนตัวคั่นแต่ละตัวกับฟิลด์ใหม่
ฉันพยายามที่จะดึงข้อมูลข้อความจากเขตข้อมูลสตริงที่มีข้อความคั่นด้วยจุดและวางไว้ในสาขาใหม่โดยใช้เครื่องคิดเลขฟิลด์ ฉันใช้ฟังก์ชัน python นี้ (นำมาจากวิธีการแยกข้อความก่อน / ใน QGIS? ): from qgis.core import * from qgis.gui import * @qgsfunction(args='auto', group='Custom') def func(value1, feature, parent): return value1.split('.')[0] ส่งคืนข้อความทั้งหมดก่อนจุดแรก ตอนนี้ฉันสงสัยว่าจะเขียนฟังก์ชันเพื่อวางแถวข้อความที่คั่นด้วยแต่ละตัวในฟิลด์แยก ก่อน: หลังจาก:

1
ลงทะเบียน qgsfunction ที่กำหนดเองใน pyqgis
ฉันใช้ pyqgis ในแอปพลิเคชันแบบสแตนด์อโลน ตอนนี้ผมต้องการที่จะสร้างการแสดงออกที่กำหนดเองเพื่อที่จะใช้เป็น FilterExpression ruleBasedRendererV2ในการปกครองของ (ฉันลองใช้โหมดแสดงภาพกับฟังก์ชั่นที่มีอยู่ก่อนหน้าและทุกอย่างทำงานได้ดี!) Custom qgisfunction(bitwise AND-function - เนื่องจากยังไม่มีฟังก์ชั่นดังกล่าว) มีลักษณะดังนี้: from qgis.utils import qgsfunction @qgsfunction(args="auto", group='Python') def bitwise_and(value1, value2, feature, parent): return value1 & value2 ฉันพยายามลงทะเบียนผ่าน: from qgis.core import QgsExpression QgsExpression.registerFunction(bitwise_and) ทดสอบการแสดงออกผ่าน: expressionString = 'bitwise_and(2, 2) = 2' exp = QgsExpression(expressionString) if exp.hasParserError(): print(exp.parserErrorString()) (ให้2=2เสมอTrue) ทำงานหลังจากลงทะเบียนฟังก์ชั่นและล้มเหลวหากไม่ได้ แต่ถึงกระนั้นฉันไม่สามารถใช้การแสดงออกภายในกฎ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.