PH LC – MySQL vi phn m rng h tr cho OpenGIS
152
Mt GeometryCollection là 1 tp gm 1 hoc nhiu đối tượng ca bt kì
lp nào.
Các thành phn trong 1 Geometry Collection phi có cùng 1 h thng
đim.
Lp MultiPoint
Mt MultiPoint là tp hp các Point. Các đim này có th được ni vi
nhau theo bt kì th t nào
Ví d v MultiPoint: Trong bn đồ thế gii, 1 MultiPoint có th mô t 1
tp hp các hòn đảo nh
Lp MultiCurve: MultiCurve là 1 tp hp các đối tượng Curve.
Lp MultiLineString:
MultiLineString là 1 MultiCurve vi các thành phn là các LineString
Ví d v MultiLineString: Trong bn đồ, MultiLineString có th dùng để
biu din 1 h thng sông ngòi hoc 1 h thng đường cao tc.
Lp MultiSurface: MultiSurface là 1 GeometryCollection vi các thành phn
là các đối tượng Surface.
Lp MultiPolygon
MultiPolygon là 1 MultiSurface vi các đối tượng là các Polygon.
Ví d v MultiPolygon: Trong bn đồ thì MultiPolygon có th dùng để
biu din 1 h thng các ao h.
Các Polygon ca 1 MultiPolygon không được phép có các thuc tính
interior giao nhau .
Định dng d liu không gian trong MySQL
Phn này mô t các định dng d liu không gian được dùng để th hin các
đối tượng địa lý trong các câu truy vn.
PH LC – MySQL vi phn m rng h tr cho OpenGIS
153
Các loi định dng này gm:
Định dng Well-Known Text (WKT)
Định dng Well-Known Binary (WKB)
Các đối tượng địa lý được lưu tr bên trong MySQL vi định dng khác vi
2 loi trên.
Định dng Well-Known Text (WKT)
Loi định dng này được dùng để truyn các d liu ca đối tượng dưới dng
các chui ASCII
Ví d v vic s dng WKT để mô t đối tượng như sau:
Mt đim: POINT(15 20)
Chú ý là không có du phy ngăn cách gia các thành phn ca 1 điếm
Mt LineString gm có 4 đim: LINESTRING(0 0, 10 10, 20 25, 50 60)
Chú ý là gia các đim có du phy ngăn cách
Mt Polygon vi 1 vòng exterior và 1 vòng interior :
POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))
Mt MultiPoint gm 3 đim: MULTIPOINT(0 0, 20 20, 60 60)
Mt MultiLineString vi 2 thành phn LineString
MULTILINESTRING((10 10, 20 20), (15 15, 30 15))
Mt MultiPolygon vi 2 thành phn Polygon
MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((5 5,7
5,7 7,5 7, 5 5)))
Mt GeometryCollection vi 2 Point và 1 LineString
GEOMETRYCOLLECTION(POINT(10 10),POINT(30
30),LINESTRING(15 15,20 20))
PH LC – MySQL vi phn m rng h tr cho OpenGIS
154
Định dng Well-Known Binary (WKB)
Loi định dng này đưc định nghĩa trong đặc t ca OpenGIS.
Nó cũng được định nghĩa trong ISO ``SQL/MM Part 3: Spatial''
WKB được dùng để trao đổi d liu ca các đối tượng dưới dng chui
binary.
WKB s dng 1 s nguyên không du 1 byte, du nguyên không du 4 byte,
s thc 8 byte (theo định dng IEEE 754).
Ví d như 1 giá tr WKB tương ng vi WKT POINT(1 1) gm có 21 byte
liên tiếp như dưới đây (mi byte được mô t bng 2 con s thp lc phân):
0101000000000000000000F03F000000000000F03F
Chui byte này có th được tách ra thành các phn nhau:
Trt t byte : 01
Loi WKB : 01000000
X : 000000000000F03F
Y : 000000000000F03F
Các thành phn này có ý nghĩa như sau:
Trt t byte có th là 0 hoc là 1 dùng để th hin cách lưu tr là little-
endian hay big-endian.
Giá tr “loi WKB” là mã dùng để ch loi đối tượng địa lý,gm có các
giá tr t 1 đến 7 tương ng vi các loi đối tượng Point,
LineString, Polygon, MultiPoint, MultiLineString,
MultiPolygon, và GeometryCollection.
Hai thành phn X và Y là các s thp phân dùng để th hin 2 giá tr X
và Y ca đối tượng Point.
PH LC – MySQL vi phn m rng h tr cho OpenGIS
155
Các giá tr WKB dùng cho các đối tượng phc tp s có cu trúc phc tp,
theo như mô t ca OpenGIS.
To 1 cơ s d liu trong MySQL dùng cho d liu không gian
Phn này mô t các loi d liu được dùng để th hin các loi d liu không
gian, và các hàm dùng cho vic to và truy vn d liu không gian.
Các kiu d liu không gian trong MySQL:
MySQL có các kiu d liu tương ng vi các lp trong OpenGIS. Mt vài
kiu có th lưu tr 1 đối tượng địa lý đơn gin
GEOMETRY
POINT
LINESTRING
POLYGON
GEOMETRY có th lưu tr bt c kiu d liu địa lý nào. Các kiu d liu
như: POINT, LINESTRING và POLYGON ch cha các kiu d liu thuc
cùng 1 loi nào đó.
Các kiu d liu khác có th lưu tp hp ca giá tr sau:
MULTIPOINT
MULTILINESTRING
MULTIPOLYGON
GEOMETRYCOLLECTION
GEOMETRYCOLLECTION có th lưu tp hp đối tượng ca bt c kiu d
liu nào.Các loi tp hp khác như MULTIPOINT,
MULTILINESTRING,MULTIPOLYGON và GEOMETRYCOLLECTION
ch lưu được các đối tưng thuc các kiu d liu tương ng.
PH LC – MySQL vi phn m rng h tr cho OpenGIS
156
To các giá tr không gian
Phn này mô t cách dùng các hàm ca Well-Known Text và Well-Known
Binary để to ra các giá tr không gian theo chun OpenGIS.
To các giá tr địa lý bng các hàm ca WKT
MySQL có các hàm nhn tham s truyn vào thuc dng Well-Known Text
và có th có thêm tham s SRID. Chúng tr v đối tượng địa lý tương ng.
Hàm GeoFromText() nhn tham s đầu vào là 1 chui WKT ca bt kì
loi đối tượng nào.
Hàm GeomFromText(wkt[,srid]) , GeometryFromText(wkt[,srid])
To đối tượng địa lý bt kì vi giá tr WKT và SRID truyn vào.
Hàm LineFromText(wkt[,srid]) , LineStringFromText(wkt[,srid])
To đối tượng LINESTRING vi giá tr WKT và SRID truyn vào.
HàmMLineFromText(wkt[,srid]),
MultiLineStringFromText(wkt[,srid])
To đối tượng MULTILINESTRING vi giá tr WKT và SRID truyn
vào.
Hàm MPointFromText(wkt[,srid]) , MultiPointFromText(wkt[,srid])
To đối tượng MULTIPOINT vi giá tr WKT và SRID truyn vào.
Hàm MPolyFromText(wkt[,srid]) , MultiPolygonFromText(wkt[,srid])
To đối tượng MULTIPOLYGON vi giá tr WKT và SRID truyn
vào
Hàm PointFromText(wkt[,srid])
To đối tượng POINT vi giá tr WKT và SRID truyn vào
Hàm PolyFromText(wkt[,srid]) , PolygonFromText(wkt[,srid])
To đối tượng POLYGON vi giá tr WKT và SRID truyn
To đối tượng địa lý s dng các hàm ca WKB