Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

GDAL, PostgreSQL- PostGIS / GDAL/OGR API dokumentációja.

Tanulási útmutató

Összefoglalás

Alkalmazásprogramozási felületi támogatottság. Néhány példa Ruby nyelvre.

Követelmény

  • Programozási ismeret.
  • Objektum orientált szemlélet.
  • Alkalmazásprogramozási felület dokumentáció értelmezése és használata.

GDAL/OGR API Leírása

Előfeltételek

Fejezet felépítése

Osztály hierarchia

Ahhoz, hogy elkezdjük használni ismernünk kell az osztályok felépítését, amely a következőképpen épül fel:

Fájl vezérlő. GIS adatformátumok kezelésére szolgáló osztály. Néhány fontosabb OGR vektor alapú adatformátumot lesz a következőkben felsorolva. Adatformátumok mellett:

Formátum

Kódnév

Létrehozás

Georeferálás

Alapértelmezett

ESRI Arcobjects

ArcObjects

Nem

Igen

Nem

AutoCAD DXF

DXF

Igen

Nem

Igen

CSV

CSV

Igen

Nem

Igen

GeoCouch

CouchDB

Igen

Igen

Nem

ESRI Shapefile

ESRI Shapefile

Igen

Igen

Igen

GeoRSS

GeoRSS

Igen

Igen

Igen

Google Fusion Table

GFT

Igen

Igen

Nem

GML

GML

Igen

Igen

Igen

GPX

GPX

Igen

Igen

Igen

GRASS

GRASS

Nem

Igen

Nem

GPSTrackmaker

GPSTrackmaker

Igen

Igen

Igen

KML

KML

Igen

Igen

Igen

Mapinfo

Mapinfo File

Igen

Igen

igen

MySQL

MySQL

Nem

Igen

Nem

Oracle Spatial

OCI

Igen

Igen

Nem

MicrosoftSQL Spatial

MSSQLSpatial

Igen

Igen

Nem

Openstreetmap

OSM

Nem

Igen

Nem

Postgresql Dump

PGDump

Igen

Igen

Igen

PostGIS

PostgreSQL/PostGIS

Igen

Igen

Nem

SpatiaLite

SQLite

Igen

Igen

Nem

SVG

SVG

Nem

Igen

Nem

Web Feature Service

WFS

Igen

Igen

Nem

MS Excel format

XLS

Nem

Nem

Nem

MS Excel xml

XLSX

Igen

Nem

Nem

GeoJSON

GeoJSON

Igen

Igen

Igen

Adatforrás kezeléséért felelős. Egy adatforrás több rétegből állhat amelyek kezelésére ad függvény megvalósításokat.

Egy adott réteg több feature-ből áll, amelyek kezelésére ad függvény megvalósításokat.

Vissza a tartalomjegyzékhez

Osztályok

A következő alfejezetekben részletes leírást fogunk kapni a fent említett osztályokról, milyen műveleteket lehet rajtuk elvégezni, milyen paraméterekkel lehet meghívni őket.

Driver - OGRDriverShadow

Driver osztály feladata, hogy adatforrásokat kezeljen, ezalatt a következő alapfeladatokat lát el:

Alapműveletek

Név

Szignatúra

Megjegyzés

Create_data_source

(string::path, array::options)

Új adatforrás létrehozása

Copy_data_source

(datasource, string::path, array::options)

Meglévő adatforrás másolása

Delete_data_source

(string::path)

Adatforrás törlése

Open

(string::path, int::update = 0)

Adatforrás megnyitása

Név

Név

Szignatúra

Megjegyzés

Get_name

Driver név

Name

Driver név

Driver Regisztrálás

Név

Szignatúra

Megjegyzés

Register

Új driver regisztrálása

Deregister

Driver inaktiválása

Capability

Név

Szignatúra

Megjegyzés

Test_capability

(string::capability)

Új adatforrás létrehozás (OdrCCreateDataSource) és törlése (OdrCDeleteDataSource)

Datasource – OGRDataSourceShadow

Egy adatforrás több réget is tartalmazhat, így legtöbb funkcionalitása réteg manipulációval kapcsolatos. Funkciói a következő csoportokba sorolhatóak:

Tulajdonságok

Név

Szignatúra

Megjegyzés

Get_ref_count

Hivatkozások száma

Get_summary_ref_count

Összes hivatkozás beleértve a rétegekre.

Get_driver

Adatforrás driver objektuma

Test_capability

String::capability

Új réteg létrehozása (ODSCCreateLayer) és törlése (ODSCDeleteLayer)

Get_name

Adatforrás nevét adja meg.

Layer

Név

Szignatúra

Megjegyzés

Create_layer

(name, spatialRef, geomType, options)

Új réteg

Copy_layer

(Layer, name, options)

Meglévő réteg másolása

Delete_layer

(index)

N indexű réteg törlése

Get_layer

(index) vagy (név)

N indexű vagy nevű réteg lekérés

Get_layer_count

Rétegek számossága

Műveletek

Dialektus hivatkozás és SQL hivatkozás

Név

Szignatúra

Megjegyzés

Execute_sql

(sql, spatialFilter, dialect)

Visszatér Layer objektummal

Sync_to_disk

Változtatások kiürítése és mentése

Release_result_set

(Layer)

Sql eredmény réteg erőforrásának felszabadítása

Layer – OGRLayerShadow

A programozási felület dokumentációjának egyik jelentős osztálya, amely felelős:

Funkciói a következő csoportokba sorolhatóak:

Tulajdonságok

Hivatkozások, feature-ök számossága, térbeli objektum típusa és capability tulajdonságok leírását adja ez a fejezet.

Név

Szignatúra

Megjegyzés

Get_ref_count

Hivatkozások száma

Get_spatial_ref

Vetületirendszer értéke (EPSG:23700)

Get_feature_count

Objektumok száma

Get_name

Réteg neve

Get_geom_type

Geometria típusa

Get_geometry_column

Geometria attribútum neve

Get_fid_column

Egyedi azonosító attribútum neve

Test_capability

Támogatja-e a következő műveleteket:

  • OLCRandomRead (random olvasás támogatása)
  • OLCSequentialWrite (szekvenciális írás támogatottsága)
  • OLCRandomWrite (random írás támogatása)
  • OLCFastSpatialFilter (gyors térbeli szűrés támogatása)
  • OLCFastFeatureCount (gyors feature számítás)
  • OLCFastGetExtent (gyors kiterjedés)
  • OLCFastSetNextByIndex ()
  • OLCCreateField (attribútum létrehozás támogatottsága)
  • OLCDeleteField (attribútum törlés támogatottsága)
  • OLCReorderFields (attribútumok sorrendjének változtatása)
  • OLCAlterFieldDefn (attribútum tulajdonságának változtatása)
  • OLCDeleteFeature (feature törlése)
  • OLCStringsAsUTF8 ()
  • OLCTransactions (tranzakció kezelés támogatása)
  • OLCIgnoreFields (attribútumok figyelmen kívül hagyása)

Térbeli szűrők

Nagy adat esetén célszerű kiszűrni számunka értékes adatokat. Ezt két féleképpen lehet megtenni:

Ezenkívül az esetek többségében, adott réteg attribútumai közül csak néhány attribútumra van szükségünk, erre is ad lehetőséget a set_attribute_filter függvény.

Név

Szignatúra

Megjegyzés

Set_spatial_filter

(Geometry_as_filter)

Geometria objektum mint térbeli szűrő.

Set_spatial_filter_rect

(minx, miny, maxx, maxy)

Hasonló elven működik csak paraméterként bbox van.

Get_spatial_filter

Aktuális szűrő objektum

Set_attribute_filter

(string::filter)

Attribútum szűrő definiálása

Feature lekérdező

Egy adott réteg feature objektumainak lekérdezésére és hozzáadására ad támogatást a következő függvények.

Név

Szignatúra

Megjegyzés

Get_feature

(index)

Adott indexű objektum lekérése

Get_next_feature

Soron következő objektum lekérése

Set_next_by_index

Soron következő objektum a megadott index-el lekérése.

Reset_reading

Index nullázása/alaphelyzetbe állítása

Set_feature

(Feature)

Létező feature objektum felülírása.

Create_feature

(Feature)

Új feature objektum hozzáadása a réteghez.

Delete_Feature

(index)

Adott indexű feature objektum törlése a rétegről.

Get_feature_count

Feature objektumok számossága

Tranzakció kezelés

Tranzakció jelentőségét adatbázis rétegekkel való munka során tapasztalhatjuk meg. Három alapvető tranzakció műveletet támogat GDAL/OGR programkönyvtár.

Név

Szignatúra

Megjegyzés

Start_transaction

Tranzakció megkezdése

Rollback_transaction

Tranzakció visszavonása

Commit_transaction

Tranzakció jóváhagyása

Műveletek

Változtatott objektumok mentése.

Név

Szignatúra

Megjegyzés

Sync_to_disk

Megváltoztatott objektumok mentése fájlba vagy adatbázisba.

Mezők kezelése

Egy adott réteg definícióját szeretnénk megváltoztatni, hozzáadás, törlés és átrendezés, erre ad lehetőséget a következő függvények.

Név

Szignatúra

Megjegyzés

Create_Field

(FieldDefn)

Új attribútum hozzáadása.

Delete_field

(field_id)

Létező attribútum eltávolítása

Reoder_field

(régi_poz_id, új_poz_id)

Attribútum sorrendjének átállítása

Reorder_fields

(array)

Az összes attribútim sorrendjének átállítása a megadott tömb adatai alapján:

Például az attribútumok eredeti sorrendje: (0,1,2,3,4), a tömb tartalma (0,2,4,1,3), amely az új sorrendet definiálja.

Alter_field_defn

(field_id, FieldDefn, flag)

Adott attribútum definíciójának változtatása. Változtatható tulajdonságok:

  • Név
  • Típus
  • Pontosság(double,float)

A tulajdonságot flag mezőben adjuk meg.

Set_ignored_fields

(array)

Array - Attribútum lista, amely tartalmazza az ignorált attribútumokat.

Iterátor

Név

Szignatúra

Megjegyzés

Each_do |feature| end

Iterátor, amelynek segítségével végig haladhatunk szekvenciális sorrendben az összes feature objektumokon.

Feature – OGRFeatureShadow

Feature objektumok leíró és geometria adatokból épül fel, ezért a kezelő függvényeket is két fő csoportba sorolhatjuk:

Ezenkívül, egy adott feature alaptulajdonságait is lekérdezhetjük, mint:

Tulajdonságok

Név

Szignatúra

Megjegyzés

Get_defn_ref

Feature definíció objektum lekérése

Get_style_ring

Adott feature-hez tartozó stílus lekérése

Get_fid

Feature egyedi azonosítójának lekérése

Clone

Adott feature lemásolása egy új objektumba.

Equal

Ellenőrzi, hogy két feature objektum megegyezik-e

Dump_readable

Feature kiírása olvasható formátumban (text).

Geometria

Név

Szignatúra

Megjegyzés

Set_geometry

(geometry)

Adott feature geometriájának felülírása referenciával.

Set_geometry_directly

(geometry)

Adott feature geometriájának felülírása, geometriai objektum lemásolásával.

Get_geometry_ref

Adott feature geometria objektumának lekérése.

Leíró adatok

Név

Szignatúra

Megjegyzés

Get_field_count

Attribútumok számossága.

Get_field_defn_ref

(integer::index)

Attribútum definíció objektum lekérése.

Get_field_as_string

(integer::index)

Attribútum lekérése string formátumban.

Get_field_as_integer

(integer::index)

Attribútum lekérése integer formátumban.

Get_field_as_double

(integer::index)

Attribútum lekérése lebegőpontos formátumban.

Get_field_as_date_time

(integer::index)

Attribútum lekérése dátum formátumban.

Get_field_as_integer_list

Attribútum lekérése integer lista formátumban.

Get_field_as_string_list

Attribútum lekérése string lista formátumban.

Get_field_as_double_list

Attribútum lekérése lebegőpont formátumban.

Is_field_set

(integer::index)

Ellenőrzi, hogy az adott attribútumra vonatkozóan van-e érték megadva.

Get_field_index

(string::name)

Adott attribútumnévhez vissza adja annak indexét.

Unset_field

(integer::index)

Adott indexű attribútum értékének nullázása.

Set_field

(integer::id, string::value)

Adott indexű attribútum értékének megadása string formátumban.

Set_field

(integer::id, integer::value)

Adott indexű attribútum értékének megadása integer formátumban.

Set_field

(integer::id, double::value)

Adott indexű attribútum értékének megadása lebegőpontos formátumban.

Set_field

(integer::id, év, hónap, nap, óra, perc, másodperc)

Adott indexű attribútum értékének megadása dátum formátumban.

Set_field

(string::name, string::value)

Adott nevű attribútum értékének megadása string formátumban.

Set_field

(string::name, integer::value)

Adott nevű attribútum értékének megadása integer formátumban.

Set_field

(string::name, double::value)

Adott nevű attribútum értékének megadása lebegőpontos formátumban.

Set_field

(string::name, év, hónap, nap, óra, perc, másodperc)

Adott nevű attribútum értékének megadása dátum formátumban.

Set_field_integer_list

(integer::index, integer::lista_hossza, lista)

Adott indexű attribútum értékének megadása egy integer formátumú listában.

Set_field_string_list

(integer::index, integer::lista_hossza, lista)

Adott indexű attribútum értékének megadása egy string formátumú listában.

Set_field_double_list

(integer::index, integer::lista_hossza, lista)

Adott indexű attribútum értékének megadása egy lebegőpontos formátumú listában.

Set_from

(feature, integer::elnéző)

Feature megadása egy másik feature objektumon keresztül. Elnéző (true=1, false=0): folytatja a műveletet, akkor is ha kevesebb attribútummal rendelkezik az új feature objektum.

Set_from_with_map

(feature, integer:elnéző, attribútum_index_lista_sorrend)

Hasonlóan működik mint set_from függvény.

Set_style_string

(string::style)

Adott feature-hez stílus beállítása.

Get_style_string

Adott feature-hez tartozó style lekérése. (Szabványos OGR Feature Style specification)

Get_field_type

(integer::index)

Adott indexű attribútum típusának lekérése.

Feature Definition – OGRFeatureDefnShadow

Egy Feature objektumra vonatkozó leíró információkat tárol, mint:

Geometriai típusok listája felsorolási típus:

ID

Név

Megjegyzés

0

WkbUnknown

Nem ismert típus

1

WkbPoint

0-dimenziós szabványos Point típus

2

wkbLineString

1-dimenziós szabványos LineSring típus

3

wkbPolygon

Síkbeli 2-dimenziós szabványos Polygon típus

4

WkbMultiPoint

Pontok gyűjteménye, szabványos WKB

5

wkbMultiLineString

LineString-ek gyűjteménye, szabványos WKB

6

wkbMultiPolygon

Polygon-ok gyűjteménye, szabványos WKB

7

wkbGeometryCollection

Geometriai objektumok gyűjteménye, szabványos WKB

8

wkbNone

Nem szabványos, attribútumok tárolására alkalmas.

9

wkbLinearRing

Nem szabványos, csak create_geometry számára.

10

wkbPoint25D

2.5D kiterjesztés

11

wkbLineString25D

2.5D kiterjesztés

12

wkbPolygon25D

2.5D kiterjesztés

13

wkbMultiPoint25D

2.5D kiterjesztés

14

wkbMultiLineString25D

2.5D kiterjesztés

15

wkbMultiPolygon25D

2.5D kiterjesztés

16

wkbGeometryCollection25D

2.5D kiterjesztés

Név

Szignatúra

Megjegyzés

Get_name

Feature definíció neve

Get_field_count

Attribútumok számossága

Get_field_index

(string::attribute_name)

Adott attribútum név indexe

Get_geom_type

Geometria típusa

Set_geom_type

(geometry_type)

Geometria típusának beállítása

Get_reference_count

Referenciák számossága

Is_geometry_ignored

Geometria adat kitöltöttsége

Set_geometry_ignored

Geometria adat kitöltöttségének beállítása.

Is_style_ignored

Stílus definíció adott-e

Set_style_ignored

Stílus definíció figyelmen kívül hagyása.

Add_field_defn

(FieldDefinition)

Attribútum definíció hozzáadása.

Get_field_defn

(integer::index)

Attribútum definíció lekérése.

Field Definition – OGRFieldDefnShadow

Egy adott attribútumra vonatkozó metaadatokért felelős osztály.

Attribútum típusok:

Név

Megjegyzés

Integer

Egész szám

IntegerList

Egész szám tömb

Double

Valós szám

DoubleList

Valós szám tömb

String

Karakterlánc

StringList

Karakterlánc tömb

Raw

Nyers, bináris adat

Date

Dátum

Time

Idő

DateTime

Időbélyeg

Függvények:

Név

Szignatúra

Megjegyzés

Get_name

Attribútum név lekérése

Set_name

(string::name)

Attribútum név beállítása

Get_name_ref

Attribútum név lekérése

Get_type

Attribútum típus lekérése

Set_type

Attribútum típus beállítása

Get_justify

Sorkizárás lekérése

Set_justify

Sorkizárás beállítása

Get_width

Attribútum hossz lekérdezése

Set_width

(integer::width)

Attribútum hossz beállítása

Get_precision

Attribútum pontosságának lekérdezése

Set_precision

(integer::precision)

Attribútum pontosságának beállítása (általában 0, kivéve valós típusok esetén)

Get_type_name

Attribútum típusnév lekérése

Get_field_type_name

Attribútum típusnév lekérése

Is_ignored

Figyelmen kívül van-e hagyva

Set_ignored

Figyelmen kívülre állít

Geometry – OGRGeometryShadow

A műveleteket jellegük alapján csoportosíthatjuk a következőképpen:

Geometry típusok

Név

Leírás

OGRPoint

Pont osztály

OGRLineString

Vonal osztály

OGRPolygon

Poligon osztály

OGRGeometryCollection

Geometria objektumok gyűjteménye

OGRMultiPolygon

Logikailag összefüggő poligonok gyűjteménye

OGRMultiPoint

Logikailag összefüggő pontok gyűjteménye

OGRMultiLineString

Logikailag összefüggő vonalak gyűjteménye

OGRGeometry osztály a fent említett geometria osztályoknak ős osztálya, amit később fogunk tárgyalni részletesebben. Most nézzük meg milyen műveleteket lehet végrehajtani egyes geometria típusú osztályokon:

OGRPoint
OGRLineString
OGRPolygon

Alap tulajdonságok

Név

Szignatúra

Megjegyzés

Get_geometry_type

Geometria típusának lekérdezése.

Get_geometry_name

Geometria név lekérdezése.

Get_geometry_count

Geometria objektumok számossága.

Get_dimension

Geometria objektum dimenziós értéke.

Get_coordinate_dimension

Geometria objektum koordinátáinak dimenziós értéke.

Wkb_size

Geometria objektum bináris reprezentációjának mérete (byte).

Set_coordinate_dimension

(integer::dimension)

Geometria objektum koordinátáinak dimenziós értékének beállítása.

Térbeli tulajdonságok

Név

Szignatúra

Megjegyzés

Is_empty

Adott geometriának vannak-e pontjai.

Empty

Adott geometria összes pontjait törli.

Is_Valid

Adott geometria érvényességét vizsgálja.

Is_simple

Adott geometria egyszerűségét vizsgálja.

Is_ring

Intersects

Equal

Disjoint

Touches

Crosses

Contains

Overlap

Egyszerű geometria: Ha nem rendhagyó, azaz, nem metszi önmagát és nem épül fel több geometria objektumokból.

Érvényes geometria: Ha két dimenziós és a következő feltételnek megfelel egy poligon esetén:

Manipuláció

Név

Szignatúra

Megjegyzés

Simplify

Simplify_preserve_topology

Boundary

Convex_hull

Buffer

Intersection

Union_cascade

Union

Difference

Symetric_difference

Distance

Centroid

Get_envelope

Get_envelop3d

Transzformáció

Név

Szignatúra

Megjegyzés

Transform_to

Get_spatial_reference

Assign_spatial_reference

Close_rings

Flatten_to_2d

Segmentize

Exportáló

Név

Szignatúra

Megjegyzés

Export_to_wkt

Export_to_wkb

Export_to_gml

Export_to_kml

Export_to_json

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.

A Társadalominformatika: moduláris tananyagok, interdiszciplináris tartalom- és tudásmenedzsment rendszerek fejlesztése az Európai Unió támogatásával, az Európai Szociális Alap társfinanszírozásával, az ELTE TÁMOP 4.1.2.A/1-11/1-2011-0056 projekt keretében valósult meg.
A tananyag elkészítéséhez az ELTESCORM keretrendszert használtuk.