Anda di halaman 1dari 21

2 Arsitektur

2.1 Model Objek Geometri


Bagian ini menjelaskan model objek untuk geometri. Ini adalah Platform Komputer Terdistribusi yang netral dan
digunakan
Notasi OMT. Model objek untuk geometri ditunjukkan pada Gambar 2.1. Kelas dasar Geometri memiliki
subclass untuk Koleksi Titik, Kurva, Permukaan, dan Geometri. Setiap objek geometrik dikaitkan dengan a
Sistem Referensi Spasial, yang menggambarkan ruang koordinat di mana objek geometrik didefinisikan.
Gambar 2.1 didasarkan pada perluasan Model Geometri yang ditentukan dalam Spesifikasi Abstrak OpenGIS
dengan
kelas koleksi khusus 0, 1 dan dua dimensi bernama MultiPoint, MultiLineString dan
MultiPolygon untuk pemodelan geometri yang terkait dengan koleksi Poin, LineStrings, dan Poligon
masing-masing. MultiCurve dan MultiSurface diperkenalkan sebagai superclasses abstrak di RFP ini
menggeneralisasi antarmuka pengumpulan untuk menangani Curves and Surfaces. Angka tersebut menunjukkan
garis agregasi
antara kelas koleksi daun dan kelas elemen mereka, garis agregasi untuk koleksi non-daun
kelas dijelaskan dalam teks.
Atribut, metode, dan pernyataan untuk setiap kelas geometri dijelaskan di bawah ini. Dalam menjelaskan metode,
ini digunakan untuk merujuk ke penerima metode (objek yang dikirim). Ruang lingkup metode
dan atribut didasarkan pada ruang lingkup RFP1 (SimpleFeatures).

Halaman 14
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-2
MultiPoint
Permukaan
Melengkung
Titik
LinearRing
LineString
Baris
GeometryCollection
SpatialReferenceSystem
Geometri
MultiCurve
MultiLineString
MultiSurface
MultiPolygon
Poligon
1+
1+
1+
1+
2+
Gambar 2.1 Hirarki Kelas Geometri
2.1.1 Geometri
Geometri adalah kelas akar dari hierarki. Geometri adalah kelas abstrak (tidak dapat instantiable).
Subclass Instantiable Geometry yang didefinisikan dalam spesifikasi ini terbatas pada 0, 1 dan dua
objek geometris dimensi yang ada dalam ruang koordinat dua dimensi ( 2 ).
Semua kelas geometri instantiable yang dijelaskan dalam spesifikasi ini didefinisikan sehingga instance yang valid
dari a
kelas geometri ditutup secara topologis (yaitu semua geometri yang didefinisikan termasuk batasnya).
2.1.1.1 Metode Dasar tentang Geometri
Dimensi (): Integer — Dimensi yang melekat pada objek Geometri ini , yang harus kurang dari atau sama
ke dimensi koordinat. Spesifikasi ini terbatas pada geometri dalam koordinat dua dimensi
ruang.
GeometryType (): String —Mengembalikan nama subtipe Geanti yang dapat dipakai yang darinya ini
Contoh geometri adalah anggota. Nama subtipe Geometri yang dapat dipakai dikembalikan sebagai string.
SRID (): Integer — Mengembalikan ID Sistem Referensi Spasial untuk Geometri ini .
Amplop (): Geometri — Kotak batas minimum untuk Geometri ini , dikembalikan sebagai Geometri. Itu
poligon ditentukan oleh titik sudut kotak pembatas ((MINX, MINY), (MAXX, MINY), (MAXX,
MAXY), (MINX, MAXY), (MINX, MINY)).
AsText (): String —Ekspor Geometri ini ke representasi teks Geometry yang terkenal dan spesifik.
Halaman 15
Bab 2
Arsitektur
Halaman 2-3
AsBinary (): Biner — Mengekspor Geometri ini ke representasi biner Geometri yang terkenal dan spesifik.
IsEmpty (): Integer —Returns 1 (TRUE) jika Geometri ini adalah geometri kosong. Jika benar, maka ini
Geometri mewakili set titik kosong,  , untuk ruang koordinat.
IsSimple (): Integer -mengembalikan 1 (TRUE) jika ini Geometry tidak memiliki poin geometris anomali, seperti
self
persimpangan atau singgung diri. Deskripsi masing-masing kelas geometri instantiable akan mencakup spesifik
kondisi yang menyebabkan instance kelas yang akan diklasifikasikan sebagai tidak sederhana.
Batas (): Geometri —Mengembalikan penutupan batas kombinatorial Geometri ini . Itu
batas kombinatorial didefinisikan seperti yang dijelaskan dalam bagian 3.12.3.2 dari [1]. Karena hasil dari fungsi ini
adalah penutupan, dan karenanya ditutup secara topologis, batas yang dihasilkan dapat diwakili menggunakan
primitif geometri representasional seperti yang dibahas dalam [1], bagian 3.12.2.
2.1.1.2 Metode untuk menguji Hubungan Spasial antara objek geometris :
Metode dalam bagian ini didefinisikan dan dijelaskan secara lebih rinci mengikuti deskripsi sub
jenis Geometri.
Equals (anotherGeometry: Geometri): Integer - Pengembalian 1 (TRUE) jika ini Geometri adalah 'spasial sama'
untuk
Geometri lainnya.
Menguraikan (anotherGeometry: Geometri): Integer- Pengembalian 1 (TRUE) jika ini Geometri adalah 'spasial
menguraikan'
dari Geometri lain.
Intersect (anotherGeometry: Geometry): Integer— Mengembalikan 1 (BENAR) jika Geometri ini 'secara spasial
berpotongan'
Geometri lainnya.
Sentuhan (anotherGeometri: Geometri): Integer— Mengembalikan 1 (BENAR) jika Geometri ini 'menyentuh
spasial'
Geometri lainnya.
Crosses (anotherGeometry: Geometry): Integer— Mengembalikan 1 (BENAR) jika Geometri ini 'secara spasial
melintasi'
Geometri lainnya.
Dalam (anotherGeometry: Geometry): Integer - Mengembalikan 1 (BENAR) jika Geometri ini adalah 'spasial di
dalam'
Geometri lainnya.
Berisi (anotherGeometry: Geometry): Integer - Mengembalikan 1 (BENAR) jika Geometri ini 'secara spasial
mengandung'
Geometri lainnya.
Overlaps (anotherGeometry: Geometry): Integer - Mengembalikan 1 (TRUE) jika Geometri ini 'secara spasial
tumpang tindih'
Geometri lainnya.
Berhubungan (anotherGeometry: Geometri, intersectionPatternMatrix: String): Integer- Pengembalian 1 (TRUE)
jika ini
Geometri secara spasial terkait dengan Geometri lain, dengan menguji untuk persimpangan antara Interior,
Batas dan Eksterior dari dua geometri seperti yang ditentukan oleh nilai-nilai di intersectionPatternMatrix.
2.1.1.3 Metode yang mendukung Analisis Spasial
Distance (anotherGeometry: Geometry): Double — Mengembalikan jarak terpendek antara dua titik
dua geometri yang dihitung dalam sistem referensi spasial Geometri ini .

Halaman 16
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-4
Buffer (jarak: Ganda): Geometri — Mengembalikan geometri yang mewakili semua titik yang jaraknya dari
ini Geometri kurang dari atau sama dengan jarak. Perhitungannya ada dalam Sistem Referensi Tata Ruang ini
Geometri.
ConvexHull (): Geometry — Mengembalikan geometri yang mewakili lambung cembung Geometri ini .
Intersection (anotherGeometry: Geometry): Geometry — Mengembalikan geometri yang mewakili set point
persimpangan Geometri ini dengan Geometri yang lain.
Union (anotherGeometry: Geometry): Geometry — Mengembalikan geometri yang mewakili persatuan set point
dari
Geometri ini dengan Geometri yang lain.
Perbedaan (anotherGeometri: Geometri): Geometri — Mengembalikan geometri yang mewakili set titik
Perbedaan Geometri ini dengan Geometri yang lain.
SymDifference (anotherGeometry: Geometry): Geometry — Mengembalikan geometri yang mewakili set point
Perbedaan simetris Geometri ini dengan Geometri yang lain.
2.1.2 Koleksi Geometri
GeometryCollection adalah geometri yang merupakan kumpulan dari 1 atau lebih geometri.
Semua elemen dalam GeometryCollection harus dalam referensi spasial yang sama. Ini juga Tata Ruang
Referensi untuk GeometryCollection.
GeometryCollection tidak menempatkan batasan lain pada elemen-elemennya. Subclass dari GeometryCollection
mungkin
membatasi keanggotaan berdasarkan dimensi dan juga dapat menempatkan kendala lain pada tingkat spasial
tumpang tindih antara elemen.
2.1.2.1 Metode
NumGeometries (): Integer — Mengembalikan jumlah geometri dalam GeometryCollection ini .
GeometryN (N: integer): Geometry — Mengembalikan geometri ke-N di GeometryCollection ini .
2.1.3 Poin
Titik adalah geometri 0 dimensi dan mewakili satu lokasi dalam ruang koordinat. A Point memiliki x-
nilai koordinat dan nilai koordinat y.
Batas suatu Titik adalah himpunan kosong.
2.1.3.1 Metode
X (): Gandakan — Nilai koordinat x untuk Titik ini .
Y (): Ganda — Nilai koordinat-y untuk Titik ini .
2.1.4 MultiPoint
MultiPoint adalah koleksi geometris 0 dimensi. Elemen-elemen dari MultiPoint dibatasi untuk Poin.
Poin tidak terhubung atau dipesan.

Halaman 17
Bab 2
Arsitektur
Halaman 2-5
MultiPoint sederhana jika tidak ada dua Poin dalam MultiPoint yang sama (memiliki nilai koordinat yang identik).
Batas MultiPoint adalah set kosong.
2.1.5 Kurva
Kurva adalah objek geometrik satu dimensi yang biasanya disimpan sebagai urutan titik, dengan subtipe
Kurva menentukan bentuk interpolasi antar titik. Spesifikasi ini hanya mendefinisikan satu subclass
dari Curve, LineString, yang menggunakan interpolasi linier antara titik.
Kurva topologis adalah objek geometris satu dimensi yang merupakan gambar homeomorfik dari nyata,
tertutup, interval D = [a, b] = {x R a <= x <= b} di bawah pemetaan f: [a, b] 2 sebagaimana didefinisikan
dalam [1],
bagian 3.12.7.2.
Kurva sederhana jika tidak melewati titik yang sama dua kali ([1], bagian 3.12.7.3)
cKurva, [a, b] = c.Domain,
c.Isimpel ( x1, x2 (a, b] x1 x2 f (x1) f (x2)) ( x1, x2 [a, b) x1 x2 f (x1) f (x2))
Kurva ditutup jika titik awalnya sama dengan titik akhirnya. ([1], bagian 3.12.7.3)
Batas dari Kurva yang tertutup kosong.
Kurva yang sederhana dan tertutup adalah Cincin.
Batas dari Kurva tidak-tertutup terdiri dari dua titik ujungnya. ([1], bagian 3.12.3.2).
Kurva didefinisikan sebagai ditutup secara topologi.
2.1.5.1 Metode
Panjang (): Ganda — Panjang Kurva ini dalam referensi spasial yang terkait.
StartPoint (): Titik — Titik awal dari Kurva ini .
EndPoint (): Titik — Titik akhir dari Kurva ini .
IsClosed (): Integer-Pengembalian 1 (TRUE) jika ini Curve ditutup (StartPoint () = endpoint ()).
IsRing (): Integer-Pengembalian 1 (TRUE) jika ini Curve ditutup (StartPoint () = endpoint ()) dan ini Curve
sederhana (tidak melewati titik yang sama lebih dari sekali).
2.1.6 LineString, Line, LinearRing
LineString adalah Kurva dengan interpolasi linier antara titik. Setiap pasangan poin berturut-turut mendefinisikan a
segmen garis.
A Line adalah LineString dengan tepat 2 poin.
LinearRing adalah LineString yang tertutup dan sederhana. Kurva pada Gambar 2.2— (3) adalah tertutup
LineString yang merupakan LinearRing. Kurva pada Gambar 2.2— (4) adalah LineString tertutup yang bukan a
LinearRing.

Halaman 18
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-6
se
se
s
e
s
e
(1)
sederhana
(2)
tidak sederhana
(3)
Tutup
sederhana
(4)
Tutup
tidak sederhana
Gambar 2.2 (1) LineString sederhana, (2) LineString non-sederhana, (3) LineString tertutup sederhana (a
LinearRing), (4) LineString tertutup yang tidak sederhana
2.1.6.1 Metode
NumPoints (): Integer — Jumlah poin dalam LineString ini .
PointN (N: Integer): Point — Mengembalikan titik N yang ditentukan dalam Linestring ini .
2.1.7 MultiCurve
MultiCurve adalah GeometryCollection satu dimensi yang unsur-unsurnya adalah Kurva (Gambar 2.3).
MultiCurve adalah kelas non-instantiable dalam spesifikasi ini, ia mendefinisikan seperangkat metode untuk
subkelasnya dan
termasuk untuk alasan ekstensibilitas.
MultiCurve sederhana jika dan hanya jika semua elemennya sederhana, satu-satunya persimpangan di antara
keduanya
elemen terjadi pada titik-titik yang berada di batas kedua elemen.
Batas MultiCurve diperoleh dengan menerapkan aturan serikat 'mod 2': Suatu titik berada dalam batas
dari MultiCurve jika berada dalam batas-batas sejumlah elemen MultiCurve. ([1], bagian
3.12.3.2).
MultiCurve ditutup jika semua elemennya ditutup. Batas dari MultiCurve tertutup selalu
kosong.
MultiCurve didefinisikan sebagai ditutup secara topologi.

Halaman 19
Bab 2
Arsitektur
Halaman 2-7
2.1.7.1 Metode
IsClosed (): Integer-Pengembalian 1 (TRUE) jika ini MultiCurve ditutup (StartPoint () = endpoint () untuk masing-
masing
kurva dalam MultiCurve ini )
Panjang (): Ganda — Panjang MultiCurve ini yang sama dengan jumlah panjang elemen
Kurva.
2.1.8 MultiLineString
MultiLineString adalah MultiCurve yang elemen-elemennya adalah LineStrings.
s2
e2
s1
e1
(2)
tidak sederhana
(1)
sederhana
s
s2
e1
e2
(3)
Tutup
tidak sederhana
s2
e2
s1
e1
Gambar 2.3 (1) MultiLineString sederhana, (2) MultiLineString sederhana dengan 2 elemen, (3) a
nonLineString, ditutup dengan 2 elemen
Batas-batas untuk MultiLineStrings pada Gambar 2.3 adalah (1)  {s1, e2}, (2)  {s1, e1}, (3) 
2.1.9 Permukaan
Permukaan adalah objek geometris dua dimensi.
Spesifikasi Abstrak OpenGIS mendefinisikan Permukaan sederhana sebagai terdiri dari 'tambalan' tunggal
terkait dengan satu 'batas luar' dan 0 atau lebih 'batas dalam'. Permukaan sederhana dalam tiga
ruang dimensi adalah permukaan isomorfik ke planar. Permukaan polihedral dibentuk dengan 'menjahit' bersama
permukaan sederhana di sepanjang batasnya, permukaan polihedral dalam ruang tiga dimensi mungkin tidak planar
keseluruhan ([1], bagian 3.12.9.1, 3.12.9.3).
Batas Permukaan sederhana adalah seperangkat kurva tertutup yang sesuai dengan 'eksterior' dan 'interiornya
batas-batas. ([1], bagian 3.12.9.4).

Halaman 20
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-8
Satu-satunya subclass Instantiable dari Surface yang didefinisikan dalam spesifikasi ini, Polygon, adalah Surface
yang sederhana
planar.
2.1.9.1 Metode
Area (): Ganda — Area pada Permukaan ini , sebagaimana diukur dalam sistem referensi spasial Permukaan ini .
Centroid (): Point — Centroid matematis untuk Permukaan ini sebagai Point. Hasilnya tidak dijamin
berada di Permukaan ini .
PointOnSurface (): Point — Poin dijamin berada di Permukaan ini .
2.1.10 Poligon
Poligon adalah Permukaan planar, ditentukan oleh 1 batas luar dan 0 atau lebih batas dalam. Setiap
batas interior mendefinisikan lubang di Poligon.
Penegasan untuk poligon (aturan yang menentukan poligon yang valid) adalah:
1. Poligon tertutup secara topologi.
2. Batas Polygon terdiri dari seperangkat LinearRings yang membentuk eksterior dan interiornya
batas-batas.
3. Tidak ada dua cincin di salib batas, cincin di batas Polygon dapat berpotongan di suatu Titik tetapi
hanya sebagai garis singgung:
PPolygon,c1, c2P.Boundary (), c1c2,p, qPoint, p, qc1, pq, [pc2qc2] 
4. Poligon mungkin tidak memiliki garis potong, paku atau tusukan:
PPoligon, P = Penutupan (Interior (P))
5. Interior setiap Polygon adalah set titik terhubung.
6. Eksterior Poligon dengan 1 lubang atau lebih tidak terhubung. Setiap lubang mendefinisikan terhubung
komponen Eksterior.
Dalam pernyataan di atas, Interior, Penutupan dan Eksterior memiliki definisi topologi standar. Itu
kombinasi 1 dan 3 menjadikan Polygon sebagai kumpulan titik Tertutup Reguler.
Poligon adalah geometri sederhana.
Gambar 2.4 menunjukkan beberapa contoh Poligon. Gambar 2.5 menunjukkan beberapa contoh objek geometris itu
melanggar pernyataan di atas dan tidak dapat diwakili sebagai contoh tunggal Polygon. Objek yang ditampilkan di
Gambar 2.5— (1) dan 2.5— (4) dapat direpresentasikan sebagai 2 Poligon terpisah.

Halaman 21
Bab 2
Arsitektur
Halaman 2-9
(1)
(2)
(3)
Gambar 2.4 Contoh Poligon dengan 1, 2 dan 3 dering masing-masing.
(1)
(2)
(3)
(4)
Gambar 2.5 Contoh objek yang tidak dapat direpresentasikan sebagai satu instance dari Polygon. (1) dan
(4) dapat
direpresentasikan sebagai 2 Poligon terpisah.

Halaman 22
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-10
2.1.10.1
Metode
ExteriorRing (): LineString — Mengembalikan cincin eksterior Polygon ini .
NumInteriorRing (): Integer — Mengembalikan jumlah cincin interior di Polygon ini .
InteriorRingN (N: Integer): LineString — Mengembalikan cincin interior Nth untuk Polygon ini sebagai
LineString.
2.1.11 MultiSurface
MultiSurface adalah koleksi geometris dua dimensi yang elemennya permukaan. Interior dari
dua permukaan dalam MultiSurface mungkin tidak berpotongan. Batas-batas dari dua elemen dalam a
MultiSurface dapat berpotongan paling banyak pada jumlah titik yang terbatas.
MultiSurface adalah kelas non-instantiable dalam spesifikasi ini, ini mendefinisikan seperangkat metode untuk
subkelasnya
dan termasuk untuk alasan perpanjangan. Subclass Instantiable MultiSurface adalah MultiPolygon,
sesuai dengan koleksi Poligon.
2.1.11.1
Metode
Area (): Ganda — Area MultiSurface ini , sebagaimana diukur dalam sistem referensi spasial ini
MultiSurface.
Centroid (): Point — Centroid matematis untuk MultiSurface ini . Hasilnya tidak dijamin aktif
MultiSurface ini .
PointOnSurface (): Point — A Point dijamin berada di MultiSurface ini .
2.1.12 MultiPolygon
MultiPolygon adalah MultiSurface yang elemen-elemennya adalah Polygons ..
Pernyataan untuk MultiPolygons adalah:
1. Interior dari 2 Poligon yang merupakan elemen dari MultiPolygon mungkin tidak berpotongan.
MMultiPoligon,Pi, PjM. Geometri (), ij, Interior (Pi)Interior (Pj) =
2. Batas dari setiap 2 Poligon yang merupakan elemen dari MultiPolygon tidak boleh 'menyeberang' dan dapat
menyentuh
hanya dalam jumlah terbatas poin. (Perhatikan bahwa persimpangan dicegah dengan pernyataan 1 di atas).
MMultiPolygon,Pi, PjM.Geometries (),ciPi.Boundaries (), cjPj.Boundaries ()
ci cj = {p1,… .., pk | pi Poin, 1 <= i <= k}
3. MultiPolygon didefinisikan sebagai ditutup secara topologi.
4. MultiPolygon mungkin tidak memiliki garis potong, paku atau tusukan, MultiPolygon adalah titik Reguler,
Tertutup
set:
MMultiPolygon, M = Penutupan (Interior (M))
5. Bagian dalam MultiPolygon dengan lebih dari 1 Poligon tidak terhubung, jumlah yang terhubung
komponen interior MultiPolygon sama dengan jumlah Poligon dalam MultiPolygon.

Halaman 23
Bab 2
Arsitektur
Halaman 2-11
Batas MultiPolygon adalah seperangkat kurva tertutup (LineStrings) yang sesuai dengan batas
elemennya Poligon. Setiap Kurva di batas MultiPolygon berada dalam batas tepat 1
elemen Polygon, dan setiap Kurva di batas elemen Polygon ada di batas
MultiPolygon.
Pembaca disebut karya oleh Worboys, et. al (7, 8) dan Clementini, et. al (5, 6) untuk mengerjakan
definisi dan spesifikasi MultiPolygons.
Gambar 2.6 menunjukkan 4 contoh MultiPolygons yang valid dengan masing-masing 1, 3, 2 dan 2 elemen poligon.
(3)
(2)
(1)
(4)
Gambar 2.6 Contoh MultiPolygons
Gambar 2.7 menunjukkan contoh objek geometris yang tidak dapat direpresentasikan sebagai instance
MultiPolygons tunggal.
Perhatikan bahwa subkelas Permukaan bernama Permukaan Polihedral yang dijelaskan dalam [1], adalah permukaan
bersegi yang
segi adalah Poligon. Permukaan Polyhedral bukan MultiPolygon karena melanggar aturan untuk
MultiPolygons bahwa batas-batas elemen Poligon hanya bersilangan pada sejumlah titik tertentu.

Halaman 24
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-12
(1)
(2)
(3)
Gambar 2.7 objek geometris tidak representable sebagai satu contoh dari MultiPolygon.
2.1.13 Operator Relasional
Bagian ini memberikan spesifikasi yang lebih rinci dari operator relasional pada geometri.
2.1.13.1
Latar Belakang
Operator Relasional adalah metode Boolean yang digunakan untuk menguji keberadaan yang ditentukan
hubungan spasial topologis antara dua geometri. Hubungan spasial topologis antara keduanya
objek geometris telah menjadi topik penelitian yang luas dalam literatur [4,5,6,7,8,9,10]. Pendekatan dasar
untuk membandingkan dua geometri adalah untuk membuat tes berpasangan-bijaksana dari persimpangan antara
Interiors,
Batas dan Eksterior dari dua geometri dan untuk mengklasifikasikan hubungan antara kedua geometri
berdasarkan entri dalam matriks 'persimpangan' yang dihasilkan.
Konsep Interior, Batas dan Eksterior didefinisikan dengan baik dalam topologi umum. Untuk ulasan tentang ini
konsep pengguna disebut Egenhofer, et al [4]. Konsep-konsep ini dapat diterapkan dalam mendefinisikan tata ruang
hubungan antara objek dua dimensi dalam ruang dua dimensi ( 2 ). Untuk menerapkan
konsep Interior, Batas dan Eksterior untuk objek dimensi 1 dan 0 dalam 2 , topologi kombinasi
Pendekatan harus diterapkan. ([1], bagian. 3.12.3.2). Pendekatan ini didasarkan pada definisi yang diterima dari
batas, interior dan eksterior untuk kompleks sederhana [12] dan menghasilkan hasil berikut:
Batas geometri adalah seperangkat geometri dari dimensi bawah berikutnya. Batas suatu Titik atau
MultiPoint adalah set kosong. Batas dari Kurva tidak tertutup terdiri dari dua Poin ujungnya, yaitu
batas Kurva tertutup kosong. Batas MultiCurve terdiri dari Poin-poin yang ada di
batas angka ganjil dari Kurva elemennya. Batas dari suatu Poligon terdiri dari set Cincinnya.
Batas MultiPolygon terdiri dari himpunan Rings of Polygons-nya. Batas suatu arbitrer
koleksi geometri yang interiornya terpisah terdiri dari geometri yang diambil dari batas
elemen geometri dengan penerapan aturan serikat 'mod 2' ([1], bagian 3.12.3.2).

Halaman 25
Bab 2
Arsitektur
Halaman 2-13
Domain dari objek geometris yang dipertimbangkan adalah mereka yang ditutup secara topologi. Bagian dalam a
geometri terdiri dari titik-titik yang tersisa ketika titik batas dihapus. Eksterior a
geometri terdiri dari titik-titik yang tidak berada di bagian dalam atau batas.
Studi tentang hubungan antara dua geometri baik dari dimensi maksimal dalam 1 dan 2 dipertimbangkan
persimpangan berpasangan antara set Interior dan Batas dan mengarah ke definisi 4 titik-temu
Model [8]. Model diperluas untuk mempertimbangkan bagian luar dari input geometri, menghasilkan sembilan
model persimpangan [11] dan selanjutnya diperluas untuk memasukkan informasi tentang dimensi hasil
persimpangan berpasangan menghasilkan model persimpangan sembilan yang diperpanjang secara dimensi
[5]. Ekstensi ini
memungkinkan model untuk mengekspresikan hubungan spasial antara titik, garis, dan area, termasuk area dengan
lubang
dan jalur dan area multi komponen [6].
2.1.13.2
Model Sembilan-Perpanjangan Diperpanjang Dimensi
Diberi geometri a, misalkan I (a) , B (a) dan E (a) mewakili Interior, Batas dan Eksterior masing-masing.
Perpotongan dua I (a) , B (a) dan E (a) dapat menghasilkan seperangkat geometri, x , dari dimensi campuran.
Misalnya, persimpangan batas dua poligon dapat terdiri dari titik dan garis. Membiarkan
redup (x) mengembalikan dimensi maksimum (-1, 0, 1, atau 2) dari geometri dalam x , dengan nilai numerik -1
sesuai dengan redup ( ) . Matriks sembilan-persimpangan yang diperluas secara dimensi (DE-9IM) kemudian
memiliki bentuk:
Pedalaman
Batas
Bagian luar
Pedalaman
redup (I (a) I (b))
redup (I (a) B (b))
redup (I (a) E (b))
Batas
redup (B (a) I (b))
redup (B (a) B (b))
redup (B (a) E (b))
Bagian luar
redup (E (a) I (b))
redup (E (a) B (b))
redup (E (a) E (b))
Tabel 2.1 The DE-9IM
Untuk geometri input reguler dan tertutup secara topologi, menghitung dimensi dari persimpangan
Set Interior, Batas dan Eksterior tidak memiliki prasyarat perhitungan eksplisit dan
representasi dari set ini. Misalnya untuk menghitung jika interior dua poligon tertutup biasa
berpotongan, dan untuk memastikan dimensi persimpangan ini, tidak perlu untuk secara eksplisit mewakili
bagian dalam dua poligon (yang merupakan set topologis terbuka) sebagai geometri terpisah. Dalam kebanyakan
kasus
dimensi nilai persimpangan pada sel sangat dibatasi mengingat jenis kedua geometri. Untuk
contoh, dalam kasus Line-Area, satu-satunya nilai yang mungkin untuk sel Interior-Interior diambil dari {-1, 1}
dan dalam kasus Area-Area, satu-satunya nilai yang mungkin untuk sel Interior-Interior diambil dari {-1, 2}. Di
kasus-kasus seperti itu tidak diperlukan untuk mendeteksi persimpangan.
Gambar 2.8 menunjukkan contoh DE-9IM untuk kasus di mana a dan b adalah dua poligon yang tumpang tindih.

Halaman 26
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-14
Pedalaman
Batas
Bagian luar
Pedalaman
2
1
2
Batas
1
0
1
Bagian luar
2
1
2
(Sebuah)
(b)
Gambar 2.8 Contoh instance dan DE-9IM-nya
Predikat hubungan spasial dapat dirumuskan pada dua geometri yang digunakan sebagai input matriks pola
mewakili set nilai yang dapat diterima untuk DE-9IM untuk dua geometri. Jika hubungan spasial
antara dua geometri sesuai dengan salah satu nilai yang dapat diterima sebagaimana diwakili oleh pola
matriks, maka predikat mengembalikan BENAR.
Matriks pola terdiri dari satu set nilai pola 9, satu untuk setiap sel dalam matriks. Pola yang mungkin-
nilai p adalah {T, F, *, 0, 1, 2} dan artinya untuk setiap sel di mana x adalah set persimpangan untuk sel adalah
sebagai berikut:
p = T => redup (x) {0, 1, 2} , yaitu x 
p = F => redup (x) = -1 , yaitu x = 
p = * => redup (x) {-1, 0, 1, 2} , yaitu Don't Care
p = 0 => redup (x) = 0
p = 1 => redup (x) = 1
p = 2 => redup (x) = 2
Matriks pola dapat direpresentasikan sebagai larik atau daftar sembilan karakter dalam urutan utama baris. Sebagai
contoh fragmen kode berikut dapat digunakan untuk menguji 'Tumpang tindih' antara dua area:
char * overlapMatrix = 'T * T *** T **';
Geometri * a, b;
Boolean b = a-> Relate (b, overlapMatrix);

Halaman 27
Bab 2
Arsitektur
Halaman 2-15
2.1.13.3
Dinamakan Predasi Hubungan Spasial berdasarkan DE-9IM
Predikat Relate yang didasarkan pada matriks pola memiliki keuntungan yang dapat diuji klien untuk jumlah besar
hubungan spasial dan fine tune hubungan tertentu yang sedang diuji. Ini memiliki kelemahan
adalah blok penyusun tingkat bawah dan tidak memiliki padanan bahasa alami yang sesuai. Pengguna
sistem yang diusulkan mencakup pengembang TI yang menggunakan API COM dari bahasa seperti Visual Basic,
dan
pengguna SQL interaktif yang mungkin ingin, misalnya, untuk memilih semua fitur 'spasial dalam' poligon kueri ,
selain untuk pengembang GIS yang lebih canggih 'canggih'.
Untuk memenuhi kebutuhan pengguna tersebut, serangkaian predikat hubungan spasial yang telah ditentukan di
[5,6]
untuk DE-9IM. Lima predikat tersebut bernama Disjoint, Touches, Crosses, Within dan Overlaps. Itu
definisi predikat ini [5,6] diberikan di bawah ini. Dalam definisi ini istilah P digunakan untuk merujuk ke 0
dimensi geometri (Poin dan MultiPoint), L digunakan untuk merujuk pada geometri satu dimensi
(LineStrings dan MultiLineStrings) dan A digunakan untuk merujuk pada geometri dua dimensi (Poligon dan
MultiPolygons).
Menguraikan
Mengingat dua (topologi tertutup) geometri a dan b ,
a.Disjoint (b) a b = 
Dinyatakan dalam hal DE-9IM:
a.Disjoint (b) (I (a) I (b) = ) (I (a) B (b) = ) (B (a) I (b) = ) ( B (a) B (b) = )
a.Hubungkan (b, 'FF * FF ****')
Menyentuh
Hubungan Touches antara dua geometri a dan b berlaku untuk grup A / A, L / L, L / A, P / A dan P / L dari
hubungan tetapi tidak dengan kelompok P / P. Ini didefinisikan sebagai:
a.Sentuh (b) (I (a) I (b) = ) (a b) 
Dinyatakan dalam hal DE-9IM:
a.Sentuh (b) (I (a) I (b) = ) ((B (a) I (b) ) (I (a) B (b) ) (B (a) B (b) ))
a.Relate (b, 'FT *******')a.Relate (b, 'F ** T *****')a.Relate (b, 'F *** T **** ')
Gambar 2.9 menunjukkan beberapa contoh relasi Touches.

Halaman 28
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-16
Poligon / Poligon
Polygon / LineString
Poligon / Titik
LineString / Point
LineString / LineString
(Sebuah)
(b)
1
2
1
2
(Sebuah)
(b)
Gambar 2.9 Contoh hubungan Touches
Persilangan
Relasi Crosses berlaku untuk situasi P / L, P / A, L / L dan L / A. Ini didefinisikan sebagai:
a.Crosses (b) (redup (I (a) I (b)) <max (redup (I (a)), redup (I (b)))) (a b a) ( a b b)
Dinyatakan dalam hal DE-9IM:
Kasus yang P, b L atau kasus yang P, b A atau kasus yang L, b A :
a.Crosses (b) (I (a) I (b) ) (I (a) E (b) ) a.Relate (b, 'T * T ***** * ')
Huruf a L, b L :
a.Crosses (b) redup (I (a) I (b)) = 0 a.Relate (b, '0 ********');
Gambar 2.10 menunjukkan beberapa contoh relasi Crosses.

Halaman 29
Bab 2
Arsitektur
Halaman 2-17
Polygon / LineString
LineString / LineString
Gambar 2.10 Contoh hubungan Crosses
Dalam
Relasi Within didefinisikan sebagai:
a.Dalam (b) (a b = a) (I (a) I (b) )
Dinyatakan dalam hal DE-9IM:
a.Dalam (b) (I (a) I (b) ) (I (a) E (b) = ) (B (a) E (b) = )) a.Hubungkan (b, 'T * F ** F
***')
Gambar 2.11 menunjukkan beberapa contoh relasi Within.

Halaman 30
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-18
Poligon / Poligon
Polygon / LineString
Poligon / Titik
LineString / LineString
Gambar 2.11 Contoh hubungan Within
Tumpang tindih
Relasi Tumpang tindih didefinisikan untuk situasi A / A, L / L dan P / P.
Ini didefinisikan sebagai:
A.Overlaps (b) (redup (I (a)) = redup (I (b)) = redup (I (a) I (b))) (a b a) (a b b)
Dinyatakan dalam hal DE-9IM:
Kasus yang P, b P atau kasus yang A, b A :
A.Overlaps (b) (I (a) I (b) ) (I (a) E (b) ) (E (a) I (b) ) a .Hapus (b, 'T * T *** T
**')
Huruf a L, b L :
A.Overlaps (b) (redup (I (a) I (b) = 1) (I (a) E (b) ) (E (a) I (b) ) a.Hubungkan (b, '1 *
T *** T **')
Gambar 2.12 menunjukkan beberapa contoh hubungan Overlaps.

Halaman 31
Bab 2
Arsitektur
Halaman 2-19
Poligon / Poligon
LineString / LineString
s1
s2
e1
e2
Gambar 2.12 Contoh hubungan Overlaps
Predikat nama tambahan berikut juga ditentukan untuk kenyamanan pengguna:
Mengandung
a. Berisi (b) b. Dalam (a)
Persimpangan
a.Intersects (b) a.Disjoint (b)
Berdasarkan operator di atas metode berikut didefinisikan pada Geometri:
Equals (anotherGeometry: Geometri): Integer-Pengembalian 1 (TRUE) jika ini Geometri adalah 'spasial sama'
untuk
Geometri lainnya.
Menguraikan (anotherGeometry: Geometri): Integer- Pengembalian 1 (TRUE) jika ini Geometri adalah 'spasial
menguraikan'
dari Geometri lain.
Intersect (anotherGeometry: Geometry): Integer— Mengembalikan 1 (BENAR) jika Geometri ini 'secara spasial
berpotongan'
Geometri lainnya.
Sentuhan (anotherGeometri: Geometri): Integer— Mengembalikan 1 (BENAR) jika Geometri ini 'menyentuh
spasial'
Geometri lainnya.
Crosses (anotherGeometry: Geometry): Integer— Mengembalikan 1 (BENAR) jika Geometri ini 'secara spasial
melintasi'
Geometri lainnya.

Halaman 32
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-20
Di dalam (anotherGeometry: Geometry): Integer— Mengembalikan 1 (TRUE) jika Geometri ini adalah 'spasial di
dalam'
Geometri lainnya.
Berisi (anotherGeometry: Geometry): Integer— Mengembalikan 1 (TRUE) jika Geometri ini 'secara spasial
mengandung'
Geometri lainnya.
Overlaps (anotherGeometry: Geometry): Integer— Mengembalikan 1 (TRUE) jika Geometri ini 'secara spasial
tumpang tindih'
Geometri lainnya.
Berhubungan (anotherGeometry: Geometri, intersectionPatternMatrix: String): Integer- Pengembalian 1 (TRUE)
jika ini
Geometri secara spasial terkait dengan Geometri lain, dengan menguji untuk persimpangan antara Interior,
Batas dan Eksterior dari dua geometri.
2.2 Arsitektur — SQL92 Implementasi Tabel Fitur
Sebuah SQL92 pelaksanaan OpenGIS sederhana geospasial koleksi fitur mendefinisikan skema untuk penyimpanan
tabel fitur, geometri dan informasi sistem referensi spasial. The SQL92 pelaksanaan tidak tidak
mendefinisikan fungsi SQL untuk akses, pemeliharaan, atau pengindeksan geometri, karena fungsi-fungsi ini tidak
bisa
diimplementasikan secara seragam di seluruh sistem basis data menggunakan standar SQL92.
Gambar di bawah ini menjelaskan skema basis data yang diperlukan untuk mendukung data fitur sederhana
OpenGIS
model. Tabel atau tampilan fitur berhubungan dengan kelas fitur OpenGIS. Setiap tampilan fitur mengandung
beberapa
jumlah fitur yang direpresentasikan sebagai baris dalam tampilan. Setiap fitur berisi sejumlah geometris
nilai atribut direpresentasikan sebagai kolom dalam tampilan fitur. Setiap kolom geometris dalam tampilan fitur
adalah
terkait dengan tampilan atau tabel geometrik tertentu yang berisi contoh geometri dalam satu spasial
sistem referensi. Korespondensi antara instance fitur dan instance geometri adalah
dicapai melalui kunci asing yang disimpan di kolom geometri tabel fitur. Ini asing
referensi kunci GID primary key dari tabel geometri.
GEOMETRY_COLUMNS
F_TABLE_CATALOG
F_TABLE_SCHEMA
F_TABLE_NAME
F_GEOMETRY_COLUMN
G_TABLE_CATALOG
G_TABLE_SCHEMA
G_TABLE_NAME
STORAGE_TYPE
GEOMETRY_TYPE
COORD_DIMENSION
MAX_PPR
SRID
SPATIAL_REFERENCE_SYSTEMS
SRID
AUTH_NAME
AUTH_SRID
SRTEXT
GEOMETRY_COLUMNS
GID
ESEQ
TIPE E
SEQ
X1
Y1
...
...
X <MAX_PPR>
Y <MAX_PPR>
GEOMETRY_COLUMNS
GID
XMIN
YMIN
XMAX
YMAX
WKB_GEOMETRY
Tabel Fitur / Tampilan
<Attribut>>
GID (Kolom Geometri)
<Attribut>>
atau
Gambar 2.13 Skema untuk tabel fitur di bawah SQL92

Halaman 33
Bab 2
Arsitektur
Halaman 2-21
Bergantung pada jenis penyimpanan yang ditentukan oleh metadata geometri, instance Geometri harus
disimpan sebagai array dari nilai koordinat atau sebagai nilai biner menggunakan OpenGIS yang dikenal dengan
baik
Representasi Biner untuk Geometri. Dalam kasus sebelumnya, tipe numerik SQL digunakan untuk koordinat
dan fungsi sisi klien diperlukan untuk membangun objek geometri OpenGIS dari koordinat yang diambil
nilai numerik. Dalam kasus terakhir, klien dapat memberi makan representasi biner terkenal yang diambil secara
langsung
ke pabrik Geometry dari lingkungan komputasi sisi klien (misalnya, OLE / COM atau CORBA
pabrik geometri) atau pilih untuk mengakses nilai koordinat individu dengan membongkar yang terkenal
perwakilan.
2.2.1 Tabel Fitur Tampilan Metadata
Tabel fitur adalah setiap tabel yang memiliki 1 atau lebih referensi kunci asing ke tabel atau tampilan
geometri. Sekumpulan dari
tabel fitur dalam database dapat ditentukan menggunakan aturan di atas dari TABLES,
REFERENTIAL_CONSTRAINTS dan COLUMNS tampilan metadata di SQL92
INFORMATION_SCHEMA. Set tabel fitur juga dapat ditentukan dengan mengeluarkan kueri di atas
GEOMETRY_COLUMNS tampilan metadata yang dijelaskan di bawah ini.
2.2.2 Kolom Geometri Tampilan Metadata
Setiap kolom geometri akan diwakili sebagai baris dalam tampilan metadata KOLOM standar di
SQL92 INFORMATION_SCHEMA. Namun, Sistem Referensi Spasial bukan bagian standar dari
SQL92 INFORMATION_SCHEMA. Untuk mewakili informasi ini kami memperkenalkan tambahan
tampilan metadata bernama GEOMETRY_COLUMNS.
Tabel atau tampilan GEOMETRY_COLUMNS terdiri dari satu baris untuk setiap kolom geometri dalam database.
Data yang disimpan untuk setiap kolom geometri meliputi:

identitas tabel fitur yang menjadi anggota,

ID sistem referensi spasial,

jenis geometri untuk kolom,

dimensi koordinat untuk kolom,

identitas tabel geometri yang menyimpan instansnya, dan

informasi yang diperlukan untuk menavigasi tabel geometri dalam kasus penyimpanan geometri yang dinormalisasi.
2.2.3 Tampilan Informasi Sistem Referensi Spasial
Setiap kolom geometri dikaitkan dengan Sistem Referensi Tata Ruang. Sistem Referensi Tata Ruang
mengidentifikasi sistem koordinat untuk semua geometri yang disimpan dalam kolom, dan memberi makna pada
numerik
mengoordinasikan nilai untuk setiap instance geometri yang disimpan dalam kolom. Contoh Spatial yang biasa
digunakan
Sistem Referensi meliputi 'Latitude Longitude', dan 'UTM Zone 10'.
Tabel SPATIAL_REFERENCE_SYSTEMS menyimpan informasi tentang setiap Sistem Referensi Spasial di
data. Kolom dari tabel ini adalah Pengidentifikasi Sistem Referensi Tata Ruang (SRID), Tata Ruang
Nama Otoritas Sistem Referensi (AUTH_NAME), Sistem Referensi Spasial Spesifik Otoritas
Identifier (AUTH_SRID) dan deskripsi Teks Terkenal dari Sistem Referensi Tata Ruang
(SRTEXT). Pengidentifikasi Sistem Referensi Spasial (SRID) merupakan kunci integer unik untuk Spasial
Sistem Referensi dalam database.

Halaman 34
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-22
Interoperabilitas antara klien dicapai melalui kolom SRTEXT yang menyimpan Teks Terkenal
representasi untuk Sistem Referensi Tata Ruang seperti yang dijelaskan dalam Bagian 3.4.
2.2.4 Tabel Fitur dan Tampilan
Fitur adalah objek dengan atribut geometris [1]. Fitur disimpan sebagai baris dalam tabel, masing-masing geometris
atribut adalah referensi kunci asing ke tabel atau tampilan geometri. Hubungan antara Fitur didefinisikan
sebagai referensi KUNCI ASING antara tabel fitur.
2.2.5 Tampilan Geometri dan Elemen Geometris
Ada dua implementasi untuk menyimpan geometri di SQL92: menggunakan SQL92 geometri yang dinormalisasi
skema, dan menggunakan skema SQL92 biner geometri. Skema geometri biner menggunakan terkenal
Representasi Biner untuk Geometri (WKBGeometry) dijelaskan pada bagian 3.3. Geometri dinormalisasi
implementasi mendefinisikan tabel SQL92 lebar tetap seperti contoh pada Gambar 2.14. Masing-masing primitif
elemen dalam geometri didistribusikan ke sejumlah baris yang berdekatan dalam tabel yang dipesan oleh a
nomor urut (SEQ), dan diidentifikasi oleh tipe primitif (ETYPE). Setiap geometri diidentifikasi oleh kunci
(GID), terdiri dari kumpulan elemen yang diberi nomor oleh urutan elemen (ESEQ).
Aturan untuk representasi entitas geometrik dalam skema SQL92 dinormalisasi didefinisikan sebagai berikut:

ETYPE menunjuk tipe geometri.

Geometri mungkin memiliki banyak elemen. Nilai ESEQ mengidentifikasi elemen individual.

Suatu elemen dapat dibangun dari beberapa bagian (baris). Baris dan urutannya adalah
diidentifikasi oleh nilai SEQ.

Poligon dapat berisi lubang, seperti yang dijelaskan dalam model objek geometri.

Cincin poligon harus ditutup ketika dirakit dari daftar bagian yang dipesan. Nilai SEQ menunjuk
bagian pesanan.

Pasangan koordinat yang tidak digunakan harus disetel ke Nil dalam set lengkap (baik X dan Y). Ini satu-satunya
cara untuk mengidentifikasi akhir daftar koordinat.

Untuk geometri yang melanjutkan ke baris tambahan (seperti yang didefinisikan oleh urutan elemen konstan
angka atau ESEQ) titik terakhir dari satu baris sama dengan titik pertama dari baris berikutnya.

Tidak ada batasan jumlah elemen dalam geometri, atau jumlah baris dalam suatu elemen.

Halaman 35
Bab 2
Arsitektur
Halaman 2-23
GID
ESEQ
TIPE E
SEQ
X0
Y0
X1
Y1
X2
Y2
X3
Y3
X4
Y4
1
1
3
1
0
0
0
30
30
30
30
0
0
0
1
2
3
1
10
10
10
20
20
20
20
10
10
10
2
1
3
1
30
0
30
30
60
30
60
0
30
0
2
2
3
1
40
5
40
20
45
20
45
15
50
15
2
2
3
2
50
15
50
5
40
5
Nol
Nol
Nol
Nol
3
1
3
1
0
30
0
60
30
60
30
30
0
30
4
1
3
1
30
30
30
60
60
60
60
30
30
30
(40,5)
(40,20)
(45,20)
(45,15)
(50,15)
(50,5)
SEQ 2
SEQ 1
ESEQ 2
ESEQ 1
GID 1
GID 2
GID 3
GID 4
(0,0)
(0,30)
(0,60)
(60,0)
(60,30)
(60,60)
(30,0)
(30,60)

Gambar 2.14 Contoh tabel geometri untuk Polygon Geometry menggunakan SQL
Implementasi geometri biner diilustrasikan pada Tabel 2.2, dan menggunakan GID yang sama sebagai kunci, tetapi
disimpan
geometri menggunakan Representasi Biner Terkenal untuk Geometri (WKBGeometry) dijelaskan dalam
bagian 3.3. Tabel geometri termasuk persegi panjang pembatas minimum untuk geometri dan juga
WKBGeometri untuk geometri. Ini memungkinkan pembangunan indeks spasial tanpa mengakses yang sebenarnya
struktur geometri, jika diinginkan.
GID
XMIN
YMIN
XMAX
YMAX
GEOMETRI
1
0
0
30
30
<WKBGeometry>
2
30
0
60
30
<WKBGeometry>
3
0
30
30
60
<WKBGeometry>
4
30
30
60
60
<WKBGeometry>
Tabel 2.2 Contoh tabel geometri untuk Geometri Poligon di atas menggunakan Binary yang Terkenal
Representasi untuk Geometri.
2.2.6 Catatan tentang tipe data SQL92
Ada berbagai cara untuk menyimpan nilai yang sama dalam basis data relasional. Misalnya, biasanya ada
beberapa cara untuk menyimpan angka. Dalam spesifikasi ini, penggunaan alternatif penyimpanan tidak
dimaksudkan
mengikat. Karena jenis penyimpanan kolom apa pun tersedia di kamus data, dan operator casting tersebut
antara jenis yang serupa tersedia, implementasi tertentu dapat menggunakan format penyimpanan alternatif
selama operasi casting tidak akan menimbulkan kesulitan.

Halaman 36
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-24
2.2.7 Catatan tentang Akses ODBC ke Nilai Geometri yang disimpan dalam bentuk Biner.
ODBC menyediakan mekanisme standar untuk mengikat nilai karakter, angka dan data biner.
Bagian ini menjelaskan proses pengambilan nilai geometri untuk kasus penyimpanan biner
alternatif dipilih.
Kolom WKB_GEOMETRY dalam tabel geometri untuk permukaan kolom geometri di ODBC sebagai salah satu
tipe data SQL biner ODBC (SQL_BINARY, SQL_VARBINARY, atau SQL_LONGVARBINARY).
Aplikasi mengikat ke kolom ini menggunakan tipe data ODBC 2.0 C SQL_C_BINARY.
Misalnya, aplikasi akan menggunakan nilai SQL_C_BINARY untuk parameter fCType dari
SQLBindCol (atau SQLGetData) untuk menggambarkan buffer data aplikasi yang akan menerima yang diambil
Nilai data geometri. Demikian pula, parameter dinamis yang nilainya Geometri akan dijelaskan menggunakan
nilai SQL_C_BINARY untuk parameter fCType dari SQLBindParameter.
Ini memungkinkan nilai-nilai biner diambil dan dimasukkan ke dalam tabel geometri.
2.3 Arsitektur — SQL92 dengan Implementasi Fitur Tipe Geometri
Tabel
2.3.1 Tabel Fitur Tampilan Metadata
Tabel fitur adalah setiap tabel yang memiliki satu atau lebih kolom yang Tipe SQLnya diambil dari himpunan
Geometri Jenis SQL yang didefinisikan dalam bagian 3.2.3. Set tabel fitur dalam database dapat ditentukan
dari pandangan metadata TABLES dan COLUMNS di SQL92 INFORMATION_SCHEMA. Sekumpulan dari
tabel fitur juga dapat ditentukan dengan menanyakan tampilan metadata GEOMETRY_COLUMNS sebagai
dijelaskan di bawah ini.
2.3.2 Kolom Geometri Tampilan Metadata
Setiap kolom geometri akan diwakili sebagai baris dalam tampilan metadata KOLOM standar di
SQL92 INFORMATION_SCHEMA. Namun, Sistem Referensi Spasial bukan bagian standar dari
SQL92 INFORMATION_SCHEMA. Untuk mewakili informasi ini kami memperkenalkan tambahan
tampilan metadata bernama GEOMETRY_COLUMNS.
Tabel atau tampilan GEOMETRY_COLUMNS terdiri dari satu baris untuk setiap kolom geometri dalam database.
Data yang disimpan untuk setiap kolom geometri termasuk identitas tabel fitur yang menjadi anggotanya,
ID sistem referensi spasial, jenis geometri untuk kolom, dan dimensi koordinat.
Kolom dalam tampilan metadata GEOMETRY_COLUMNS untuk SQL92 dengan Tipe Geometri
lingkungan adalah bagian dari kolom dalam tampilan GEOMETRY_COLUMNS yang ditentukan untuk SQL92
lingkungan Hidup.
2.3.3 Pandangan Informasi Sistem Referensi Spasial
Setiap kolom geometri dikaitkan dengan Sistem Referensi Tata Ruang. Sistem Referensi Tata Ruang
mengidentifikasi sistem koordinat untuk semua geometri yang disimpan dalam kolom, dan memberi makna pada
numerik
mengoordinasikan nilai untuk setiap instance geometri yang disimpan dalam kolom. Contoh Spatial yang biasa
digunakan
Sistem Referensi meliputi 'Latitude Longitude', dan 'UTM Zone 10'.
Tabel SPATIAL_REFERENCE_SYSTEMS menyimpan informasi tentang setiap Sistem Referensi Spasial di
data. Kolom dari tabel ini adalah Pengidentifikasi Sistem Referensi Tata Ruang (SRID), Tata Ruang

Halaman 37
Bab 2
Arsitektur
Halaman 2-25
Nama Otoritas Sistem Referensi (AUTH_NAME), Sistem Referensi Spasial Spesifik Otoritas
Identifier (AUTH_SRID) dan deskripsi Teks Terkenal dari Sistem Referensi Tata Ruang
(SRTEXT). Pengidentifikasi Sistem Referensi Spasial (SRID) merupakan kunci integer unik untuk Spasial
Sistem Referensi dalam database.
Interoperabilitas antara klien dicapai melalui kolom SRTEXT yang menyimpan Teks Terkenal
representasi untuk Sistem Referensi Tata Ruang seperti yang dijelaskan dalam bagian 3.4.
Tampilan informasi sistem referensi spasial untuk SQL92 dengan implementasi tipe geometri adalah
identik dengan Tampilan Informasi Sistem Referensi Spasial untuk implementasi SQL92 .
2.3.4 Tabel Fitur dan Tampilan
Fitur adalah objek dengan atribut geometris [1]. Fitur disimpan dalam tabel, setiap atribut geometris adalah
disimpan dalam kolom geometris yang tipenya diambil dari himpunan Jenis Geometri SQL yang dijelaskan dalam
bagian 3.2.3. Hubungan antara Fitur didefinisikan sebagai referensi KUNCI ASING antara fitur
meja.
2.3.5 Informasi Latar Belakang tentang Tipe Data SQL Abstrak
Istilah Abstract Data Type (ADT) mengacu pada tipe data yang memperluas sistem tipe SQL.
Jenis ADT dapat digunakan untuk menentukan jenis kolom untuk tabel, ini memungkinkan nilai yang disimpan
dalam kolom a
tabel menjadi instance dari ADT.
Fungsi SQL dapat dideklarasikan untuk mengambil nilai ADT sebagai argumen, dan mengembalikan nilai ADT
sebagai hasilnya.
Sebuah ADT dapat didefinisikan sebagai subtipe dari ADT lain, disebut sebagai supertype-nya. Ini memungkinkan
sebuah instance
subtipe yang akan disimpan di kolom mana pun di mana instance dari supertype diharapkan dan memungkinkan
contoh subtipe yang akan digunakan sebagai argumen atau mengembalikan nilai dalam setiap fungsi SQL yang
dideklarasikan
gunakan tipe super sebagai argumen atau nilai balik.
Definisi ADT di atas adalah berbasis nilai, dan ADT berbasis nilai dengan properti di atas didefinisikan
sebagai bagian dari draft standar SQL3 saat ini.
Implementasi SQL yang mendukung Tipe Data Abstrak juga dapat mendukung konsep Referensi
Abstraksi Tipe Data contoh yang disimpan sebagai baris dalam tabel yang tipenya sesuai dengan tipe
Tipe Data Abstrak. Istilah RowType dan Referensi ke RowType juga digunakan untuk menggambarkan tipe-tipe
tersebut.
Konsep Tipe di atas yang mendukung tabel yang barisnya adalah instance dari Tipe dan dukungan itu
Referensi untuk Ketikkan instance juga merupakan bagian dari konsep standar SQL3 saat ini.
Spesifikasi ini memungkinkan Tipe Geometri untuk diimplementasikan sebagai Tipe berbasis nilai murni atau
sebagai Tipe
yang mendukung Referensi persisten.
2.3.6 Ruang Lingkup spesifikasi Jenis Geometri OpenGIS ini
Spesifikasi ini tidak berusaha untuk melakukan standarisasi dan tidak bergantung pada bagian mana pun dari
mekanisme tersebut oleh
Jenis yang ditambahkan dan dipelihara di lingkungan SQL termasuk

Sintaks dan fungsionalitas disediakan untuk mendefinisikan tipe

Sintaks dan fungsionalitas disediakan untuk mendefinisikan fungsi SQL

Penyimpanan fisik instance type dalam database

Halaman 38
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-26

Terminologi spesifik yang digunakan untuk merujuk pada jenis, misalnya, ADT.
Spesifikasi ini memang distandarisasi:

Nama dan definisi geometrik dari OpenGIS SQL Types for Geometry.

Nama, tanda tangan, dan definisi geometris dari Fungsi OpenGIS SQL untuk Geometri.
Jenis-jenis untuk geometri didefinisikan dalam istilah kotak hitam , yaitu semua akses ke informasi tentang jenis
geometri
contohnya adalah melalui fungsi SQL. Tidak ada upaya untuk membedakan fungsi yang dapat mengakses tipe
atribut instance (seperti dimensi instance geometri) dari fungsi yang dapat menghitung nilai
diberi contoh tipe (seperti centroid dari poligon). Secara khusus, implementasi SQL3 ini
spesifikasi akan bebas untuk menominasikan set fungsi sebagai metode pengamat pada atribut dari suatu
Abstrak Tipe Data dalam SQL3 selama tanda tangan dari fungsi SQL yang dijelaskan dalam spesifikasi ini
dipertahankan.
Spesifikasi ini tidak menempatkan persyaratan apa pun tentang kapan atau bagaimana atau siapa yang
mendefinisikan Tipe Geometri. Di
khususnya, sistem yang sesuai dapat dikirimkan ke pengguna basis data dengan sekumpulan Jenis Geometri dan
Fungsi sudah dibangun ke server RDBMS, atau dengan himpunan Jenis dan Fungsi Geometri yang disediakan
kepada pengguna basis data sebagai ekstensi yang dimuat secara dinamis ke server RDBMS atau dengan cara lain
tidak
disebutkan dalam spesifikasi ini.
2.3.7 Hirarki Tipe Geometri SQL
SQL Geometry Type diorganisasikan ke dalam hierarki tipe berdasarkan Open GeIS GIS Model dan
ditunjukkan pada gambar di bawah ini.
MultiPoint
Permukaan
Melengkung
Titik
LineString
GeometryCollection
Geometri
MultiCurve
MultiLineString
MultiSurface
MultiPolygon
Poligon

Gambar 2.15 Hirarki Tipe Geometri SQL

Halaman 39
Bab 2
Arsitektur
Halaman 2-27
Tipe root, bernama Geometry, memiliki subtipe untuk Point, Curve, Area dan GeometryCollection. SEBUAH
GeometryCollection adalah Geometri yang merupakan kumpulan Geometri yang mungkin heterogen. MultiPoint,
MultiCurve dan MultiSurface adalah subtipe spesifik GeometryCollection yang digunakan untuk mengelola secara
homogen
koleksi Poin, Kurva, dan Permukaan. Tipe geometris 0 dimensi adalah Point dan MultiPoint.
Jenis geometris satu dimensi adalah Kurva dan MultiCurve bersama dengan subkelasnya. Dua-
dimensi geometris adalah Permukaan dan MultiSurface bersama dengan subclass mereka.
Fungsi SQL didefinisikan untuk membuat instance dari tipe-tipe di atas yang diberikan tekstual atau biner yang
terkenal
representasi tipe. Fungsi SQL yang didefinisikan pada tipe mengimplementasikan metode yang dijelaskan dalam
Model Geometri bagian 2.1.
2.3.8 Nilai Geometri dan Sistem Referensi Spasial
Untuk memodelkan informasi Sistem Referensi Spasial setiap nilai geometri dalam SQL92 dengan
Implementasi Jenis Geometri dikaitkan dengan Sistem Referensi Spasial. Menangkap asosiasi ini
pada tingkat nilai geometri individu memungkinkan nilai geometri literal yang belum menjadi bagian dari kolom
dalam database, untuk dikaitkan dengan Sistem Referensi Tata Ruang. Contoh nilai geometri tersebut adalah
nilai geometri yang digunakan sebagai parameter untuk kueri spasial atau nilai geometri yang merupakan bagian
dari sisipan
pernyataan. Menangkap asosiasi ini pada tingkat nilai geometri individual juga memungkinkan fungsi-fungsi itu
ambil dua nilai geometri untuk memeriksa sistem referensi spasial yang kompatibel.
Nilai geometri dikaitkan dengan Sistem Referensi Spasial dengan menyimpan Sistem Referensi Spasial
Identity (SRID) untuk Sistem Referensi Spasial sebagai bagian dari nilai geometri. Sebagaimana dijelaskan dalam
Sistem Referensi Spasial Pandangan metadata, setiap Sistem Referensi Spasial dalam database diidentifikasi oleh a
nilai unik dari SRID.
SRID untuk geometri diberikan padanya pada waktu konstruksi. Ini memungkinkan SQL92 dengan Geometri
Jenis implementasi untuk memastikan itu
1. nilai-nilai geometri yang dimasukkan ke dalam kolom geometri cocok dengan Sistem Referensi Tata Ruang
dideklarasikan untuk kolom geometri
2. kueri yang secara spasial menggabungkan kolom dari tabel yang berbeda beroperasi pada kolom geometri dengan
yang kompatibel
Sistem Referensi Tata Ruang.
Jika salah satu dari kondisi ini dilanggar, kesalahan SQL waktu berjalan dihasilkan. Ini spasial yang kompatibel
pemeriksaan sistem referensi tidak dimungkinkan dalam implementasi SQL92 .
Fungsi SRID, didefinisikan pada tipe Geometri, mengembalikan SRID integer dari nilai geometri.
Dalam semua operasi pada tipe Geometri, perhitungan geometrik harus dilakukan dalam sistem referensi spasial
dari objek geometris pertama. Objek yang dikembalikan harus dalam sistem referensi spasial dari geometrik pertama
objek kecuali secara eksplisit dinyatakan sebaliknya.
Sebelum geometri dapat dibangun dan dimasukkan ke dalam tabel, baris yang sesuai untuk SRID-nya harus
ada di tabel SPATIAL_REFERENCE_SYSTEMS, kalau tidak konstruksi geometri akan gagal. Kapan
mendefinisikan tabel, batasan pemeriksaan SQL dapat digunakan untuk menegakkan aturan bahwa semua geometri
dalam geometri
kolom memiliki SRID yang sama dengan yang ditentukan untuk kolom dalam tabel GEOMETRY_COLUMNS. Itu
contoh berikut menunjukkan definisi tabel, bernama Negara, dengan dua kolom bernama Nama dan
Geometri dari jenis VARCHAR dan POLYGON masing-masing.
BUAT Negara TABEL (
Nama
VARCHAR (200) BUKAN KUNCI UTAMA,
Lokasi
Polygon TIDAK NULL,

Halaman 40
Spesifikasi Fitur Sederhana OpenGIS untuk SQL, Revisi1.1
Halaman 2-28
CONSTRAINT spatial_reference
PERIKSA (SRID (Geometri) di (PILIH SRID dari GEOMETRY_COLUMNS di mana
F_TABLE_CATALOG = <catalog> dan F_TABLE_SCHEMA = <schema> dan
F_TABLE_NAME = 'Negara' dan F_GEOMETRY_COLUMN = 'Lokasi'))
)
Kami berharap sebagian besar implementasi akan menggunakan Prosedur Tersimpan yang serupa dengan yang
ditunjukkan di bawah ini untuk
tujuan menambah dan menjatuhkan kolom geometri ke dan dari tabel fitur.
Kolom AddGeometry ( FEATURE_TABLE_CATALOG, FEATURE_TABLE_SCHEMA, FEATURE_TABLE_NAME,
Prosedur GEOMETRY_COLUMN_NAME, SRID ) akan:
1. memastikan bahwa entri untuk SRID ada di tabel SPATIAL_REFERENCE_SYSTEMS.
2. tambahkan entri ke tabel GEOMETRY_COLUMNS yang menyimpan SRID untuk kolom geometri.
3. menambahkan kolom geometri ke meja fitur menggunakan SQL ALTER TABLE pernyataan
4. tambahkan Kendala Pemeriksaan Referensi Spasial ke tabel fitur
Kolom DropGeometry ( FEATURE_TABLE_CATALOG, FEATURE_TABLE_SCHEMA,
FEATURE_TABLE_NAME, GEOMETRY_COLUMN_NAME ) prosedur tersimpan akan:
1. jatuhkan referensi spasial Periksa Kendala pada tabel fitur
2. lepaskan entri dari tabel GEOMETRY_COLUMNS
3. jatuhkan kolom geometri dari tabel fitur
2.3.9 Akses ODBC ke Nilai Geometri dalam SQL dengan kasus Jenis Geometri
Data spasial diakses menggunakan bahasa query SQL yang diperluas dengan fungsi SQL pada Tipe Geometri
seperti yang dijelaskan pada bagian 3.2.3. SQL melewati kemampuan ODBC memungkinkan klien untuk melewati
ini atau
pernyataan SQL tambahan yang berisi ekstensi SQL khusus RDBMS ke server. (Aplikasi adalah
bebas mengirim pernyataan SQL apa pun ke RDBMS bahkan jika pernyataan itu tidak dijelaskan dalam ODBC
tingkat kesesuaian).
Kolom geometri diimplementasikan menggunakan tipe data Geometri yang dijelaskan di atas.
Aplikasi GIS akan dapat menentukan keberadaan kolom Geometri berdasarkan data Geometri
ketik atau salah satu subtipe menggunakan satu atau lebih teknik pemrograman ODBC berikut:
Fungsi SQLTypeInfo dapat digunakan untuk menentukan TYPE_NAME dan yang mendasarinya
SQL_DATA_TYPE dari ODBC SQL Type.
Fungsi katalog SQLColumns dapat digunakan untuk menentukan TYPE_NAME dan yang mendasarinya
SQL_DATA_TYPE dari kolom dalam tabel.
Fungsi SQLDescribeCol dan SQLColAttributes dapat digunakan untuk menentukan tipe data kolom dan
deskripsi.
Aplikasi klien ODBC menggunakan salah satu dari dua fungsi SQL
GeomFromText ([dalam] String, [dalam] Integer): Geometri , atau

Halaman 41
Bab 2
Arsitektur
Halaman 2-29
GeomFromWKB (di Binary, di Integer): Geometri
atau jenis spesifik versi mereka (misalnya, PolygonFromText dan PolygonFromWKB) untuk lulus geometri
nilai ke dalam database dari aplikasi klien yang mewakili mereka menggunakan teks yang terkenal atau
representasi biner yang terkenal.
The argumen input ke fungsi di atas adalah standar ODBC tipe data karakter, biner dan integer
(SQL_C_CHAR, SQL_C_BINARY, SQL_C_INTEGER) dan klien mengikat parameter ini menggunakan
metode pengikatan ODBC standar.
Aplikasi klien ODBC menggunakan salah satu dari dua fungsi SQL
AsText (di Geometri) : String, atau
AsBinary (di Geometri): Biner
untuk mengekstrak nilai-nilai geometri dari database sebagai teks atau nilai-nilai biner yang terkenal.
The keluaran argumen ke fungsi di atas adalah standar ODBC karakter dan tipe data biner
(SQL_C_CHAR, SQL_C_BINARY) dan klien mengikat parameter ini menggunakan standar ODBC mengikat
metode.
Fungsi SQL di atas dijelaskan di bagian 3.2.8 dan 3.2.9

Anda mungkin juga menyukai