Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Babelfish mendukung tipe data Geospasial
Dimulai dengan versi 3.5.0 dan 4.1.0, Babelfish menyertakan dukungan untuk dua tipe data spasial berikut:
-
Jenis data geometri — Tipe data ini dimaksudkan untuk menyimpan data planar atau Euclidean (bumi datar).
-
Jenis data geografi — Tipe data ini dimaksudkan untuk menyimpan data ellipsoidal atau round-earth, seperti koordinat lintang dan bujur GPS.
Tipe data ini memungkinkan penyimpanan dan manipulasi data spasial, tetapi dengan keterbatasan.
Memahami tipe data Geospasial di Babelfish
Tipe data geospasial didukung dalam berbagai objek database seperti tampilan, prosedur, dan tabel.
-
Mendukung tipe data titik 2-D untuk menyimpan data lokasi sebagai titik yang ditentukan oleh garis lintang, bujur, dan Pengidentifikasi Sistem Referensi Spasial (SRID) yang valid.
-
Aplikasi yang terhubung ke Babelfish melalui driver seperti JDBC, ODBC, DOTNET, dan PYTHON dapat memanfaatkan fitur Geospasial ini.
Fungsi tipe data geometri didukung di Babelfish
ST GeomFromText (
geometry_tagged_text
, SRID) - Membuat contoh geometri menggunakan representasi Teks Terkenal (WKT).ST PointFromText (
point_tagged_text
, SRID) - Membuat contoh titik menggunakan representasi WKT.-
Point (X, Y, SRID) - Membuat contoh titik menggunakan nilai float koordinat x dan y.
-
.ST AsText () <geometry_instance>— Mengekstrak representasi WKT dari contoh geometri.
-
.stDistance (other_geometry) <geometry_instance>- Menghitung jarak antara dua contoh geometri.
-
.STX <geometry_instance>— Mengekstrak koordinat X (bujur) untuk contoh geometri.
-
.STY <geometry_instance>— Mengekstrak koordinat Y (lintang) untuk contoh geometri.
Fungsi tipe data geografi yang didukung di Babelfish
-
ST GeomFromText (
geography_tagged_text
, SRID) - Membuat instance geografi menggunakan representasi WKT. -
ST PointFromText (
point_tagged_text
, SRID) - Membuat contoh titik menggunakan representasi WKT. -
Point (Lat, Long, SRID) - Membuat instance titik menggunakan nilai float Latitude dan Longitude.
-
.ST AsText () <geography_instance>— Mengekstrak representasi WKT dari contoh geografi.
-
.stDistance (other_geography) <geography_instance>- Menghitung jarak antara dua contoh geografi.
-
.Lat <geography_instance>— Mengekstrak nilai Latitude untuk contoh geografi.
-
.Long <geography_instance>— Mengekstrak nilai Bujur untuk contoh geografi.
Keterbatasan pada Babelfish untuk tipe data Geospasial
-
Saat ini, Babelfish tidak mendukung fitur yang lebih canggih seperti bendera Z-M untuk instance titik tipe data Geospasial.
-
Jenis geometri selain instance titik saat ini tidak didukung:
LineString
CircularString
CompoundCurve
Polygon
CurvePolygon
MultiPoint
MultiLineString
MultiPolygon
GeometryCollection
Saat ini, pengindeksan spasial tidak didukung untuk tipe data Geospasial.
Hanya fungsi yang terdaftar saat ini didukung untuk tipe data ini. Untuk informasi selengkapnya, lihat Fungsi tipe data geometri didukung di Babelfish dan Fungsi tipe data geografi yang didukung di Babelfish.
Output fungsi STDistance untuk data Geografi mungkin memiliki variasi presisi kecil dibandingkan dengan T-SQL. Hal ini disebabkan implementasi PostGIS yang mendasarinya. Untuk informasi selengkapnya, lihat ST_Distance
Untuk kinerja optimal, gunakan tipe data Geospasial bawaan, tanpa membuat lapisan abstraksi tambahan di Babelfish.
Tip
Meskipun Anda dapat membuat tipe data khusus, tidak disarankan untuk membuatnya di atas data Geospasial. Ini dapat menimbulkan kompleksitas, yang berpotensi mengarah pada perilaku tak terduga karena dukungan yang terbatas.
Dalam Babelfish, nama fungsi Geospasial digunakan sebagai kata kunci dan akan melakukan operasi spasial hanya jika digunakan dengan cara yang dimaksudkan.
Tip
Saat membuat fungsi dan prosedur yang ditentukan pengguna di Babelfish, hindari menggunakan nama yang sama dengan fungsi Geospasial bawaan. Jika Anda memiliki objek database yang ada dengan nama yang sama, gunakan
sp_rename
untuk mengganti nama mereka.