How can we store and represent geographic features in a database? In this lesson we’ll cover one approach, the Simple Feature Model as defined by the OGC.
Scopul acestei lecții: De a afla ce este Modelul SFS și cum să-l folosiți.
The Open Geospatial Consortium (OGC), an international voluntary consensus standards organization, originated in 1994. In the OGC, more than 370+ commercial, governmental, nonprofit and research organizations worldwide collaborate in an open consensus process encouraging development and implementation of standards for geospatial content and services, GIS data processing and data sharing. - Wikipedia
The Simple Feature for SQL (SFS) Model is a non-topological way to store geospatial data in a database and defines functions for accessing, operating, and constructing these data.
Modelul definește date geospațiale din tipurile Point, Linestring, și Polygon (și agregări ale acestora în obiecte Multi).
Pentru mai multe informații, aruncați o privire la standardul Entității OGC simple pentru SQL.
Haideți să adăugăm un câmp de tip punct în tabela noastră de personal:
alter table people add column the_geom geometry;
You will notice that the geometry field type does not implicitly specify what type of geometry for the field - for that we need a constraint:
alter table people
add constraint people_geom_point_chk
check(st_geometrytype(the_geom) = 'ST_Point'::text OR the_geom IS NULL);
Aceasta adaugă o constrângere la tabelă, astfel încât ea va accepta doar o geometrie de tip punct sau o valoare nulă.
Create a new table called cities and give it some appropriate columns, including a geometry field for storing polygons (the city boundaries). Make sure it has a constraint enforcing geometries to be polygons.
În acest moment, ar trebui, de asemenea, să adăugați o intrare în tabela geometry_columns:
insert into geometry_columns values
('','public','people','the_geom',2,4326,'POINT');
Why? geometry_columns is used by certain applications to be aware of which tables in the database contain geometry data.
Note
Dacă instrucțiunea INSERT de mai sus produce o eroare, rulați mai întâi această interogare:
select * from geometry_columns;
If the column :kbd:`f_table_name` contains the value :kbd:`people`, then
this table has already been registered and you don't need to do anything
more.
Valoarea 2 se referă la numărul dimensiunilor; în acest caz, două: x și y.
The value 4326 refers to the projection we are using; in this case, WGS 84, which is referred to by the number 4326 (refer to the earlier discussion about the EPSG).
Adăugați o intrare geometry_columns adecvată pentru noul strat al orașelor
Acum, că tabelele noastre sunt geo-activate, putem stoca geometrii în ele:
insert into people (name,house_no, street_id, phone_no, the_geom)
values ('Fault Towers',
34,
3,
'072 812 31 28',
'SRID=4326;POINT(33 -33)');
Note
In the new entry above, you will need to specify which projection (SRID) you want to use. This is because you entered the geometry of the new point using a plain string of text, which does not automatically add the correct projection information. Obviously, the new point needs to use the same SRID as the data-set it is being added to, so you need to specify it.
If at this point you were using a graphical interface, for example, specifying the projection for each point would be automatic. In other words, you usually won’t need to worry about using the correct projection for every point you want to add if you’ve already specified it for that data-set, as we did earlier.
Now is probably a good time to open QGIS and try to view your people table. Also, we should try editing / adding / deleting records and then performing select queries in the database to see how the data has changed.
Pentru a încărca un strat PostGIS în QGIS, utilizați opțiunea de meniu Layer ‣ Add PostGIS Layers sau butonul corespunzător din bara de instrumente:
Se va deschide acest dialog:
Clic pe butonul New pentru a deschide acest dialog:
Apoi definiți o nouă conexiune, de exemplu.:
Name: myPG
Service:
Host: localhost
Port: 5432
Database: address
User:
Password:
To see whether QGIS has found the address database and that your username and password are correct, click Test Connect. If it works, check the boxes next to Save Username and Save Password. Then click OK to create this connection.
Înapoi în dialogul Add PostGIS Layers, faceți clic pe Connect, apoi adăugați straturile pentru proiectul dumneavoastră, ca de obicei.
Formulați o interogare care arată numele unei persoane, numele străzii și poziția (din coloana the_geom) sub formă de text simplu.
Ați văzut cum să adăugați obiecte spațiale în baza de date, și cum să le puteți viziona în aplicația GIS.
Mai departe, veți vedea cum se importă și se exportă datele în/din baza de date.