Select By Location ใน ArcGIS

Select By Location ใน ArcGIS นี้ จะเป็นเรื่องการเลือกโดยใช้ตำแหน่งที่ตั้ง หรือ location หรือ การใช้ shapefile คนละเลเยอร์ เป็นเครื่องมือที่ใช้ “เลือก” ตามตำแหน่งที่สัมพันธ์กับเลเยอร์อื่น

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

เรื่องนี้เหมือนจะเป็นเรื่องง่าย ๆ แต่ มีรายละเอียดเกี่ยวกับ “วิธีการเลือก” หลายประการ บางท่านยังไม่เข้าใจว่า intersect จะส่งผลอย่างไรกันแน่ และยังมีความแตกต่างในเรื่อง คุณลักษณะของข้อมูล จุด (point) เส้น (polyline) หรือ รูปหลายเหลี่ยม (polygon) ก็เลยคิดว่าจะทำบทความนี้เพื่ออธิบาย โดยจะเน้นลักษณะการเลือกแบบต่าง ๆ รวมทั้งทำตัวอย่างเพื่อให้เห็นภาพ Select By Location ใน ArcGIS มากขึ้น

โดยตัวอย่างสำหรับเรื่อง Select By Location ใน ArcGIS ขอให้เข้าใจตรงกันว่า

  • โปรเจ็กต์นี้ ตั้งค่าพิกัดเป็น Indian_1975_UTM_Zone_47N (WKID: 24047 Authority: EPSG)
  • ชั้น Target คือเป้าหมายที่ต้องการเลือก (ในตัวอย่างจะใช้สีแดง จะตั้งชื่อเป็น Target_Point, Target_Line และ Target_Polygon)
  • ชั้น Source จะเป็น location หรือสิ่งระบุตำแหน่งที่ต้องการ (ในตัวอย่างจะใช้สีน้ำเงิน จะตั้งชื่อเป็น Source_Point, Source_Line และ Source_Polygon)
  • ในกรณีที่มีการ apply a distance หรือขยายขอบเขต ซึ่งจริง ๆ จะไม่เห็นเส้นขอบเขตนี้เพราะไม่ได้เป็นการสร้างเส้นเพิ่ม แต่เพื่อให้เห็นภาพ จะทำเป็นเส้นประสีน้ำเงินไว้ให้เห็นขอบเขต

Select By Location ใน ArcGIS

สำหรับ Select By Location ใน ArcGIS ทำโดย คลิกที่เมนู Selection > Select By Location เมื่อคลิกแล้วจะเห็นหน้าต่าง ดังนี้

Select By Location ArcGIS
หน้าต่าง Select by Location ใน ArcGIS

เราจะมาดู Select By Location ใน ArcGIS กันทีละขั้น

Selection Methods

หัวข้อบนสุดของหน้าต่าง Select By Location ใน ArcGIS นี้ จะเป็น Selection Methods หรือ วิธีการเลือก เราจะต้องเลือกว่า จะเลือกแบบไหน หมายถึง จะเลือกใหม่ทั้งหมดเลย หรือว่าเลือกเพิ่มจากที่เลือกไว้แล้ว โดยค่ามาตรฐานคือ Select Features from แต่จะมีลูกศรชี้ลงให้เห็นว่า มีตัวเลือกอื่นให้เลือกได้นะจ๊ะ

Selection Methods จะมี 4 ตัวเลือกคือ

Select By Location ArcGIS
Selection Method

Select Features fromเลือกข้อมูลจาก…ตรงนี้ก็คือ การเลือกใหม่ ถ้าเราไม่คลิกเลือกอะไรกับตรงนี้ จะเป็นการเลือกแบบนี้โดยอัตโนมัติ

Add to the Selected Features inเพิ่มเข้าสู่การเลือกที่เลือกไว้แล้วใน…วิธีนี้จะคล้ายกับวิธีแรก แต่เมื่อมีการเลือกใหม่ การเลือกเดิมจะไม่โดยยกเลิก ยังคงโดนเลือกอยู่ โดยจะมีการเลือกใหม่เพิ่มเติมเข้ามา

Remove from the Selected Features inเอาออกจากการเลือกที่เลือกไว้ใน… อันนี้จะเป็นการเลือกเพื่อเอาตัวที่เลือกออกจากที่เลือกไว้ก่อนหน้านั้นแล้ว

Select from the Selected Features inเลือกจากที่เลือกไว้แล้วใน… อันนี้คือ เลือกในเลือก คือ เลือกเฉพาะจากในกลุ่มจากที่มีการเลือกไว้ก่อนหน้านั้นแล้ว.

หวังว่าจะพอแยกได้ว่า แต่ละวิธีใช้เลือกอะไร ตรงนี้จะขอไม่ทำตัวอย่างให้ดูนะจ๊ะ เลือกวิธีการที่ต้องการก็แล้วกันนะจ๊ะ Select By Location ใน ArcGIS กับ QGIS ก็ไม่ต่างกันมากนัก QGIS จะใช้หัวข้อว่า Modify Current Selection by

ในตัวอย่างนี้ จะใช้ Select Features from เท่านั้น

Target Layer (s)

ช่อง Target Layer (s) หน้าต่าง Select By Location ใน ArcGIS นี้ สำหรับกำหนดว่า เราจะเลือกจากเลเยอร์ไหน สามารถเลือกได้มากกว่า 1 เลเยอร์ โดยติ๊กเครื่องหมายที่ชั้นเลเยอร์ที่เราต้องการ

Target Layer

 โปรดสังเกตด้านล่างจะมีตัวเลือกว่า ให้แสดงเฉพาะเลเยอร์ที่เลือกได้ ตรงนี้ในกรณีที่เรามีการล็อกเลเยอร์หรือไม่สามารถแก้ไขปรับเปลี่ยนได้ ก็ไม่ต้องแสดง

Source Layer

Select By Location ใน ArcGIS เราจะเลือกเลเยอร์ที่ต้องการใช้เป็นตัวระบุตำแหน่ง หรือ location ซึ่งในบางกรณี เช่น ในเลเยอร์หนึ่งอาจจะมีหลายฟีเจอร์ แต่เราจะเลือกเฉพาะที่เกี่ยวข้องกับฟีเจอร์ใดฟีเจอร์หนึ่ง (หรือ หลายฟีเจอร์ก็ได้) โดยเมื่อเลือกให้ติ๊กตรง Use Selected Feature เพิ่มเติม

Spatial Selection Method for Target Layer Feature

หัวข้อนี้ นี้คือหัวใจของ Select By Location ใน ArcGIS ว่าเราจะเลือกโดยวิธีการ (หรือถ้าเป็นภาษาของซอฟต์แวร์ จะใช้คำว่า ตัวดำเนินการ หรือ operator) ซึ่งจะมีตัวดำเนินการหลายแบบ ดังนี้

Intersect

กลุ่ม intersect จะมีอยู่ 2 อย่าง คือ Intersect The Source Layer Feature กับ Intersect (3D) The Source Layer Feature (สำหรับเลเยอร์ 3 มิติ)

การเลือกแบบ intersect คือการเลือก target โดยจะเลือกฟีเจอร์ที่มีส่วนใดส่วนหนึ่ง คาบเกี่ยวกับ source

ตัวอย่างที่ 1 จะเลือกฟีเจอร์จาก 3 เลเยอร์ (จุด เส้น และรูปหลายเหลี่ยม) ว่ามีส่วนใดส่วนหนึ่งคาบเกี่ยวกับฟีเจอร์ในชั้นเลเยอร์ Source_Polygon หรือไม่ โดยชั้นข้อมูล Source_Polygon จะเป็นสี่เหลี่ยมสีน้ำเงิน ขั้นตอนคือ

  1. Selection Methods เลือกเป็น Select Features from
  2. Target Layer (s) ติ๊กเลเยอร์ Target_Point Target_line และ Target_Polygon
  3. Source Layer ติ๊กเลเยอร์ Source_Polygon (โปรดสังเกต เลเยอร์ที่เลือกไว้ใน Target Layer (s) จะไม่แสดงในตัวเลือก
  4. Spatial Selection Method for Target Layer Feature เลือก Intersect The Source Layer Feature
  5. กด OK

ผลลัพธ์ จะเป็นการเลือกฟีเจอร์ จากเลเยอร์ Target_Point Target_line และ Target_Polygon ที่มีส่วนใดส่วนหนึ่งทาบทับ หรือแม้แต่สัมผัสที่ขอบเขตของฟีเจอร์ใน เลเยอร์ Source_Polygon อยู่ ฟีเจอร์ที่โดนเลือกจะเป็นสีเขียวออกฟ้า

ตัวอย่างที่ 1 เลือกแบบ intersect

ในเวลาทำงานจริง ชั้นเลเยอร์ที่เป็น source (สำหรับกำหนด location) อาจจะมีหลายฟีเจอร์ แต่เราต้องการเลือกจากเพียงแค่ฟีเจอร์ใดฟีเจอร์หนึ่ง (หรือหลายฟีเจอร์ แต่ไม่ใช่ทั้งหมด) เราสามารถเลือกฟีเจอร์ที่ต้องการไว้ก่อน แล้วกำหนด Use Selected Features ก็ได้

ตัวอย่างที่ 2 คลิกเลือกฟีเจอร์ที่เป็นสี่เหลี่ยม D เอาไว้ก่อน ไปที่ Selection > Select By Location แล้วเลือกเหมือนกับตัวอย่างที่ 1 แต่จะติ๊กตรง Use Selected Features เมื่อคลิกโอเค จะได้ผลลัพธ์ที่ได้ฟีเจอร์ที่คาบเกี่ยวอยู่กับ ฟีเจอร์ D ที่เลือกไว้เท่านั้น เปรียบเทียบกับ ตัวอย่างที่ 1 ที่ไม่ได้เลือก Use Selected Features จะเห็นภาพชัดเจนขึ้น

ตัวอย่างที่ 2 ใช้ intersect แต่เลือก use selected Features

ข้อสังเกต!

Select By Location ใน ArcGIS นี้จะใช้ ระบบพิกัดเป็นตัวอ้างอิง ไม่ใช่ “สายตา” นะจ๊ะ โปรดสังเกต point ที่ทาบทับเส้นด้านล่างของสี่เหลี่ยมสี่น้ำเงิน (D) ในขณะที่จุดหนึ่งโดนเลือก อีกจุดหนึ่งไม่โดนเลือก ถ้าดูผ่าน ๆ ด้วยตา เหมือนจุดจะทาบทับทั้ง 2 จุด แต่ความเป็นจริง “จุด” ที่ไม่โดนเลือก ไม่ได้ทาบทับขอบเขตของสี่เหลี่ยม

จะเห็นว่า จุดแดงไม่ได้สัมผัสกับเส้นขอบสีน้ำเงิน

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

Tip!

ในการทำงาน Select By Location ใน ArcGIS หรือ แม้แต่ QGIS หากเราต้องเลือกใช้ข้อมูลลักษณะนี้ เราอาจจะต้อง “เผื่อ” สักเล็กน้อย เพราะบางทีการดิจิไทซ์ จุด เส้น หรือ รูปหลายเหลี่ยม เหล่านี้อาจจะมีการคลาดเคลื่อนไปบ้าง อย่างเช่น ตัวอย่างของจุดที่ไม่โดนเลือก นั้นมีค่า Y อยู่ที่ 1529799.001 ในขณะที่ ส่วนของเส้นสี่เหลี่ยมที่เป็น source layer จะต้องเป็น 1529800 (ตัวอย่างนี้ project Indian 1975 Zone 47N) ดังนั้นจุดที่อยู่ด้านล่างจึงไม่ได้สัมผัส หรือ ทับเส้น (ซึ่งจะมีผลกับการเลือกวิธีอื่นด้วย เช่น Touch the Boundary of…) ดังนั้น บางทีเราอาจจะต้องขยายขอบเขตการเลือกออกไป โดยไม่จำเป็นต้องสร้างชั้น Buffer แต่เราจะเลือก apply a search distance

ตัวอย่างที่ 3 ทำเหมือน ตัวอย่างที่ 2 แต่เราจะเลือก apply a search distance จะเป็นการขยายขอบเขตออกจาก source layer ตามที่ใส่ตัวเลขกำหนด ซึ่งในตัวอย่างนี้ จะติ๊ก apply a search distance โดยใส่ค่า 5 เมตร แล้วคลิกโอเค (ค่าเมตรนี้อาจจะเลือกเปลี่ยนเป็นอย่างอื่นก็ได้ คลิกที่ลูกศรจะมีตัวเลือกเป็น ฟุต กิโลเมตร นิ้ว ฯลฯ)

ตัวอย่างที่ 2 ใช้ intersect แต่เลือก use selected Features และ Apply a search Distance เป็น 5 เมตร

โดย DataRevol จะทำ buffer ให้เห็นขอบเขตที่ขยายออกมา 5 เมตร ให้เห็นชัด ๆ ด้วยเส้นประสีน้ำเงิน ซึ่งในการทำงานจริงจะไม่มีให้เห็นแบบนี้นะจ๊ะ ผลที่ออกมาจะเห็นว่าการเลือกจะขยายขอบเขตไปจากเดิม ฟีเจอร์ในเลเยอร์ที่เป็น Target ใดที่มีส่วนใดส่วนหนึ่งอยู่ในระยะ 5 จากขอบเขตของ Source_Polygon จะโดนเลือกไปด้วย

Are within a distance of

สำหรับตัวดำเนินการ Are within a distance of The Source Feature กับ Are within a distance of (3d) The Source Feature (สำหรับเลเยอร์ 3 มิติ) ตัวเลือกนี้ จะโดนบังคับให้เลือกระยะ ว่าจะเลือกระยะเท่าไหร่ จาก Source Layer โดยการเลือก จะเป็นการเลือกแบบ intersect คือมีส่วนใดส่วนหนึ่งอยู่ในระยะนั้นจะโดนเลือกผลลัพธ์จะเหมือนกับใช้ intersect ที่เลือก apply a search distance

ตัวอย่างที่ 4

คลิกเลือก ฟีเจอร์ D จาก Source_Poloygon แล้วไปที่ Selection > Select By Location

  1. Selection Methods เลือกเป็น Select Features from
  2. Target Layer (s) ติ๊กเลเยอร์ Target_Point Target_line และ Target_Polygon
  3. Source Layer ติ๊กเลเยอร์ Source_Polygon
  4. เลือก Use Select Feature
  5. Spatial Selection Method for Target Layer Feature เลือก Are within a distance of
  6. ใส่เลข 5 เลือกเป็น Meters (เมตร – คือจะกำหนดว่าในระยะ 5 เมตร)
  7. กด OK
ตัวอย่างที่ 4 Are within a distance of

จะเห็นว่า ผลลัพธ์จะเป็นแบบเดียวกับ ตัวอย่างที่ 3 ที่เลือก ฟีเจอร์ D เอาไว้ก่อน และ Use Select Feature โดยติ๊ก apply a search distance 5 เมตร

Contain

ตัวดำเนินการในกลุ่มนี้คือ Contain the Source layer Feature, Completely contain the Source layer Feature และ Contain (Clementini) the Source layer Feature

คำว่า contain ก็คือ “ครอบคลุม” ถ้าเลือก Contain หมายถึง Target จะต้อง “ครอบคลุม” Source การเลือกแบบนี้ ประเภทของข้อมูลจะมีผลต่อการดำเนินการด้วย

ตัวอย่างที่ 5

  1. Target Layer (s) ติ๊กเลเยอร์ Target_Point Target_line และ Target_Polygon
  2. Source Layer ติ๊กเลเยอร์ Source_Polygon
  3. Spatial Selection Method for Target Layer Feature เลือก Contain the Source layer Feature
  4. กด OK
ตัวอย่างที่ 5 Error เนื่องจากประเภทของข้อมูลไม่สอดคล้อง

สิ่งที่จะขึ้นมาคือ error! เพราะตรรกะง่าย ๆ ก็คือ Target ที่เป็น point กับ line ไม่สามารถ “ครอบคลุม” Source ที่เป็น polygon ได้! ตรงนี้เป็นเรื่องคุณลักษณะของเลเยอร์ที่มีผลต่อตัวดำเนินการ

ตัวอย่างที่ 6 ทำเหมือนตัวอย่างที่ 5 แต่คราวนี้ จะเลือก Target Layer (s) เฉพาะ Target_Polygon ก็จะได้ผลลัพธ์เป็น Target_Polygon โดนเลือก 3 ฟีเจอร์ คือ ฟีเจอร์ 2 (ครอบคลุมฟีเจอร์ B ของ Source_Polygon) ฟีเจอร์ 5 (ครอบคลุมฟีเจอร์ C ของ Source_Polygon) กับ ฟีเจอร์ 7 (ครอบคลุมฟีเจอร์ E ของ Source_Polygon)

ตัวอย่างที่ 6 Contain the Source layer Feature

สำหรับ completely contain the Source layer Feature จะเป็นการระบุเข้มข้นขึ้นมาจาก contain อีกระดับ โดยรูปร่างของ target จะต้องครอบคลุม source ทุกส่วน ไม่ใช่แค่แตะหรือซ้อนทับขอบเขต target นั่นหมายความว่า target feature ที่เป็นจะต้องเป็น polygon เท่านั้น ถึงแม้ว่า Source จะเป็น point ก็ตาม ถ้าเป็นแค่ contain the Source… แค่แตะผ่านขอบเขตก็ได้ (จึงเลือก line ที่ผ่าน point ได้) แต่ completely contain… จะต้องครอบคลุมแบบสมบูรณ์แบบ แตะเส้นขอบไม่ได้เลย

ตัวอย่างที่ 7 จะเลือกเหมือนตัวอย่างที่ 6 แต่เปลี่ยน Spatial Selection Method for Target Layer Feature ให้เป็น completely contain the Source layer Feature

ตัวอย่างที่ 7 Completely Contain the Source layer Feature

จะเห็นว่าครั้งนี้ มีแค่ ฟีเจอร์ 2 เท่านั้นที่โดนเลือก ส่วน ฟีเจอร์ 5 และ 7 ที่เคยถูกเลือกในตัวอย่างที่ 6 ไม่โดนเลือกในตัวอย่างนี้ เพราะ เส้น ไม่ได้ “ครอบคลุมสมบูรณ์แบบ” มีเส้นทาบทับกับขอบเขตฟีเจอร์ใน Source_Polygon เพราะ completely contain จะต้องครอบคลุมแบบสมบูรณ์เท่านั้น คือต้องเกินไปจากขอบเขตของ source

สำหรับ Contain (Clementini) the Source layer Feature ผลลัพธ์จะให้ผลลัพธ์คล้ายกับ Contain

Are Within

ตัวดำเนินการในกลุ่มนี้คือ Are Within the Source layer Feature, Are Completely Within the Source layer Feature และ Within (Clementini) the Source layer Feature

คำว่า within ก็คือ “อยู่ภายใน” ถ้าเลือก within หมายถึง Target จะต้อง “อยู่ภายใน” Source การเลือกแบบนี้ จะตรงข้ามกับ Contain ทุกประการ คือการสลับว่า อะไร อยู่ในอะไร ถ้าเลือก contain หมายถึง Source จะอยู่ใน Target แต่ถ้าเป็น within หมายถึง Target จะอยู่ใน Source นอกนั้นแล้ว คำอธิบายต่าง ๆ เหมือนกับ Contain ทุกประการ

ตัวอย่างที่ 8

  • Target Layer (s) ติ๊กเลเยอร์ Target_Polygon, Target_Line และ Target_Point
  • Source Layer ติ๊กเลเยอร์ Source_Polygon
  • Spatial Selection Method for Target Layer Feature เลือก Are Within the Source layer Feature
ตัวอย่างที่ 8 Are within

ตัวอย่างนี้ จะเลือก Source Layer เป็น Source_Polygon โดยจะเลือก Target ทั้ง 3 เลเยอร์ ตรงนี้อย่างที่บอกข้างต้นว่า จะตรงข้ามกับ Contain นั่นคือ ไม่ว่า target จะเป็นแบบใด จุด เส้น หลายเหลี่ยม ก็สามารถอยู่ในรูปหลายเหลี่ยมได้ (ถ้าเป็น contain source ต้องเป็น point ตัว Target ถึงจะเป็นได้ทุกประเภท)

ก็จะเห็นว่า ฟีเจอร์ประเภทใดก็ตาม เพียงอยู่ในขอบเขตของ Source_Later ก็จะโดนเลือกทั้งสิ้น รวมทั้งจุดหรือเส้นที่สัมผัสขอบเขตของ Source_Polygon ก็จะโดนเลือกด้วย

สำหรับ Are completely within the Source layer Feature จะเหมือนกับ completely contain (แต่ในทางกลับกัน) คือ รูปร่างของ target จะต้องอยู่ใน source ทุกส่วน ไม่ใช่แค่แตะหรือซ้อนทับขอบเขต

ตัวอย่างที่ 9

เลือกเหมือน ตัวอย่างที่ 8 แต่เลือก Spatial Selection Method for Target Layer Feature เป็น Are completely within จะเห็นว่าจะเลือกเฉพาะ Target ที่อยู่ภายใน Source จริง ๆ เท่านั้น คือไม่มีส่วนใดส่วนหนึ่งสัมผัสขอบเขตของ source เลย โปรดสังเกต รูปสี่เหลี่ยม หมายเลข 5 เส้นที่เคยโดนเลือกในฟีเจอร์ B และ จุดที่เคยโดนเลือกใน ฟีเจอร์ D ในตัวอย่างที่ 8 จะไม่โดนเลือกในตอนนี้ เพราะไม่ได้อยู “ภายใน” อย่างสมบูรณ์แบบ

ตัวอย่างที่ 9 Are completely within

Are identical to

สำหรับตัวดำเนินการ identical ของ Select By Location ใน ArcGISนี้ จะใช้สำหรับการหา source กับ target ที่เหมือนกัน เท่ากัน เป็นประเภทเดียวกันเท่านั้น พูดง่าย ๆ คือ เหมือนกันทุกประการ เท่านั้น คือถ้า Source เป็น Point Target ก็ต้องเป็น Point เหมือนกัน (ถ้าคนละประเภทจะขึ้น Error) และอยู่ตำแหน่งเดียวกันเป๊ะ

ตัวอย่างที่ 10

  • Target Layer (s) ติ๊กเลเยอร์ Target_Polygon
  • Source Layer ติ๊กเลเยอร์ Source_Polygon
  • Spatial Selection Method for Target Layer Feature เลือก Are identical to the Source layer Feature
ตัวอย่างที่ 10 Are identical to

จะเลือกเฉพาะที่ทาบทับกันพอดี เท่านั้น! ในตัวอย่างนี้ จะเลือกฟีเจอร์หมายเลข 5 ที่ทาบทับ ฟีเจอร์ C ของ Source_Polygon ได้อย่างสมบูรณ์

Touch the boundary of

Boundary คือ ขอบเขต การใช้ตัวดำเนินการ Touch the boundary ก็คือ Target มีจุดหรือขอบเขต สัมผัสกับขอบเขตของ Source โดยตัวดำเนินการนี้ใช้กับ layer ที่เป็น point ไม่ได้ เพราะมันไม่เป็น boundary (ต้องเป็นรูปร่างที่มีองค์ประกอบเชื่อมต่อกัน 2 จุดขึ้นไป) ดังนั้น ถ้าเลือกตัวดำเนินการนี้ ทั้ง Source และ Target จะต้องเป็น polyline หรือ polygon

ตัวอย่างที่ 11

  • Target Layer (s) ติ๊กเลเยอร์ Target_Polygon และ Target_Line
  • Source Layer ติ๊กเลเยอร์ Source_Polygon
  • Spatial Selection Method for Target Layer Feature เลือก Touch the boundary of the Source layer Feature
ตัวอย่างที่ 11 Touch the boundary of

จะเห็นว่าเมื่อฟีเจอร์ใน Target มีส่วนใดส่วนหนึ่ง สัมผัสขอบเขตของ source (ไม่ใช่พาดผ่าน ต้องสัมผัส – touch) จะโดนเลือกทั้งหมด

Share a line segment with

ตัวดำเนินการนี้ จะคล้าย ๆ กับ Touch the boundary  แต่ว่า target จะต้องมีจุดต่อเนื่อง อย่างน้อย 2 จุดที่สัมผัสหรือทาบทับขอบเขตของตัว Source นั่นคือมี line segment – (ต้องมีจุดเชื่อมโยง 2 จุดขึ้นไป) ในขณะที่ Touch ใช้จุดสัมผัสเพียงแค่จุดเดียวก็ได้ ดังนั้น Target จะเป็น point ไม่ได้ เพราะว่า point เป็นแค่ จุด เพียง จุด เดียว

ตัวอย่างที่ 12

  • Target Layer (s) ติ๊กเลเยอร์ Target_Polygon และ Target_Line
  • Source Layer ติ๊กเลเยอร์ Source_Polygon
  • Spatial Selection Method for Target Layer Feature เลือก Share a line segment with
ตัวอย่างที่ 12 Share a line segment with

โปรดสังเกตความแตกต่างระหว่าง ตัวอย่างที่ 11 (Touch the boundary) กับ ตัวอย่างที่ 12 (Share a line segment with) ตรงฟีเจอร์หมายเลข 10 ซึ่งเป็นรูปสามเหลี่ยม

ในตัวอย่างที่ 11 นั้น ฟีเจอร์หมายเลข 10 โดนเลือกด้วย เพราะมีจุดยอด 1 จุด สัมผัสกับฟีเจอร์ E นั่นคือ Touch the boundary

ในตัวอย่างที่ 12 ฟีเจอร์หมายเลข 10 ไม่โดนเลือก เพราะมีจุด สัมผัสกับฟีเจอร์ E เพียงแค่จุดเดียว ในขณะที่เรากำหนดในตัวอย่างที่ 12 นี้ว่า ใช้ตัวดำเนินการแบบ Share a line segment with เพราะ line segment หมายถึงต้องเป็นเส้น คือมี จุดสองจุดขึ้นไป การสัมผัสเส้นขอบเขตของ source

หรือ ดูตรงเส้นที่ทาบทับฟีเจอร์ A

ในตัวอย่างที่ 11 นั้นเส้นนี้โดนเลือกด้วย เพราะมีจุดยอด 1 จุด สัมผัสกับ ฟีเจอร์ A นั่นคือ Touch the boundary

ในตัวอย่างที่ 12 กลับไม่โดนเลือก เพราะ เส้นนี้ มีจุดเพียงแค่ 2 จุด และ มีอยู่จุดหนึ่งไม่สัมผัสกับ ฟีเจอร์ A ซึ่งการ share line segment จะต้องสัมผัสขอบเขตของ source อย่างน้อย 2 จุด จึงไม่เข้าองค์ประกอบ

 ซึ่งตรงนี้คือความแตกต่างระหว่าง Touch the boundary กับ Share a line Segment

Are crossed by the outline of

ตัวดำเนินการนี้ ถ้าจะอธิบายง่าย ๆ ก็คือ ตัว Source กับ Target จะต้องมี เส้นตัดกัน ใช้คำว่าเส้น ก็หมายความว่า ข้อมูลประเภท point หรือ จุด ไม่สามารถใช้ตัวดำเนินการนี้ได้

ตัวอย่างที่ 13 ใช้ Source_Polygon เป็น Source Layer สำหรับเลือก Target เป็น Target_Polygon กับ Target Line  เลือกวิธีเป็น Are crossed by the outline of the Source layer Feature จะเห็นว่า ฟีเจอร์ที่โดนเลือกคือฟีเจอร์ที่มีเส้นตัดผ่านขอบเขตของ Source layer

ตัวอย่างที่ 13 Are crossed by the outline of

Have their centroid in

Centroid แปลว่า จุดศูนย์กลาง ตัวดำเนินการนี้ จะยึดจุดศูนย์กลางเป็นหลัก โดยให้จุดกึ่งกลาง (ทั้ง point polyline และ polygon) ของ Target อยู่ในขอบเขตของ source หรือแม้แต่จุดศูนย์กลางนั้น สัมผัสขอบเขตของ Source ก็จะโดนเลือกเหมือนกัน

ตัวอย่างที่ 14 ใช้ Source_Polygon เป็น Source Layer สำหรับเลือก Target เป็น Target_Polygon Target Line  และ Target Point เลือกวิธีเป็น Have their centroid in the Source layer Feature จะเห็นว่า ฟีเจอร์ที่โดนเลือกคือฟีเจอร์ที่มีจุดศูนย์กลางอยู่ในฟีเจอร์ของ Source layer หรือแม้แต่จุดศูนย์กลางนั้น สัมผัสขอบเขตของ Source ก็จะโดนเลือกเหมือนกัน

ตัวอย่างที่ 14 Have their centroid in

ทั้งหมดนี้ คือ Select By Location ใน ArcGIS สำหรับการ Select By Location ใน QGIS จะเขียนอีกครั้งหนึ่ง

อ้างอิง Using Select By Location ของ ESRI

ความคิดเห็นของคุณ :)

%d bloggers like this: