แสดงความคิดเห็นออกแบบสอบถามคำจำกัดความใน ArcGIS Desktop?


10

ฉันใช้ Definition Queries เป็นจำนวนมากในชีวิต GIS ทุกวัน แต่หนึ่งในหลาย ๆ สิ่งที่ฉันพบว่าน่ารำคาญเกี่ยวกับ ArcMap คือการไม่สามารถแสดงความคิดเห็นเกี่ยวกับ Definition Queries ได้ ฉันต้องการมีตัวเลือกนี้เนื่องจากบางครั้งฉันต้องการเปิด / ปิด Definition Query หรือต้องการมีหลายแบบสอบถามใน Shapefile เดียว แต่เพียงครั้งเดียวที่ใช้งานอยู่

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

ดังที่ฉันเข้าใจแล้วแบบสอบถามความหมายจะถูกเขียนใน SQL จะแสดงความคิดเห็นใน SQL ผมเชื่อว่าคุณทั้งสองเริ่มต้นเส้นด้วย: -หรือห้อมล้อมคำสั่งในวงเล็บ: {} ฉันได้ลองทั้งสองอย่างนี้แล้ว:

Original: "DATA_AQUISITION" LIKE 'MISSING XSECTION'
Dashes:   --"DATA_AQUISITION" LIKE 'MISSING XSECTION'
Brackets: {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}

คำสั่งสองรายการสุดท้ายส่งคืนข้อผิดพลาดการแสดงออกของ SQL และจะไม่วาดใน ArcMap ฉันไม่ได้กำลังมองหาโซลูชันการเขียนโปรแกรมเพราะมันจะทำงานได้มากเกินไป


2
ฉันไม่มี ArcGIS ในระบบนี้ที่จะชำระเงิน แต่มีบางอย่างเช่น 'OR 1 = 1' หรือแม้กระทั่ง ObjectID> -1 ใช้งานได้หรือไม่
Devdatta Tengshe

@DevdattaTengshe ที่ใช้งานได้ดีมากออกความคิดเห็นแบบสอบถาม: "OBJECTID" <> -1 OR "DATA_AQUISITION" LIKE 'MISSING XSECTION'นั่นเป็นทางออกที่ดี แต่ฉันกำลังมองหาบางสิ่งที่ดูเหมือนจะเป็นความคิดเห็นที่เกิดขึ้นจริง บางสิ่งที่สามารถทำได้ในทุกภาษาของรหัสที่คุณมีตัวเลือกการค้นหาหลายรายการในบรรทัดที่แตกต่างกันและทุกรายการมีความคิดเห็น ถ้ามันเป็นไปไม่ได้ดังนั้นไม่ว่าจะเป็น แต่ฉันเชื่อว่ามันจะเป็นตัวเลือกที่ยอดเยี่ยมที่จะมี
Cody Brown

คำตอบ:


6

เพียงแค่เดา ​​แต่เหตุผลที่ความเห็นออกไม่ได้อาจเป็นเพราะแบบสอบถามความหมายเป็นเพียงส่วนคำสั่ง WHERE ของคำสั่ง SQL ที่มีขนาดใหญ่สร้างขึ้นภายในโดย ArcGIS เมื่อใดก็ตามที่มันต้องการสอบถามฐานข้อมูลพื้นฐานเช่นการวาดเลเยอร์ . เมื่อคุณเพิ่มอักขระความคิดเห็น ArcGIS ยังคงเพิ่ม WHERE clause และ DB freaks พื้นฐานเนื่องจากไม่ใช่ SQL ที่ถูกต้อง

ในกล่องโต้ตอบตัวสร้างแบบสอบถามจะมีปุ่มโหลดและบันทึก บันทึกสร้างไฟล์. exp ที่คุณสามารถโหลดกลับมาได้โดยใช้ปุ่มโหลด เป็นจำนวนคลิกมากกว่าที่คุณอาจมองหา แต่เป็นบางสิ่ง


นั่นเป็นความจริงที่ว่ามันเป็นเพียงส่วนหนึ่งของแถลงการณ์ที่ใหญ่ขึ้น เป็นไปได้มากที่ DB ประหลาดเมื่อเราเพิ่มความคิดเห็น แต่ฉันรู้ว่ามันเป็นไปได้ในโปรแกรมอื่น ๆ ที่ใช้ SQL เพื่อเพิ่มความคิดเห็นตรงกลางของคำสั่ง การบันทึกและการโหลด. exp เป็นสิ่งที่ฉันเคยใช้มาก่อน แต่อย่างที่คุณบอกว่ามันเป็นการคลิกน้อยกว่าที่ฉันต้องการ ฉันกำลังพยายามลดจำนวนรหัสและไฟล์ที่แนบมากับ MXD แต่ละตัวที่ฉันมีและนั่นจะเพิ่มขึ้นแทน
โคดี้บราวน์

2
SELECT * FROM table WHEREไม่ถูกต้อง SQL คือสิ่งที่ฉันได้รับ จะต้องมีบางสิ่งต่อจากคำหลัก WHERE หรือคำหลัก WHERE จะต้องไม่อยู่ที่นั่นเลย ArcGIS อาจจะเพิ่ม WHERE ถ้ามีอะไรในแบบสอบถามความหมาย
blah238

ฉันลองSELECT * FROM table WHERE "OBJECTID" <> -1 --"DATA_AQUISITION" LIKE 'MISSING XSECTION'แล้วSELECT * FROM table WHERE "OBJECTID" <> -1 {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}ทั้งคู่ส่งผลให้เกิดข้อผิดพลาดเดียวกัน มีบางสิ่งที่ติดตามWHEREแต่ยังไม่สามารถจัดการความคิดเห็นได้
โคดี้บราวน์

1
ฮะ. ไม่ว่าด้วยเหตุผลใดวิธีการแสดงความคิดเห็นอย่างชัดเจนจะไม่ทำงาน
blah238

4
ที่จริงแล้วไวยากรณ์การคอมเม้นท์แบบ C ดูเหมือนว่าจะใช้งานได้จริง ลองใช้ตัวอย่างเช่น: 1 = 1 /*"DATA_AQUISITION" LIKE 'MISSING XSECTION'*/. ทำงานให้ฉันบน Oracle 1 = 1ส่วนหนึ่งเป็นสิ่งจำเป็นโดยใช้เพียงการแสดงความคิดเห็นไม่ทำงาน (หายไปผิดพลาด Expression)
blah238

4

ความคิดเห็นบล็อก / .. / ดูเหมือนว่าจะทำงานได้ตราบใดที่คุณมีบางอย่างในแบบสอบถามแบบจำกัดความหมายของคุณ หากคุณใส่ความคิดเห็นทุกอย่างคุณจะต้องใส่ 1 = 1 ก่อนที่จะแสดงความคิดเห็น

ตัวอย่าง:

ความคิดเห็นทั้งหมดออกมา:

1=1  
/*  
  and ASSIGNMENT_STATUS <> 'Closed' 
  and DEVICE_TYPE = 'device'     
  and ASSIGNED_TO = 'somebody'    
*/

1 ไม่ใส่เครื่องหมายข้อคิดเห็น 2 แสดงความคิดเห็น:

ASSIGNMENT_STATUS <> 'Closed' 
/* 
  and DEVICE_TYPE = 'device'     
  and ASSIGNED_TO = 'somebody'    
*/

2 ไม่ใส่ร้าย 1 ความคิดเห็นออก:

ASSIGNMENT_STATUS <> 'Closed' 
DEVICE_TYPE = 'device'
/*      
  and ASSIGNED_TO = 'somebody'    
*/

เพียงเลื่อน "/ " และ " /" รอบ ๆ


1

XTools pro, โปรแกรมเสริมที่ไม่ใช่ ESRI มีคุณสมบัติที่ช่วยให้สามารถสลับการเปิด / ปิดคำจำกัดความของเลเยอร์ได้ มีประโยชน์มาก.

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


อืมฟังดูดี แต่ XTools ใช้เงินหรือเป็นแอดออนฟรีที่ดีหรือไม่?
โคดี้บราวน์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.