Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

STContains pada kolom Geografi

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghapus karakter pertama dari kolom tertentu dalam tabel?

  2. tabel konversi satuan dalam SQL

  3. Simpan file dalam database SQL Server menggunakan .Net MVC3 dengan Entity Framework

  4. Cara Mengubah Tabel di SQL Server dengan Menggunakan Alter Statement - Tutorial SQL Server / T-SQL Part 35

  5. Bagaimana cara terhubung ke database SQL Server melalui PHP?