Page 72 - 6430
P. 72

10.   РОЗШИРЕННЯ ОБ'ЄКТНО-РЕЛЯЦІЙНОЇ СУБД

                  POSTGRESQL – POSTGIS. ОГЛЯД СТАНДАРТІВ
                                                   OPENGIS.


                     Способи визначення просторових об’єктів WKB і WKT


                     Специфікація  OpenGIS визначає два стандартних  способу
            визначення  просторових  об'єктів:  у  формі  Well-Known  Text
            (WKT)  і  у  формі  Well-Known  Binary  (WKB).  WKT  і  WKB

            включають  інформацію  про  тип  об'єкту  і  координати,  складові
            об'єкт.
                     Приклади  текстового  представлення  (WKT)  просторових

            об'єктів наведено нижче:
                     POINT (0 0)
                     LINESTRING (0 0,1 1,1 2)
                     POLYGON ((0 0,4 0,4 4,0 4,0 0), (1 1, 2 1, 2 2, 1 2,1 1))

                     MULTIPOINT (0 0,1 2)
                     MULTILINESTRING ((0 0,1 1,1 2), (2 3,3 2,5 4))
                     MULTIPOLYGON (((0 0,4 0,4 4,0 4,0 0), (1 1,2 1,2 2,1 2,1

            1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))
                     GEOMETRYCOLLECTION (POINT (2 3), LINESTRING ((2
            3,3 4)))

                     Крім  цього,  специфікація  OpenGIS  вимагає,  щоб
            внутрішній  формат  зберігання  просторових  об'єктів  включав
            ідентифікатор  системи  координат  (spatial  referencing  system

            identifier - SRID). SRID необхідний для додавання обєкта в базу
            даних.
                     Введення  /  вивід  даних  в  цих  форматах  доступний  з
            використанням наступних інтерфейсів:

                     bytea WKB = asBinary (geometry);
                     text WKT = asText (geometry);
                     geometry = GeomFromWKB (bytea WKB, SRID);

                     geometry = GeometryFromText (text WKT, SRID);
                     Наприклад,  правильний  запит  insert  для  створення  і
            вставки просторового об'єкта OGC може бути таким:
                     INSERT INTO geotable (the_geom, the_name)

                     VALUES  (GeomFromText  ('POINT  (-126.4  45.32)',  312),  'A
            Place ");


                                                        72
   67   68   69   70   71   72   73   74   75   76   77