Saya menggunakan kode yang saya tulis untuk Anda (Menyimpan kolom 'Titik' dari ShapeFile ) sebagai titik awal untuk mendapatkan tabel poin. Dari sana:
select geography::STPolyFromText(
'POLYGON((' +
stuff((
select ',' + cast(g.STPointN(t.i).Long as varchar(10)) + ' ' + cast(g.STPointN(t.i).Lat as varchar(10))
from [a]
cross join tally as [t]
where t.i <= g.STNumPoints()
order by i
for xml path('')
), 1, 1, '') + '))'
, 4326)
Kode ini mengasumsikan beberapa hal. Pertama:bahwa poin Anda diurutkan seperti Anda akan mengelilingi batas wilayah. Ini penting. Pikirkan tentang teka-teki connect-the-dots. Untuk mendapatkan gambar yang tepat, Anda harus melakukannya dengan urutan yang benar. Kedua, terkait dengan yang pertama, mereka harus dalam orientasi yang benar. Poligon mengikuti aturan tangan kiri. Artinya, jika Anda menelusuri titik-titik tersebut secara berurutan, Anda mendefinisikan wilayah yang ada di sisi kiri Anda. Jadi, jika Anda menentukan poin dalam urutan terbalik, Anda mendapatkan segalanya kecuali wilayah Anda! Anda akan segera mengetahuinya karena sebelum SQL 2012, Anda dibatasi untuk memiliki wilayah yang sepenuhnya berada di belahan bumi.
Tapi sekarang saya harus bertanya:mengingat pertanyaan yang Anda tanyakan sebelumnya (yang saya tautkan di atas), apakah Anda menerima shapefile dengan poligon di dalamnya? Jika demikian, simpan itu dan selamatkan diri Anda dari sakit kepala untuk merekonstruksinya.