Acces simplu la funcții

Simple Feature Access este o specificație a Open Geospatial Consortium , care definește o arhitectură în general aplicabilă pentru datele geografice și lor geometrii .

Specificația descrie, pe de o parte, stocarea și accesul la geometrii și, pe de altă parte, diverși operatori spațiali.

Modelul clasei de geometrie

Modelul conține următoarele clase instantanee:

  • Puncte
  • Linii (LineString)
  • Poligoane (poligon)
    • Punctele de pe inelul exterior sunt sortate în sens invers acelor de ceasornic (în sens invers acelor de ceasornic).
    • Punctele inelului interior (gaura) sunt sortate în sensul acelor de ceasornic (dreapta)
  • Puncte multiple (MultiPoint)
  • Linii multiple (MultiLineString)
  • Mai multe poligoane (MultiPolygon)
  • Colectarea acestor geometrii (GeometryCollection)

Toate geometriile sunt derivate din clasa abstractă Geometrie.

Metode pe obiecte geometrice

Specificația Acces la funcții simple distinge trei grupuri diferite de metode:

  1. Primul grup oferă diverse metode de bază, cum ar fi: B. interogarea tipului de geometrie (GeometryType), interogarea extinderii (Plic) sau returnarea geometriei ca text (AsText).
  2. Al doilea grup rezumă metodele care descriu relațiile spațiale dintre obiectele geometrice. Aceste metode includ B. dacă obiectele sunt aceleași (Egale), se intersectează (se intersectează) sau se ating (atinge).
  3. În cele din urmă, ultimul grup include metode de analiză spațială, cum ar fi B. Zona tampon (tampon), intersecție (intersecție) sau diferență (diferență).

Reprezentarea geometriei

O altă parte a specificației include reprezentarea geometriei. Acestea includ așa-numitul text bine cunoscut ( WKT ) sau formatul binar binecunoscut ( WKB ).

Text bine cunoscut

Cunoscuta reprezentare a textului este utilizată în principal pentru a putea reprezenta geometria alfanumeric . Exemple de text bine cunoscut:

  • Punct
Point(10 10)
  • LineString (linie cu „puncte de înclinare”)
LineString (10 10, 20 20, 30 40)
  • Poligon (zonă)

un poligon este închis în două paranteze. Poligon fără gaură:

Polygon((10 10, 10 20, 20 20, 20 15, 10 10))

cu un inel exterior și un inel interior (gaură)

Polygon((0 0, 0 20, 20 20, 20 0, 0 0),(5 5, 5 15, 15 15, 15 5, 5 5))
  • Poligon multiplu

două poligoane

MultiPolygon(((10 10, 10 20, 20 20, 20 15, 10 10)),((60 60, 70 70, 80 60, 60 60 )))

doi poligoane, primul poligon cu orificiu:

MultiPolygon(((0 0, 0 20, 20 20, 20 0, 0 0),(5 5, 5 15, 15 15, 15 5, 5 5)),((30 30, 30 40, 40 40, 40 30, 30 30)))

Prima paranteză acoperă întregul poligonal. Următoarele două paranteze înglobează poligonul respectiv. Dacă există o gaură în acest poligon, o paranteză este închisă și al doilea poligon este separat printr-o virgulă. Dacă al doilea poligon se află geometric în interiorul primului, acesta reprezintă o gaură, dacă este geometric în afara poligonului, este o exclavă .

Binar binecunoscut

Cunoscuta reprezentare binară este o reprezentare transferabilă a geometriilor ca un lanț de date continuu pe octeți. Ca tipuri de date, WKB folosește un număr întreg fără semn de la unul sau patru octeți și numere de precizie dublă de opt octeți. Exemplu pentru binare binecunoscute:

  • Punct cu coordonata 1.1
0101000000000000000000F03F000000000000F03F

Acest lanț de date, împărțit în părți, înseamnă următoarele:

01 : Byte-Reihenfolge
01000000 : Geometrietyp
000000000000F03F : X
000000000000F03F : Y

Reprezentarea sistemelor de coordonate

Accesul la funcții simple standardizează, de asemenea, reprezentarea sistemelor geodezice cu coordonate geografice , proiectate sau geocentrice într-o formă alfanumerică, precum și text bine cunoscut. Exemple de reprezentare a sistemelor de coordonate:

  • UTM Zone 10 cu data nord-americană NAD27
 PROJCS["UTM Zone 10, Northern Hemisphere",
   GEOGCS["clark66",
       DATUM["North_American_Datum_1927",
           SPHEROID["clark66",6378206.4,294.9786982]],
       PRIMEM["Greenwich",0],
       UNIT["degree",0.0174532925199433]],
   PROJECTION["Transverse_Mercator"],
   PARAMETER["latitude_of_origin",0],
   PARAMETER["central_meridian",-123],
   PARAMETER["scale_factor",0.9996],
   PARAMETER["false_easting",500000],
   PARAMETER["false_northing",0],
   UNIT["Meter",1]]
  • Sistemul de coordonate geografice WGS84
 GEOGCS["wgs84",
   DATUM["WGS_1984",
       SPHEROID["wgs84",6378137,298.257223563],
       TOWGS84[0.000,0.000,0.000]],
   PRIMEM["Greenwich",0],
   UNIT["degree",0.0174532925199433]]

utilizare

Specificația Acces la funcții simple este utilizată pe scară largă în aplicații geospațiale , atât în proiecte open source , cât și în programe proprietare. Două biblioteci de programe cunoscute cu licență LGPL sunt JTS Topology Suite și GEOS . JTS oferă un API pentru Java , în timp ce GEOS este un API pentru C ++ . Prin utilizarea GEOS în PostGIS , WKT / WKB poate fi utilizat direct în baza de date PostgreSQL .

Link-uri web