Sunteți pe pagina 1din 2

Studiu de caz lucrul cu date spaiale n sistem de coordonate latitudinal-longitudinal

n Oracle Spatial
0. obinerea datelor spaiale Google Maps
Click dreapta pe obiectul cautat pe harta -> whats here
1. crearea tabelei spaiale
CREATE TABLE "CENTRALE" ("ID_CENTRALA" NUMBER PRIMARY KEY,
"ID_EMITENT" VARCHAR2(40), "DENUMIRE_FIRMA" VARCHAR2(60),
"LOCALITATE" VARCHAR2(40), "JUDET" VARCHAR2(30), "LATITUDINE"
NUMBER(15,12), "LONGITUDINE" NUMBER(15,12), "PUTERE" NUMBER(4,0),
"STATIA" VARCHAR2(50), "DATA" DATE, "GEOM" "SDO_GEOMETRY" )
2. adugarea datelor
(ex: Insert into C1
(ID_CENTRALA,ID_EMITENT,DENUMIRE_FIRMA,LOCALITATE,JUDET,LATITUDINE,
LONGITUDINE,PUTERE,STATIA,DATA,GEOM) values (166,'E.ON Moldova','SC
TELESATELIT SRL','Sat Dienet Deal','Bacau',46.327506,27.06835,0,'Racaciuni ',to_date('27MAR-09','DD-MONRR'),MDSYS.SDO_GEOMETRY(2001,8307,MDSYS.SDO_POINT_TYPE(27.06835,46.32750
6,NULL),NULL,NULL));)
@"C:\Documents and Settings\anda\Desktop\CENTRALE.SQL"
Obs: Am definit acelai sistem de coordonate pentru toate tabelele spaiale, pentru ca
operaiile spaiale s poat fi efectuate combinat pe acestea. Sistemul de coordonate ales este
WGS 84. Pentru reprezentarea intern a Oracle Spaial sistemul WGS 84 este codificat 8307.
3. actualizarea viziunii standard de metadate USER_SDO_GEOM_METADATA
insert into user_sdo_geom_metadata
(TABLE_NAME,
COLUMN_NAME,
DIMINFO,
SRID)
VALUES (
'CENTRALE',
'geom',
SDO_DIM_ARRAY(
SDO_DIM_ELEMENT('Longitude', -180, 180, 0.5),
SDO_DIM_ELEMENT('Latitude', -90, 90, 0.5)
),
8307
);
4. crearea indexului spaial

CREATE INDEX centrale_spatial_idx


ON centrale(geom)
INDEXTYPE IS MDSYS.SPATIAL_INDEX;
5. executarea interogrilor spaiale
S se afieze distana dintre centralele ce au codurile 1 i 2 in km (standard este in metri).
Apoi pentru centralele 10 si 20.
SELECT SDO_GEOM.SDO_DISTANCE(c1.geom,c2.geom, 0.5, 'unit=km') distanta
FROM centrale c1, centrale c2
WHERE c1.id_centrala=1 and c2.id_centrala=2;
Sa se determine zonele tampon de 0.5 din jurul centralelor.
SELECT SDO_GEOM.SDO_BUFFER(c.geom, m.diminfo, 0.5)
FROM centrale c, user_sdo_geom_metadata m

S-ar putea să vă placă și