Daugiau

Pridedate stulpelį ST_GEOMETRY prie esamos lentelės, kurioje jau yra X Y stulpelių?


  • Aš sukūriau „Oracle 11g“ erdvinę geoduomenų bazę ir sukūriau „arcsde“ ryšį.
  • Aš buvau sujungtas naudojant „arcmap“ kaip paprastas vartotojas (ne SDE ar schemos vartotojas), turintis visas tinkamas teises redaguoti lenteles ir kt.
  • 10.2 darbalaukiui naudoju „arcgis“.
  • Savo geoduomenų bazėje sukūriau visas savo verslo lenteles, reikalingas mano programoms. Šioje geoduomenų bazėje yra lentelė, kurioje yra X Y taškų.
  • Manau, kad turiu pridėti st_geomery stulpelį, kad arcgis suprastų, kad jame yra geometrijos (taškų), turi indeksavimą ir kt.

  1. Viena iš galimybių yra pakeisti lentelę naudojant „Oracle“ užklausą ir pridėti st_geometry stulpelį. Šiuo atveju aš nematau lentelės pateiktose lentelėse arcmap. nežinau kodėl.
  2. Manau, kad antrasis variantas galėtų būti redaguoti šią lentelę naudojant arcmap ir pridėti st_geometry taškų stulpelį. Bet aš negaliu rasti jokių galimybių tai padaryti.

Dukart spustelėjus lentelę, galiu pamatyti šias parinktis (trūksta st_geometry parinkties)

Ar turite pagalbos dėl šių dviejų galimybių?


Problema buvo ta, kad „st_geometry“ nebuvo tinkamai įdiegta tuo metu, kai paleidžiau įrankį „Kurti įmonės geoduomenų bazę“.

Turėjau pataisyti exproc failą taip, kad kuriant geoduomenų bazę st_geometry būtų tinkamai įdiegta.

„St_geometry“ nebuvimas privertė „Arcgis“ lenteles, kuriose yra „st_geometry“, pripažinti negaliojančiomis.


PostGIS naudojimas su esama duomenų lentele, turinčia dešimtaines koordinates

Aš jau įdiegiau „PostgreSQL“ ir „PostGIS“ ir norėčiau naudoti „PostGIS“, norėdamas sukurti užklausą, kurioje bus pateikti visi įrašai (iš aukščiau pateiktos lentelės), esantys nurodytu atstumu nuo ilgio / ilgio vietos.

Problema ta, kad aš nežinau, kaip pradėti. Ar aš tiesiog importuoju savo CSV failą į „PostgreSQL“ duomenų bazę ir pradedu naudoti „PostgreSQL“ ir „PostGIS“ funkcijas, kai CSV failą paversiu į „PostgreSQL“ lentelę?

Ar yra kokių nors papildomų veiksmų, kad lentelė veiktų su „PostGIS“ funkcijomis?

Kokie būtų teisingi žingsniai šiuo klausimu? Aš tikrai vertinu jūsų pagalbą!


Kaip prie jau egzistuojančios lentelės pridėti stulpelį su svetimo rakto apribojimu?

Jums tereikia pridėti dar vieną žingsnį - iš tikrųjų „PostgreSQL“ jums jau sako, kad: stulpelis ir kvotantas & quot, nurodytas užsienio rakto apribojime, neegzistuoja.

Stulpelis UŽSIENIO RAKTAS (dar žinomas kaip tėvas) jau turi egzistuoti kad ji taptų FK.

Aš padariau šiuos veiksmus (iš čia ir dokumentus). Atminkite, kad pagrindiniame stulpelyje turi būti UNIKALUS suvaržymas (arba jis turi būti PAGRINDINIS RAKTAS), tačiau jis neturi būti NEBULIS. Taip yra todėl, kad NULL nėra lygūs vienas kitam, taip pat nėra lygūs niekam kitam - kiekvienas NULL yra laikomas unikaliu atskirai!

Pora taškų, į kuriuos reikia atkreipti dėmesį (žr. Smuiką čia) - bandymas į y (c) įterpti vertę, kurios nėra x (a), nepavyksta ir apribojimo pavadinimas nurodomas klaidos pranešime.

Smuikas neturi NULL apribojimų x (a) ir y (c). Nebent turiu tikrai įtikinamai priežastis, aš visada paskelbti, kad mano stulpeliai nėra NULL - tai padeda optimizuotojui ir sumažina painiavos / klaidos galimybę. Galite paeksperimentuoti su smuiku, kad sužinotumėte, kas nutiks, kai abiejuose (ir abiejuose) laukuose paliksite „NE NULL“ - elgesys ne visada intuityviai akivaizdus!

VISADA duokite savo svetimiems raktams reikšmingus vardus. Pasakyti, kad pažeidžiamas raktas & quotSYS_C00308108 & quot, nėra labai naudinga. Peržiūrėkite čia esantį smuiką, kaip elgtis „Oracle“ tokiomis aplinkybėmis. Rakto pavadinimas skiriasi nuo smuiko iki kito, tačiau jis yra savavališkas eilutė, prasidedanti SYS_. (ateina po ilgo dbfiddle sugeneruoto stalo vardo).

Evanas Carrollas savo atsakyme mano, kad automatiškai sugeneruoti vardai yra tinkami - aš parodžiau, kodėl taip yra ne gera „Oracle“ idėja (bent iki 18c), bet taip pat manau, kad ir „PostgreSQL“ tai nėra gera idėja - potencialios perkėlimo problemos, jei ne kas kita.

Norėčiau įskaityti Evaną Carrollą už tai, kad jis nurodė, jog papildė naują lauką ir UŽSIENIO RAKTO sukūrimas ir SĄLYGOS (nurodytu pavadinimu) gali būti pridėti vienu, o ne dviem žingsniais, kaip sakiau iš pradžių) - taigi, prašau jam suteikti tai už tai, jei jaučiatės norėjęs mane pareikšti, tačiau aš išsamiau.

Atsižvelgiant į jūsų klausimo teiginį:

Būtų & quot, turint & quot, jei RDBMS galėtų automatiškai sukurti norimą lauką su duomenų tipu, atitinkančiu nurodytą lauką.

Viskas, ką norėčiau pasakyti, yra tai, kad DDL keitimas yra (arba bent jau turėtų būti) retai naudojama operacija, o ne kažkas, ką norėtumėte daryti reguliariai. Taip pat rizikuojama pridėti ir taip gana reikšmingą dokumentaciją.

Bent jau „PostgreSQL“ bando padaryti ką nors pagrįsto - sujungia lentelės pavadinimą, „FOREIGN KEY“ lauko pavadinimą ir „fkey“. Be to, kai pats pavadinsite apribojimą, klaidos pranešimas pridės DETALI INFORMACIJA: Rakto (c) = (7) nėra lentelėje & quotx & quot. duoti ką nors, kas gali būti prasminga žmogui (skirtingai nei „Oracle“ - žr. „PostgreSQL“ smuiko pabaigą).


3.3 Manipuliavimas rastriniais objektais

Skirtingai nuo vektorinių duomenų modelio, kuriame yra paprastos savybės (kuris taškus, linijas ir daugiakampius vaizduoja kaip atskiras esybes erdvėje), rastriniai duomenys rodo ištisinius paviršius. Šiame skyriuje parodyta, kaip rastriniai objektai veikia juos kuriant nuo nulio, remiantis 2.3.1 skirsniu. Dėl unikalios struktūros subnuomos ir kitos rastrinių duomenų rinkinių operacijos veikia kitaip, kaip parodyta 3.3.1 skirsnyje.

Šis kodas atkuria rastrinių duomenų rinkinį, naudojamą 2.3.3 skirsnyje, kurio rezultatas parodytas 3.2 paveiksle. Tai parodo, kaip veikia rastras (), kad būtų sukurtas rastro pavyzdys, pavadintas „elev“ (reprezentuojantis aukštį).

Rezultatas yra rastro objektas su 6 eilutėmis ir 6 stulpeliais (nurodytas argumentais „nrow“ ir „ncol“) ir minimalus bei maksimalus erdvinis mastas x ir y kryptimis (xmn, xmx, ymn, ymax). Argumentas „vals“ nustato reikšmes, kurių yra kiekvienoje langelyje: skaitmeniniai duomenys šiuo atveju svyruoja nuo 1 iki 36. Rastro objektuose taip pat gali būti kategorinių loginių arba faktorių kintamųjų kategorijose R reikšmės. Šis kodas sukuria rastrą, vaizduojantį grūdelių dydžius (3.2 pav.):

rastriniai objektai reiškia kategorinius kintamuosius kaip sveikus skaičius, todėl grūdas [1, 1] pateikia skaičių, kuris žymi unikalų identifikatorių, o ne „molis“, „dumblas“ ar „smėlis“. Rastrinis objektas atitinkamą paieškos lentelę arba „Rastro atributų lentelę“ (RAT) saugo kaip duomenų rėmą naujame lizde, pavadintame atributais, kuriuos galima peržiūrėti su ratifikavimu (grūdeliu) (jei norite gauti daugiau informacijos, žiūrėkite? Ratifikuoti ()). Naudokite funkcijų lygius (), norėdami gauti ir pridėti naujus veiksnių lygius į atributų lentelę:

Tai rodo, kad rastrinės ląstelės gali turėti tik vieną vertę - identifikatorių, kurį galima naudoti atributams ieškoti atitinkamoje atributų lentelėje (saugomoje lizde, pavadintame atributais). Tai pavaizduota toliau pateiktoje komandoje, kuri pateikia 1, 11 ir 35 langelių ID grūdelių dydį ir drėgnumą:

3.2 paveikslas: rastriniai duomenų rinkiniai su skaitinėmis (kairėje) ir kategorinėmis vertėmis (dešinėje).

3.3.1 Rastrinis subnuomojimas

Rastrinis abonementas atliekamas su pagrindiniu R operatoriumi [, kuris priima įvairius įvestis:

Čia mes parodome tik pirmąsias dvi galimybes, nes jas galima laikyti ne erdvinėmis operacijomis. Jei mums reikia erdvinio objekto kitam pogrupiui arba išvestis yra erdvinis objektas, tai vadiname erdviniu poaibiu. Todėl pastarosios dvi parinktys bus parodytos kitame skyriuje (žr. 4.3.1 skirsnį kitame skyriuje).

Pirmosios dvi subnuomos parinktys parodytos toliau pateiktose komandose - abi grąžina rastrinio objekto aukščio viršutinio kairiojo taško vertę (rezultatai nerodomi):

Norėdami išskleisti visas reikšmes ar visas eilutes, galite naudoti reikšmes () ir „getValues“ (). Jei bus daugiasluoksnių rastrinių objektų, sukrautų ar plytų, tai grąžins kiekvieno sluoksnio langelio vertę (-es). Pavyzdžiui, stack (elev, grain) [1] pateikia matricą su viena eilute ir dviem stulpeliais - po vieną kiekvienam sluoksniui. Daugiasluoksnių rastrinių objektų dar vienas pogrupio būdas yra „raster :: subset“ (), kuris išskiria sluoksnius iš rastro kamino ar plytų. Operatoriai [[ir $ taip pat gali būti naudojami:

Langelio reikšmes galima modifikuoti perrašant esamas reikšmes kartu su subnuomos operacija. Pavyzdžiui, šis kodo fragmentas viršutinį kairįjį langelį „elev“ nustato kaip 0:

Palikus tuščius laužtinius skliaustus yra sparčioji verčių () versija, skirta gauti visas rastro reikšmes. Taip pat galima modifikuoti kelias langelius:

3.3.2 Rastrinių objektų apibendrinimas

rastras yra funkcijos aprašomosios statistikos ištraukimui apie visus rastrus. Spausdinant rastro objektą į konsolę, įvedant jo pavadinimą, gaunamos mažiausios ir didžiausios rastro vertės. santraukoje () pateikiama bendra aprašomoji statistika (mažiausias, didžiausias, tarpkvartilių diapazonas ir NA skaičius). Su „cellStats“ () galima apskaičiuoti kitas suvestinės operacijas, tokias kaip standartinis nuokrypis (žr. Toliau) arba pasirinktinę suvestinės statistiką.

Rastrinės vertės statistiką galima vizualizuoti įvairiais būdais. Konkrečios funkcijos, tokios kaip boxplot (), density (), hist () ir poros (), taip pat veikia su rastriniais objektais, kaip parodyta histogramoje, sukurtoje naudojant žemiau esančią komandą (neparodoma):

Jei vizualizavimo funkcija neveikia su rastriniais objektais, galima išskaičiuoti rastro duomenis, kurie turi būti braižomi reikšmių () arba „getValues“ () pagalba.

Aprašomoji rastrinė statistika priklauso vadinamosioms pasaulinėms rastrinėms operacijoms. Šios ir kitos tipiškos rastrinio apdorojimo operacijos yra žemėlapio algebros schemos dalis, kuri aptarta kitame skyriuje (4.3.2 skirsnis).

Kai kurie funkcijų pavadinimai susiduria tarp paketų (pvz., Pasirinkite (), kaip aptarta ankstesnėje pastaboje). Be paketų neįkėlimo, kalbant apie funkcijas žodžiu (pvz., Dplyr :: select ()), dar vienas būdas užkirsti kelią funkcijų vardų susidūrimui yra iškraunant pažeidžiantį paketą „detach“ (). Pavyzdžiui, ši komanda iškrauna rastras paketą (tai taip pat galima padaryti pakuotė skirtukas, kuris pagal numatytuosius nustatymus yra „RStudio“ dešiniajame apačioje): detach („package: raster“, unload = TRUE, force = TRUE). „Force“ argumentas užtikrina, kad paketas bus atsietas, net jei nuo jo priklauso kiti paketai. Tačiau tai gali lemti ribotą pakuočių naudojimą, atsižvelgiant į nuimamą pakuotę, todėl nerekomenduojama.


Funkcijų klasės „ArcGIS for Desktop“

„ArcGIS for Desktop“ galite sukurti septynių tipų funkcijų klases: taškas, daugtaškis, linija, daugiakampis, anotacija, aspektas ir daugialypis ryšys.

Katalogo medyje pagal piktogramą galite pasakyti, kokia tai savybių klasė. Šioje lentelėje pateikiama kiekvieno tipo objektų piktograma.

„Microsoft SQL Server“ kataloge medžio elementų klasės pavadinimas apima duomenų bazės, kurioje yra objektų klasė, pavadinimą, vartotojo, kuriam priklauso objektų klasė, vardą ir pačios savybės klasės pavadinimą.

Pvz., Ypatybių klasė, pavadinta siuntiniais, priklausanti vartotojui sasha, geoduomenų bazėje, pavadintoje geoduomenimis, yra nurodyta katalogo medyje kaip geoduomenys.SASHA.PARCELS.

Skirtingų tipų funkcijų klasių aprašą rasite skyriuje „Ypatybių klasė“.


Įterpkite ST_Geometry duomenis naudodami SQL

Norėdami įterpti erdvinius duomenis į duomenų bazę ar geoduomenų bazės lentelę, kurioje yra stulpelis ST_Geometry, galite naudoti SQL. Norėdami įterpti konkrečius geometrijos tipus, naudojate ST_Geometry konstruktoriaus funkcijas. Taip pat galite nurodyti, kad tam tikrų erdvinių operacijų funkcijų išvestis bus išvedama į esamą lentelę.

Kai į lentelę įterpiate geometriją naudodami SQL, atkreipkite dėmesį į šiuos dalykus:

  • Turite nurodyti galiojantį erdvinės nuorodos ID (SRID).
  • Jei norite toliau naudoti lentelę su „ArcGIS“, laukas, naudojamas kaip „ObjectID“, negali būti nulinis.

Erdviniai nuorodų ID

SRID, kurį nurodote įterpdami geometriją į „Oracle“ lentelę, kurioje naudojamas erdvinis tipas ST_Geometry, turi būti lentelėje ST_SPATIAL_REFERENCES ir SDE.SPATIAL_REFERENCES lentelėje turi atitikti įrašą. SRID, kurį nurodote įterpdami geometriją į „PostgreSQL“ lentelę, kurioje naudojamas erdvinis tipas ST_Geometry, turi būti public.sde_spatial_references lentelėje. Nuo „ArcGIS 10.1“ šios lentelės yra iš anksto užpildytos erdvinėmis nuorodomis ir SRID.

SRID, kurį nurodote įterpdami geometriją į SQLite lentelę, kurioje naudojamas erdvinis tipas ST_Geometry (geometrinis blokas), turi būti lentelėje st_spatial_reference_systems.

Jei jums reikia naudoti pasirinktinę erdvinę nuorodą, kurios nėra lentelėje, paprasčiausias būdas tai padaryti yra naudoti „ArcGIS for Desktop“ norint įkelti ar sukurti funkcijų klasę, kurioje yra norimos erdvinės nuorodos vertės. Įsitikinkite, kad sukurta funkcijų klasė naudoja ST_Geometry saugyklą. Tai sukuria įrašą SDE.SPATIAL_REFERENCES ir ST_SPATIAL_REFERENCES „Oracle“ lentelėje, įrašą viešoje.sde_spatial_references lentelėje „PostgreSQL“ arba įrašą „st_aux_spatial_reference_systems_table“ SQLite.

Geografinėse duomenų bazėse galite pateikti užklausą lentelėje LAYERS (Oracle) arba sde_layers (PostgreSQL), kad surastumėte erdvinei lentelei priskirtą SRID. Tada galite naudoti tą SRID, kai kuriate erdvines lenteles ir įterpiate duomenis naudodami SQL.

Arba galite pridėti erdvinę nuorodą į ST_SPATIAL_REFERENCES arba sde_spatial_references lentelę naudodami SQL. Norėdami gauti daugiau informacijos, žr. Erdvinių nuorodų kūrimas naudojant SQL.

Norėdami paaiškinti SRID ir erdvines atskaitos sistemas, žr. Kas yra SRID? ir erdvinės nuorodos.

ObjectIDs

Norint, kad „ArcGIS“ pateiktų užklausas duomenims, lentelėje turi būti unikalus identifikatoriaus laukas.

Funkcijų klasės, sukurtos naudojant „ArcGIS“, visada turi lauką „ObjectID“, kuris naudojamas kaip identifikatoriaus laukas. Įterpiant įrašus į funkcijų klasę naudojant „ArcGIS“, lauke ObjectID visada įterpiama unikali vertė. Geoduomenų bazės lentelės „ObjectID“ lauką prižiūri „ArcGIS“. Iš „ArcGIS“ sukurtos duomenų bazės lentelės „ObjectID“ lauką prižiūri DBVS.

Įterpdami įrašus į geoduomenų bazės lentelę naudodami SQL, turite naudoti funkciją „Next_RowID“, kad gautumėte ir įterptumėte galiojančią „ObjectID“ vertę. Kai naudosite SQL įterpti įrašus į duomenų bazės lentelę, sukurtą „ArcGIS“, DBVS užpildys lauką „ObjectID“ reikšme.

Duomenų bazių lentelėse, kurias kuriate ne „ArcGIS“, turi būti laukas (arba laukų rinkinys), kurį „ArcGIS“ gali naudoti kaip „ObjectID“. Jei lentelės ID lauke naudojate savo duomenų bazės savąjį automatinio didinimo duomenų tipą, DBMS užpildys šį lauką, kai įvesite įrašą naudodami SQL. Jei rankiniu būdu išlaikote savo unikalaus identifikatoriaus lauko vertes, redaguodami lentelę iš SQL, būtinai pateikite unikalią ID vertę.

Negalite skelbti duomenų iš lentelių, kuriose yra vartotojo palaikomas unikalaus identifikatoriaus laukas.

Žr. Kas yra „ObjectID“? Daugiau informacijos.


Norėdami sukurti funkcijų klases su ST_Geometry saugykla, naudokite „ArcGIS“

Jūs pasirenkate, kokį saugyklos tipą naudoti kuriant funkcijų klases per „ArcGIS Desktop“.

Kai „ArcGIS“ sukuriate funkcijų klasę, kurioje naudojama ST_Geometry saugykla, sukuriama funkcijų klasės verslo lentelė su ST_Geometry tipo stulpeliu, kuriame saugomi objektų klasės erdviniai duomenys.

Duomenų bazėje

Nurodote erdvinių duomenų tipą, kurį reikia naudoti kuriant funkcijų klasę „ArcGIS“.

Geoduomenų bazėje

Funkcijų klasės saugojimo informaciją valdo konfigūracijos raktinių žodžių nustatymai lentelėje sde_dbtune. Konfigūracijos raktinį žodį nurodote kurdami funkcijų klasę „ArcGIS“. Sukūrus geoduomenų bazę, numatytame konfigūracijos raktiniame žodyje parametras GEOMETRY_STORAGE nustatytas kaip ST_Geometry. Jei norite išsaugoti visus ar didžiąją dalį savo erdvinių duomenų naudodami ST_Geometry tipą, nekeiskite raktinio žodžio DEFAULTS parametro GEOMETRY_COLUMNS vertės, tada, kai kuriate funkcijų klasę iš ArcGIS, nurodykite raktinį žodį DEFAULTS.

Jei pakeisite parametrą Numatytieji GEOMETRY_STORAGE, kad būtų naudojamas „PostGIS“ geometrijos ar geografijos duomenų tipas, tačiau norite sukurti kai kurias funkcijų klases naudodami duomenų tipą ST_Geometry, galite sukurti naują konfigūracijos raktinį žodį, skirtą ST_Geometry saugyklai. Norėdami eksportuoti sde_dbtune lentelės turinį į teksto failą, naudokite eksportavimo geoduomenų bazės konfigūracijos raktinių žodžių įrankį, pridėkite raktinį žodį, kurio GEOMETRY_STORAGE nustatyta kaip ST_GEOMETRY, ir naudokite įrankį Importuoti geoduomenų bazės konfigūracijos raktinius žodžius, kad importuotumėte pakeitimus. Pvz., Galite eksportuoti lentelę sde_dbtune ir pridėti konfigūracijos raktinį žodį taip:

Pridėjus raktinį žodį, galite jį nurodyti, kai kuriate funkcijų klasę „ArcGIS“, kad jūsų naujoji klasė naudotų ST_Geometry saugyklą.


Norėdami sukurti funkcijų klases su ST_Geometry saugykla, naudokite „ArcGIS“

Jūs pasirenkate, kokį saugyklos tipą naudoti kuriant funkcijų klases per „ArcGIS for Desktop“.

Kai „ArcGIS“ sukuriate funkcijų klasę, kurioje naudojama ST_Geometry saugykla, sukuriama funkcijų klasės verslo lentelė su ST_Geometry tipo stulpeliu, kuriame saugomi objektų klasės erdviniai duomenys.

Duomenų bazėje

Nurodote erdvinių duomenų tipą, kurį reikia naudoti kuriant funkcijų klasę „ArcGIS“. Norėdami gauti daugiau informacijos, žr. Ypatybių klasės kūrimas duomenų bazėje iš „ArcGIS for Desktop“.

Geoduomenų bazėje

Funkcijų klasės saugojimo informaciją valdo konfigūracijos raktinių žodžių nustatymai lentelėje sde_dbtune. Konfigūracijos raktinį žodį nurodote kurdami funkcijų klasę „ArcGIS“. Sukūrus geoduomenų bazę, numatytame konfigūracijos raktiniame žodyje parametras GEOMETRY_STORAGE nustatytas kaip ST_Geometry. Jei norite išsaugoti visus ar didžiąją dalį savo erdvinių duomenų naudodami ST_Geometry tipą, nekeiskite raktinio žodžio DEFAULTS parametro GEOMETRY_COLUMNS vertės, tada, kai kuriate funkcijų klasę iš ArcGIS, nurodykite raktinį žodį DEFAULTS.

Jei pakeisite parametrą Numatytieji GEOMETRY_STORAGE, kad būtų naudojamas „PostGIS“ geometrijos duomenų tipas, bet norite sukurti kai kurias funkcijų klases naudodami duomenų tipą ST_Geometry, lentelėje „sde_dbtune“ galite sukurti naują ST_Geometry saugyklos konfigūracijos raktinį žodį. Naudokite komandą „sdedbtune“, kad eksportuotumėte lentelės „sde_dbtune“ turinį į teksto failą, pridėkite raktinį žodį, kurio „GEOMETRY_STORAGE“ vertė nustatyta kaip „ST_GEOMETRY“, tada naudokite „sdedbtune“ pakeitimams importuoti. Pvz., Galite eksportuoti lentelę sde_dbtune ir pridėti konfigūracijos raktinį žodį taip:

Pridėjus raktinį žodį, galite jį nurodyti, kai kuriate funkcijų klasę „ArcGIS“, kad jūsų naujoji klasė naudotų ST_Geometry saugyklą.


ST_Geometry „Oracle“

Erdvinių duomenų tipas „Esri ST_Geometry“ gali būti naudojamas „Oracle“ duomenų bazėse, kuriose yra geoduomenų bazė, ir tose, kuriose nėra. Tai leidžia integruoti erdvinius duomenis su kitų tipų verslo duomenimis, todėl jūsų daugiafunkcinė duomenų bazė įgauna pranašumą pridedant geografinį komponentą prie analizės ir duomenų produktų. Erdvinių duomenų saugojimas kartu su kitais verslo objektais taip pat supaprastina kelių naudotojų prieigą, valdymą ir duomenų saugumą, nes turėsite valdyti mažiau duomenų saugojimo išteklių.

Erdvinių duomenų „Esri ST_Geometry“ tipas yra numatytasis „Oracle“ geoduomenų bazių geometrijos saugyklos tipas. ST_Geometry tipą taip pat galite įdiegti „Oracle“ duomenų bazėse naudodami geografinio apdorojimo įrankį „Kurti erdvinio tipo“.

ST_Geometry tipas nepalaikomas naudojant „Oracle XA“ operacijas.

Norėdami sukurti geoduomenų bazę ir naudoti ST_Geometry tipo bei domeno indeksą „Oracle“ DBVS, geoduomenų bazės administratoriaus vartotojui (sde) turi būti suteiktos tinkamos sistemos privilegijos, leidžiančios nustatyti tipus, operatorius ir saugomas procedūras. Norėdami gauti informacijos apie reikalingus leidimus, žr. „Oracle“ geoduomenų bazių privilegijos. Norint įdiegti ST_Geometry tipą į „Oracle“ duomenų bazę, taip pat turi būti SDE vartotojas ir jam turi būti suteiktos specialios teisės egzemplioriams, operatoriams ir saugomoms procedūroms nustatyti. Norėdami gauti daugiau informacijos, žr. ST_Geometry tipo pridėjimas prie „Oracle“ duomenų bazės.

Naudodami „Esri ST_Geometry“ erdvinį tipą „Oracle“ geoduomenų bazėje arba „Oracle“ duomenų bazėje, galite pasiekti savo erdvinius duomenis naudodami SQL funkcijas, kurios įdiegia ISO SQL / MM erdvinį standartą, ir prie OGC paprastų funkcijų specifikacijos. Galite naudoti SQL komandas erdvinėms funkcijoms saugoti, nuskaityti ir valdyti, kaip ir bet kokio kito tipo duomenims. Norėdami gauti ir analizuoti erdvinius duomenis, galite naudoti ilgą standartais pagrįstų funkcijų sąrašą su SQL komandomis ir saugomomis procedūromis. Turėdami SQL prieigą prie duomenų, galite naudoti kitas programas norėdami pasiekti „Oracle“ sukurtus duomenis.

„ST_Geometry“ bibliotekos turi būti įdiegtos tame pačiame serveryje kaip ir „Oracle“ egzempliorius, kad galėtumėte pasiekti erdvines ypatybes naudodami SQL. Įsitikinkite, kad jūsų „Oracle“ serverio operacinė sistema palaikoma ST_Geometry bibliotekose.

Taip pat turite sukonfigūruoti „Oracle“ extproc naudoti SQL norint pasiekti lenteles, kuriose yra erdvinio tipo ST_Geometry.


16.2.7. Pridėkite geometrijos įrašą prie lentelės naudodami SQL¶

Dabar, kai mūsų lentelėse įgalinta geografinė padėtis, jose galime išsaugoti geometrijas:

Naujame aukščiau pateiktame įraše turėsite nurodyti, kurią projekciją (SRID) norite naudoti. Taip yra todėl, kad įvedėte naujo taško geometriją naudodami paprastą teksto eilutę, kuri automatiškai neprideda teisingos projekcijos informacijos. Akivaizdu, kad naujajame taške reikia naudoti tą patį SRID kaip duomenų rinkinyje, prie kurio jis pridedamas, todėl turite jį nurodyti.

Pavyzdžiui, jei šiuo metu naudojote grafinę sąsają, kiekvieno taško projekcija būtų automatiškai nurodoma. Kitaip tariant, paprastai nereikės jaudintis dėl kiekvieno norimo pridėti taško teisingos projekcijos, jei jau nurodėte ją tam duomenų rinkiniui, kaip tai darėme anksčiau.

Dabar tikriausiai yra tinkamas laikas atidaryti QGIS ir pabandyti peržiūrėti savo žmonių lentelę. Taip pat turėtume pabandyti redaguoti / pridėti / ištrinti įrašus ir tada atlikti pasirinktas užklausas duomenų bazėje, kad pamatytume, kaip pasikeitė duomenys.

Norėdami įkelti „PostGIS“ sluoksnį į QGIS, naudokite meniu „Sluoksnis“ ► „Pridėti„ PostGIS “sluoksnius“ arba įrankių juostos mygtuką:

Tai atvers dialogą:

Spustelėkite mygtuką Naujas, kad atidarytumėte šį dialogo langą:

Tada nustatykite naują ryšį, pvz .:

Norėdami sužinoti, ar QGIS rado adresų duomenų bazę ir ar jūsų vartotojo vardas ir slaptažodis yra teisingi, spustelėkite „Test Connect“. Jei tai veikia, pažymėkite žymės langelius šalia Išsaugoti vartotojo vardą ir Išsaugoti slaptažodį. Tada spustelėkite Gerai, kad sukurtumėte šį ryšį.

Atgal į dialogo langą Pridėti „PostGIS“ sluoksnius spustelėkite Prijungti ir pridėkite sluoksnius prie savo projekto, kaip įprasta.

16.2.7.1. Išbandykite save ¶

Suformuluokite užklausą, kurioje paprastas tekstas parodo asmens vardą, gatvės pavadinimą ir vietą (iš „the_geom“ stulpelio).


Žiūrėti video įrašą: Editing scalebars in ArcGIS Pro (Spalio Mėn 2021).