ฉันมีสองสามร้อยรูปร่าง ( polygon
s และmultipolygon
s) แต่ละประกอบด้วยจุดนับหมื่นที่ฉันพยายามเข้าสู่ SQL 2008
น่าเสียดายที่รูปร่างที่ฉันพยายามนำเข้านั้นเป็น "ถนัดขวา" (เส้นรอบวงของแต่ละอันนั้นถูกลากตามเข็มนาฬิกาไปรอบ ๆ จุดที่มี) เซิร์ฟเวอร์ SQL สันนิษฐานว่าเป็นรูปร่าง "ถนัดซ้าย" (ทวนเข็มนาฬิการอบด้านใน) อย่างน้อยสำหรับgeography
ประเภท ซึ่งหมายความว่า SQL ถือว่าฉันพยายามเลือกทั้งโลกยกเว้นรูปร่างของฉัน บางคนอธิบายว่านี่เป็นรูปร่าง "ด้านในออก"
จากMSDNซึ่งน่าผิดหวังไม่ได้บอกว่าจะใช้การวางแหวนแบบใด:
ถ้าเราใช้
geography
ชนิดข้อมูลเพื่อเก็บอินสแตนซ์อวกาศเราจะต้องระบุการวางแนวของวงแหวนและอธิบายตำแหน่งของอินสแตนซ์ได้อย่างถูกต้อง
หากคุณใช้การวางแนววงแหวนที่ไม่ถูกต้องใน SQL 2008 จะเกิดปัญหากับข้อผิดพลาดต่อไปนี้
ข้อผิดพลาด. NET Framework เกิดขึ้นระหว่างการดำเนินการตามขั้นตอนที่ผู้ใช้กำหนดเองหรือ "ภูมิศาสตร์" รวม: Microsoft.SqlServer.Types.GLArgumentException: 24205: อินพุตที่ระบุไม่ได้แสดงอินสแตนซ์ภูมิศาสตร์ที่ถูกต้องเพราะเกินซีกโลกเดียว ตัวอย่างภูมิศาสตร์แต่ละอันต้องอยู่ในซีกโลกเดียว สาเหตุทั่วไปสำหรับข้อผิดพลาดนี้คือรูปหลายเหลี่ยมที่มีการวางแนววงแหวนที่ไม่ถูกต้อง
การนำเข้ารูปทรงgeometry
แทนการใช้geography
งานได้ดี แต่ฉันต้องการใช้geography
ถ้าทำได้
ใน SQL 2012 ดูเหมือนว่าจะไม่สำคัญพอที่จะแก้ไขปัญหานี้ แต่ฉันผูกติดกับปี 2008
ฉันจะแปลงรูปร่างได้อย่างไร