Vairāk

Kā pievienot Oracle telpiskās tabulas QGIS?

Kā pievienot Oracle telpiskās tabulas QGIS?


Esmu spēlējis Qith QGIS Chugiak (2.4.0). Es mēģināju mēģināt pievienot Oracle Spatial tabulas (punktu, līniju un daudzstūru pazīmju klases) darbvirsmai. Tās pašas tabulas, kuras izmantoju ArcGIS. Man izdevās panākt savienojuma darbību, izmantojot šeit sniegtos norādījumus, taču notiek divas lietas:

  1. Ne visas manas datu bāzes tabulas tiek aizpildītas
  2. Kad es paplašinu īpašnieku grupas, lai iegūtu tabulu sarakstu, visas tabulas ir pelēkotas.

Es neesmu pārliecināts, kāpēc notiek kāda no šīm lietām. Pirmajā izdevumā es nevaru redzēt, ka tā ir atļauju problēma, jo es piesakos Oracle savienojumam ar saviem Oracle akreditācijas datiem, kas jau ir piesaistīti manam Oracle kontam, un tāpēc tam jāpiešķir piekļuve tabulai, tāpēc es neesmu pārliecināts, kas notiek tur.

Otrajā numurā es nevaru saprast, kāpēc tabulas ir pelēkotas. Esmu mēģinājis iestatīt telpisko atsauci zem SRID lauka, taču tas nedarbojas. Kādi ieteikumi?

REDIĢĒT:

Es saņēmu šo pelēko funkciju funkciju tabulu problēmu. Es iestatīju SRID laukam atbilstošu telpisko atsauci, kā arī jāaizpilda kolonna “Primārā atslēga”. Es izmantoju OBJECTID, jo tas ir galvenais lauks manās funkciju klasēs. Tātad, tagad es varu pievienot savas funkciju klases. Man joprojām ir problēmas ar visu tabulu aizpildīšanu. Man ir vairāki simti, un tikai 7 no tiem iekrauj.


Man bija tā pati problēma. Norādiet SRID kā 4326 vai kaut ko citu. Es neesmu pārliecināts, ka QGIS nevar automātiski noteikt SRID.


2 telpisko datu veidi un metadati

Oracle Spatial sastāv no objektu datu tipu, tipu metožu un operatoru, funkciju un procedūru kopuma, kas izmanto šos tipus. Ģeometrija tiek saglabāta kā objekts vienā rindā SDO_GEOMETRY tipa kolonnā. Telpiskā indeksa izveide un uzturēšana tiek veikta, izmantojot pamata DDL (CREATE, ALTER, DROP) un DML (INSERT, UPDATE, DELETE) paziņojumus.

Šī nodaļa sākas ar vienkāršu piemēru, kas ievieto, indeksē un vaicā telpiskos datus. Jums var būt noderīgi ātri izlasīt šo piemēru, pirms detalizētu datu veidu un metadatu informāciju pārbaudāt vēlāk nodaļā.

Šajā nodaļā ir šādas galvenās sadaļas:


1 Atbilde 1

Ironiski, ka šodien, mēģinot saglabāt datus ģeopakojumā, man bija līdzīga kļūda. (Tas ir, es nesaņemu kļūdu ievietojot, es to uztveru, nospiežot saglabāt). Es saņēmu nedaudz atšķirīgu kļūdu: 'QGIS kļūda, veidojot funkciju -16: neizdevās sagatavot SQL: INSERT INTO. utt.
Tomēr mana kļūda bija saistīta ar faktu, ka ģeometrijas atribūta nosaukums bija kaut kā izveidots kā “geom”. un GDAL kods meklē ģeometrijas atribūtu ar nosaukumu “ģeometrija”. Es izveidoju savu ģeopakojuma tabulu ar atribūtu ar nosaukumu “ģeometrija” un z vērtībām, un vairs nav problēmu (pat ja avota datiem nav z).

tomēr es nedomāju, ka tā ir jūsu problēma - iespējams, ka avota datiem nav z - jūs varētu mēģināt varbūt iestatīt procedūru kaut kur vai atvasinātu lauku tā, ka z vērtība tiek aizpildīta pēc ievietošanas. Kļūdas kods liek izklausīties, ka avotam vai nu nav z vērtības (ti, ģeometrijas izmēri), vai arī slāņa indeksēšana nav iestatīta, lai apstrādātu z (ti, ODCIINDEXINSERT rutīnas slāņa izmērs). Tas var būt sākumpunkts sev.


Ģeometrijas datu tipi

ArcGIS Oracle izveido un var strādāt ar diviem ģeometrijas datu tipiem: Esri ST_Geometry un Oracle SDO_Geometry.

ST_Geometrija

ST_Geometry datu tips ievieš lietotāja definētu datu tipu (UDT) SQL 3 specifikāciju, ļaujot jums izveidot kolonnas, kurās var glabāt telpiskos datus, piemēram, orientiera, ielas vai zemes gabala atrašanās vietu. Tas nodrošina Starptautiskās standartu organizācijas (ISO) un Open Geospatial Consortium, Inc. (OGC) saderīgu strukturēto vaicājumu valodas (SQL) piekļuvi ģeodatabāzei un datu bāzei. Šī krātuve paplašina datu bāzes iespējas, nodrošinot objektu (punktu, līniju un daudzstūru) krātuvi, kas atspoguļo ģeogrāfiskās iezīmes. Tas tika izstrādāts, lai efektīvi izmantotu datu bāzes resursus, būtu saderīgs ar datu bāzes iespējām, piemēram, replikāciju un sadalīšanu, un nodrošinātu ātru piekļuvi telpiskajiem datiem.

SDO_Geometrija

SDO_Geometry tiek realizēta, izmantojot Oracle paplašināmu objektu-relāciju tipa sistēmu. Oracle piedāvā SDO_Geometry veidu, izmantojot divas galvenās iespējas:

  • Oracle Spatial ir izvēles iespēja Oracle Database Enterprise Edition. Papildus SDO_Geometry veida nodrošināšanai Oracle Spatial nodrošina vairākas papildu ģeotelpiskās iespējas.
  • Oracle Locator nodrošina Oracle Spatial iespēju apakškopu. Tas ir iekļauts kā Oracle Database Standard un Enterprise izdevumu standarta funkcija. Papildus citām iespējām tas satur Oracle Spatial geometry tipu (sauktu par SDO_Geometry) un SQL API.

ArcGIS atbalsta SDO_Geometry kā izvēles metodi telpisko datu glabāšanai. Oracle Spatial vai Locator ģeometriju var izmantot, lai uzglabātu un pārvaldītu datu kopu funkciju un rastra saturu uzņēmuma ģeodatu bāzēs vai Oracle datu bāzēs.

Informāciju par SDO_Geometry skatiet Oracle dokumentācijā.


Notiek telpisko datu ielāde

Nākamais solis ir faktiski pievienot vai & # 8220importēt & # 8221 dažas tabulas ar telpiskajiem datiem. Mēs izmantosim divus slāņus, štata daudzstūra slāni no ASV tautas skaitīšanas un punktu failu ar vēja turbīnu atrašanās vietām no USGS. Izmantojot šos slāņus, mēs varam veikt klasisko & # 8220 punktu poli & # 8221 vaicājumā, atrodot visus stāvokļa daudzstūra punktus. Lai sāktu, lejupielādējiet & # 8220cb_2017_us_state_20m.zip & # 8221 stāvokļa failu no:

”Atbrīvojiet failu un pēc tam mēs izmantosim shp2pgsql, komandrindas utilītu, kas jau ir instalēta kopā ar Postgis, neatkarīgi no tā, kādu metodi jūs izmantojāt. Dokumentāciju par šo komandrindas rīku varat atrast oficiālajā Postgis dokumentācijā:

Komanda, kas mums būs nepieciešama štata failam Mac datorā, ir šāda:

Operētājsistēmā Windows tas nedaudz atšķiras

Ņemiet vērā, ka neatkarīgi no tā, kā tiek parādīta izeja, šī komanda liek jums ievadīt paroli, tāpēc ievadiet to un, kad tiek prasīts, nospiediet taustiņu Enter. Ņemiet vērā arī to, ka karodziņš & # 8220-I & # 8221 tiek izmantots, lai automātiski izveidotu telpisko indeksu, kas mums ir pareizi jāpieprasa šajā slānī (visus pieejamos karodziņus skatiet iepriekš esošajā saitē Postgis).

Projekcijas

Kā mēs zinājām iekļaut 4269 SRID (-s karogu no augšas)? Ja nezināt, kas ir SRID vai kā to atrast, ieteicams to pārskatīt:

Lai ātri pārveidotu no shapefile .prj (projekcijas faila) uz nepieciešamo SRID, varat izmantot šo vietni:

Vai arī importējiet failu iecienītākajā ĢIS (mēs izmantojam QGIS) un apskatiet projekcijas informāciju.

Konvertējiet vēja turbīnu failu

Nākamais mums nepieciešamais fails ir vēja turbīnu atrašanās vietas, kuras ir pieejamas šeit:

Neskatoties uz to, ka ir pieejams shapefile, noteikti lejupielādējiet GeoJSON failu, jo tas liks mums izpētīt vēl vienu rīku, kas ir neaizstājams darbam ar ģeogrāfiskajiem datiem. & # 8220ogr2ogr & # 8221 ir komandrindas rīks, kuru nav izstrādājis Postgis, bet tas ir instalēts kā atkarība. Tā ir daļa no GDAL (Geospatial Data Abstraction Library), kuru izmanto daudzi ģeotelpiskās programmatūras projekti, un to var izmantot arī tieši komandrindā. Lai importētu punktu failu Mac datoros, rīkojieties šādi:

operētājsistēmai Windows jums vajadzētu būt iespējai izmantot to pašu precīzo komandu, taču šķiet, ka pašreizējā EDB Postgres instalētāja versija nāk ar ogr2ogr versiju, kurai trūkst Postgres atbalsta! Tātad, jūs varat vai nu turpināt, tā vietā importējot shapefile:

vai instalējiet citu ogr2ogr versiju no šīs labi zināmās un iecienītās pakotnes:

Ņemiet vērā, ka, lai arī iepriekš minētajām saitēm jāturpina darboties, ģeojsona un shp failu nosaukumi var mainīties, tāpēc apskatiet lejupielādējamo failu nosaukumus un atjauniniet iepriekš minētos & # 8220uswtdb _ **** un # 8221 faila nosaukumus lai tie atbilstu, lietojot šīs komandas.


2. sadaļa. Datu savietojamība

Šajā sadaļā jūs uzzināsiet, kā QGIS rīkojas ar dažādiem datu tipiem, kā atvērt un importēt failus QGIS. Varat arī uzzināt, kā izmantot tiešsaistes datu avotu, izmantojot WMS, WMTS pakalpojumu.

  • Ja jums ir telpiski faili Mapinfo (TAB) formātā, varat to viegli izdarīt Importējiet Mapinfo tabulu QGIS. Mapinfo tabulas importēšana QGIS ir ļoti vienkārša, nezaudējot nekādu informāciju.
  • Ja jums nav datu, no kuriem sākt, nav problēmu, šī apmācība parādīs, kā izveidot jaunu Shapefile QGIS. . WMTS (Web Map Tile Service) ir tiešsaistes karšu pakalpojums. Skatiet, kā konfigurēt WMTS QGIS.
  • Vai vēlaties parādīt savus datus programmā Google Earth? Nu, izlasiet, kā eksportēt uz KML no QGIS, kas palīdzēs jums eksportēt failu no QGIS uz KML formātu. Šī apmācība palīdzēs jums atvērt QGIS netelpisku PostgreSQL tabulu. Ja jums ir X, Y dati bez telpiskās informācijas, varat sekot šai apmācībai. Pēc tam mēs varam izveidot vai izveidot punktus, izmantojot šo tabulu.

Teksta datu veidi

Izvēloties iekļaut teksta lauku tabulā, kuru izveidojat, izmantojot ArcGIS, datu tips varchar2 tiek izmantots, ja datu bāzē nav iestatīts izmantot Unicode kodējumu. Ja teksta lauka lielumu iestatāt lielāku par 4000 un datu bāzē nav iestatīts izmantot Unicode kodējumu, Oracle datu tips būs CLOB.

Ja datu bāzē ir iestatīts izmantot Unicode kodējumu, teksta lauks tiks izveidots kā nvarchar2. (Tas ir noklusējuma iestatījums Oracle ģeodatu bāzēm.) Ja iestatāt teksta lauka lielumu, kas lielāks par 2000, un datu bāzē ir iestatīts izmantot Unicode kodējumu, Oracle datu tips būs NCLOB.


Pilnajam dokumentam ir vairāk piemēru, taču šeit ir nepieciešams fragments.

Papildus Lat & ampLng saglabāšanai kolonnā SDO_GEOMETRY, kā teica Kriss Raiss, varat izmantot daudzas noderīgas Oracle Spatial un Oracle Locator funkcijas, lai sasniegtu noderīgus rezultātus.

Lai izmantotu šīs funkcijas, ir jāveic šādas darbības:

  1. Mainiet tabulu, lai pievienotu kolonnu ģeometrija (SDO_GEOMETRY).
  2. Atjauniniet tabulu, lai aizpildītu SDO_GEOMETRY objektus, izmantojot esošās ar atrašanās vietu saistītās datu vērtības.
  3. Atjauniniet telpiskos metadatus (USER_SDO_GEOM_METADATA).
  4. Izveidojiet telpisko indeksu uz galda.

Iepriekš paskaidrota iepriekš minēto darbību detaļa.

Pēc iepriekš minēto darbību veikšanas varat izmantot noderīgus operatorus, kurus nodrošina Oracle Locator. Piemēram, jūs varat atrast vietas, kas atrodas X metru attālumā no noteiktā punkta. Lai iegūtu sīkāku informāciju, izlasiet šo Oracle dokumentu.


Datu transformācijas darbplūsma

Mēs sākam ar CSV faila lasīšanu un katras rindas neatkarīgu izveidi. Mēs vaicāsim XML API, lai pievienotu vairāk datu katram rindas elementam. Visbeidzot, mēs apkoposim un apkoposim visas rindas, lai izveidotu GeoJSON failu, un glabāsim to PostgreSQL datu bāzē. Lai gan tas nav pierādīts, mēs izmantojam paplašinājumu PostGIS, lai pievienotu telpiskās iespējas PostgreSQL datu bāzei. 1. attēlā aprakstīta darbplūsma.

Pēc darbplūsmas definēšanas mēs izmantosim Java failu, lai to ieviestu ar Camel K. Ņemiet vērā, ka Camel K atbalsta daudzas valodas, izņemot Java. Šīs darbplūsmas ieviešanai varat izmantot jebkuru no atbalstītajām valodām.


Problēma

MySQL 8.0 ir jāzina, vai indekss ir Dekarta vai ģeogrāfisks. Tas ir atkarīgs no kolonnas datu SRID. Diemžēl 5.7 un vecākas versijas indeksu neierobežo ar vienu SRID, tāpēc indekss var saturēt gan Dekarta, gan ģeogrāfiskos datus. Tas ir labi, ja vien MySQL neņem vērā SRID (kā to dara 5.7 un agrāk), taču tas nedarbosies 8.0. Tāpēc 8,7 optimizētājs neizmanto 5.7 rādītājus.

Tātad, ja mums ir telpiskais indekss un jaunināšana uz 8.0, mums tas ir jādara

  1. Pārliecinieties, ka indeksētajā kolonnā vienā SRID ir tikai ģeometrijas
  2. Pastāstiet MySQL, kuru SRID izmantot indeksam
  3. Atkārtoti izveidojiet indeksu

Pirmais punkts ir kaut kas, ko mēs varam darīt pirms jaunināšanas. Divas pēdējās darbības jāveic pēc jaunināšanas.


Secinājumi

Praktiski visās klientu un darījumu datu bāzēs, datu noliktavās un datu kartēs ir dati par atrašanās vietu. Tas ir visur, un to var izmantot, lai sniegtu vērtīgu ieskatu tirgus tendencēs, jaunu tirgu pieejamībā un iespējās, un to var izmantot kā kopēju datu kopu, lai savītu kopā dažādas datu kopas.

Oracle RDBMS var servēt kā drošs, mērogojams un atvērts repozitorijs jūsu atrašanās vietas datiem, lielāko daļu organizācijas vajadzību apmierinot ar bezmaksas Oracle Locator datu bāzes funkciju, un ar Oracle Spatial - prasīgākām telpiskās analīzes vajadzībām. Datu kopas ir viegli uzlabot, izmantojot uz atrašanās vietu balstītus datus, un, ja esat licencējis Oracle Application Server un JDeveloper, tas ir vienkāršs process, lai pievienotu kartēšanas funkcionalitāti biznesa informācijas lietojumprogrammām.

Lai iegūtu sīkāku informāciju par Oracle Locator un Oracle Spatial, noteikti pārbaudiet manu Oracle Weblog un Džastina Lokica Oracle GIS tīmekļa žurnālu, apskatiet OTN Locator un Spatial and Map Viewer mājas lapas un apskatiet to ĢIS partneru loku, kuri tos atbalsta Oracle tehnoloģijas.

Marks Rittmans ir sertificēta Oracle Professional DBA un strādā par konsultāciju vadītāju SolStonePlus, kas specializējas BI un DW lietojumprogrammu izstrādē, izmantojot Oracle Database, Application Server, Discoverer, Warehouse Builder un Oracle OLAP. Ārpus Plus konsultācijas Marks vada UKOUG BI un Reporting Tools SIG un vada tīmekļa žurnālu, kas veltīts Oracle BI un Data Warehousing tehnoloģijai. Nesen Markam tika piešķirta OTN kopienas balva par ieguldījumu Oracle izstrādātāju kopienā, un viņš regulāri uzstājas Oracle User pasākumos gan Lielbritānijā, gan Eiropā.

Marks arī vēlas pateikties Džastinam Lokicam par sadarbību ar šo rakstu. Džastins ir vecākais pārdošanas konsultants Oracle Corporation, kas specializējas GIS un J2EE izstrādē.