(Menggunakan PostgreSQL 9.1, tanpa menginstal perangkat GIS)
Dengan asumsi saya punya kotak (yang harus selalu berbentuk persegi):
> SELECT box '((0, 0), (1,1))'
"(1,1),(0,0)"
Saya bisa mendapatkan lingkaran yang pas di dalam kotak:
> SELECT circle (box '((0, 0), (1,1))')
"<(0.5,0.5),0.707106781186548>"
dan dengan sedikit bermain-main saya bisa mendapatkan lingkaran yang lebih besar:
> SELECT circle(center(circle(box '((0, 0), (1,1))')), radius(circle(box '((0, 0), (1,1))')) * 2)
"<(0.5,0.5),1.4142135623731>"
tetapi melakukan itu sebagai pernyataan yang sudah disiapkan berarti melewati kotak tersebut dua kali:
"SELECT circle(center(circle(?)), radius(circle(?)) * 2)
yang bukan merupakan pemecah masalah, tapi menurut saya seharusnya ada cara yang 'lebih baik' untuk melakukannya.
Apakah ada cara yang lebih mudah/lebih baik untuk mengubah ukuran lingkaran? Secara khusus, saya ingin sebuah lingkaran dengan pusatnya di tengah kotak, dan jari-jarinya sama dengan setengah panjang diagonal kotak.
(Jika membantu, saya menggunakan operator "Terkandung dalam atau di" ('‹@') untuk mendapatkan kumpulan titik dalam suatu area)
Terima kasih.