-
BDGeomet: Obtenció de geometries des d'una base de dades (local o remota)
Accés directe de l'ajuda a Internet: BDGeomet
Accés a l'aplicació des del menú:
"Fitxer | Importar | Vectors i/o bases de dades | DBF, Access, etc -> MMM (PNT, ARC/NOD, POL)"
"Fitxer | Exportar | PNT -> DBF (x,y,z)"
"Eines | Manteniment de fitxers | Obtenció de punts des de taula DBF, Access, etc"
Presentació
Aquesta aplicació genera fitxers vectorials a partir d'un camp de localitzacions geogràfiques de tipus punt (X,Y) o d'un camp de geometries WKT d'una taula d'una base de dades qualsevol (local o remota). En el cas d'un camp de localitzacions geogràfiques de tipus punt, el fitxer de sortida es genera estructurat topològicament en format PNT del MiraMon.
Això és particularment útil quan es disposa d'una taula que descriu per a cada registre la localització (X,Y) del punt o els vèrtexs de la seva geometria en format WKT (sigui punt, línia o polígon) i un o més atributs (per exemple nivells de contaminants en pous). En aquest cas es pot convertir la taula en una capa d'informació gràfica (PNT) amb la seva informació alfanumèrica associada (mantenint el lligam a la base de dades original o bé exportant les dades a una taula DBF associada al fitxer de punts).
La taula pot residir en qualsevol base de dades, p.e. DBF, ACCESS, ORACLE, DB2, EXCEL. Per a totes aquelles bases de dades diferents a DBF, l'accés es realitza mitjançant ODBC (Open DataBase Connectivity). És possible adreçar-s'hi directament a aquelles bases de dades localitzades en un fitxer (p.e. fitxers MDB d'ACCESS, fitxers XLS d'EXCEL, etc). Per aquelles bases de dades residents en un servidor (p.e. ORACLE, INFORMIX, DB2, etc) cal utilitzar un fitxer especial, el fitxer DSN (Data Source Name), que es pot generar amb l'eina "Orígenes de Datos (ODBC)" del mateix WINDOWS (es pot cercar ODBC a l'ajuda de WINDOWS per a més informació). En els casos en què s'accedeix a una base de dades via ODBC es pot optar per indicar qualsevol taula o vista (consulta predefinida) existent a la base de dades o bé optar per utilitzar una sentència SQL que generi dinàmicament la taula desitjada.
Les llibreries emprades per a la interpretació i manipulació de geometries en format WKT (Well-Known Text) han estat desenvolupades dins del projecte GEOS (Geometry Engine - Open Source), principalment mantingut per membres de l'OSGeo i diversos col·laboradors independents. Aquestes llibreries són distribuïdes sota una llicència LGPL; agraïm als autors i contribuïdors del projecte GEOS la seva generositat i esforç en posar-les a disposició de la comunitat.
Un cas particular d'aplicació d'aquest programa és la recuperació de les etiquetes que es van fer servir per a assignar atributs a una capa de polígons, ja que la base de polígons (P.dbf) sovint conté, en els camps MAPX i MAPY, les coordenades de les etiquetes. Cal recordar, però, que sempre es permet recuperar les etiquetes d'una capa de polígons a través d'Etiqueta.
La taula origen, doncs, pot ser una taula en format DBF, una taula DBF associada a una base de polígons (P.dbf), o una taula en qualsevol base de dades (ACCESS, EXCEL, ORACLE, DB2, SQL-Server, etc). En qualsevol cas, la taula origen ha de presentar dos camps que continguin, respectivament, les coordenades X i Y del punt. Quan s'extreuen els punts d'una DBF o d'una taula en qualsevol base de dades genèrica, aquests camps poden tenir qualsevol nom; en canvi, s'han de dir MAPX i MAPY quan es tracta de la DBF associada a una base de polígons (opció per defecte en el procés d'estructuració topològica del MiraMon).
Quan s'extreuen els punts d'una DBF o d'una taula en una base de dades genèrica qualsevol, s'exporten tots els camps cap a la base de punts (T.dbf) només en aquells casos que s'ha indicat que no es vol mantenir el lligam amb la base de dades original. En canvi, quan s'extreuen les etiquetes d'un fitxer de polígons estructurat topològicament (P.dbf), només s'incorporaran a la T.dbf aquells camps que NO fan referència a les característiques geomètriques ni topològiques dels polígons (els camps com AREA, PERIMETRE, N_VERTEXS, etc, no s'exporten). Si és necessari escollir només alguns camps cal utilitzar una sentència SQL via ODBC.
En el cas d'un camp de localitzacions geogràfiques de tipus punt, els camps que contenen les coordenades X i Y dels punts poden ser de tipus numèric (N) (p.e. contenir la coordenada Y en UTM-31N 4500120.0 o bé en graus decimals 12.01 graus) o de tipus caràcter (C). En aquest darrer cas, se suporta el format de graus, minuts i segons amb la següent forma: Gº M' S".
També pel cas d'un camp de localitzacions geogràfiques de tipus punt, per defecte, el programa estructura topològicament la capa de punts creada, és a dir, vetlla per la unicitat espacial de manera que dos punts situats a una distància inferior o igual a una tolerància indicada es consideren el mateix punt. Des del botó "Avançades" es permet indicar el valor d'aquesta tolerància (que tindrà valor zero si no se n'indica un altre). També des d'aquest botó "Avançades" es pot indicar que no es desitja estructurar topològicament, i en aquest cas dos o més punts situats al mateix lloc seran mantinguts com a punts independents.
Com s'acaba d'explicar, el valor de la tolerància, que només aplica quan s'estructura topològicament, s'ha d'expressar en les mateixes unitats que les coordenades XY i serveix per tal de considerar iguals dos punts ubicats a una distància euclidiana inferior o igual a aquest valor. Quan això passa, si els atributs dels dos o més punts situats en un radi inferior o igual a la tolerància són diferents (en qualsevol dels camps temàtics de la base de dades), el punt passa a tenir, a la taula T.dbf, tants registres com punts originals tenien atributs diferents (situació que es descriu com a "registre múltiple"). En canvi, si els atributs són iguals (punts molt propers però amb informació repetida) es genera un registre únic, a la taula T.dbf, per al punt. En el cas de mantenir el lligam a la base de dades original via ODBC i d'haver-se de generar registre múltiple per l'estructuració topològica i la tolerància, aquest registre múltiple es crea de manera natural.
A través del botó "Avançades" també es permet indicar el sistema de referència. Si no s'indica, s'aplica el sistema de referència per defecte (desat al MiraMon.par).
Si en la darrera execució va definir-se una tolerància diferent de zero, o un sistema de referència diferent del sistema per defecte indicat al MiraMon.par, el símbol '!' al costat del botó "Avançades..." avisarà que és molt convenient polsar el botó i revisar si encara es vol aplicar aquests paràmetres especials.

Caixa de diàleg de l'aplicació
|
| Caixa de diàleg del BDGeomet. |

Sintaxi
Sintaxi:
- BDGeomet FitxerOrigen FitxerDesti [/CAMPX] [/CAMPY] [/CAMPID] [/ODBC] [/TAULA] [/SQL] [/LLIGAM] [/NO_ESTRUCTURAR] [/TOLERANCIA] [/GMS] [/PROJECCIO] [/DEBUG] [/CONSULTA_LENTA] [/PUNTS] [/CAMPWKT] [/ARCS] [/CAMPZ] [/POLS]
Paràmetres:
- FitxerOrigen
(Fitxer origen -
Paràmetre d'entrada): Fitxer de polígons (POL), una DBF o qualsevol base de dades via ODBC (MDB, XLS, DBF o DSN). Si el fitxer d'entrada és POL, no cal indicar cap paràmetre optatiu. Si el fitxer d'entrada és una base de dades, cal indicar: /CAMPX, /CAMPY i /CAMPID (en el cas d'un camp de coordenades de punts) o /CAMPWKT (en el cas d'un camp de geometria WKT).
- FitxerDesti
(Fitxer destí -
Paràmetre de sortida): Nom del fitxer de punts de sortida, en cas d'importar un camp de coordenades de punts, o nom del fitxer de mapa de sortida, en cas d'importar un camp de geometries WKT.
Modificadors:
/CAMPX=
(Camp de la coordenada X)
Nom del camp que conté la coordenada X (camp físic o resultat d'una consulta SQL). (Paràmetre d'entrada) /CAMPY=
(Camp de la coordenada Y)
Nom del camp que conté la coordenada Y (camp físic o resultat d'una consulta SQL). (Paràmetre d'entrada) /CAMPID=
(Camp identificador)
Nom del camp que és l'identificador d'Entitat (camp físic o resultat d'una consulta SQL). Vegeu el paràmetre /LLIGAM. (Paràmetre d'entrada) /ODBC
(ODBC)
Si el fitxer origen és DBF i es vol tractar via ODBC, cal indicar aquest paràmetre. (Paràmetre d'entrada) /TAULA=
(Taula)
Taula on es troben els camps anteriors. (Paràmetre d'entrada) /SQL=
(Sentència SQL)
Sentència SQL, que per força ha de tenir els camps CAMPX, CAMPY i CAMPID (vegeu el paràmetre /LLIGAM). Es poden utilitzar àlies de camps. (Paràmetre d'entrada) /LLIGAM
(Mantenir lligam entre fitxer PNT i la base de dades)
Si és present indica que es vol mantenir el lligam entre el fitxer de punts i la base de dades original. En aquest cas només s'importa el camp CAMPID a la base de dades associada als punts (T.DBF) i en el REL s'estableix de forma automàtica la connexió amb la base de dades original. En aquest cas és obligat indicar quin és el CAMPID (físic o resultat d'una consulta SQL). Si aquest paràmetre no és present s'importen cap a la base de dades associada als punts (T.DBF) tots els camps de la taula o vista original o tots els camps presents a la consulta SQL. (Paràmetre d'entrada) /NO_ESTRUCTURAR
(No cal verificar la superposició de punts)
Indica que no cal verificar si dos punts estan superposats per tal de generar el PNT. Si s'indica aquest paràmetre no es pot indicar /TOLERANCIA=. (Paràmetre d'entrada) /TOLERANCIA=
(Valor de tolerància entre punts)
Valor de distància entre dos punts per sota del qual dos punts es fonen en un mateix punt. Si no s'indica cap tolerància s'assumeix 0. (Paràmetre d'entrada) /GMS
(Conversió de les coordenades)
En els casos DBF i ODBC, si la projecció és LAT/LONG i les coordenades es troben en el format Gº M' S", cal indicar aquest paràmetre per a realitzar la conversió de forma correcta. Si les coordenades es troben en el format graus decimals, no cal indicar res. Es toleren espais entre Gº M' i S" (p.e. es tolera [15º 3' 12"], però no es tolera [15º,3',12"]); es tolera que hi hagi només Gº i M'. (Paràmetre d'entrada) /PROJECCIO=
(Sistema de referència espacial de les dades)
En els casos DBF i ODBC, cal indicar en quin sistema de referència espacial es troben les dades, amb la finalitat de documentar correctament aquest aspecte al fitxer de metadades. Si no s'indica, s'utilitza el valor per defecte del fitxer MiraMon.par. En el cas POL, el sistema de referència espacial serà el mateix que el que té el fitxer de polígons origen. Si cal canviar el sistema de referència espacial es pot utilitzar CanviPrj. (Paràmetre d'entrada) /DEBUG
(Debug)
Informació per a programadors. (Paràmetre d'entrada) /CONSULTA_LENTA
(Connexió ODBC)
Opció especial de recuperació de resultats a través d'una connexió ODBC. Utilitzar només si hi ha problemes amb ODBC. És especialment lenta! (Paràmetre d'entrada) /PUNTS
(Importació de punts de geometria WKT)
En cas d'importar un camp de geometria WKT, si s'indica aquest modificador, s'importaran els punts d'aquest camp. Si no s'indiquen /PUNTS, /ARCS o /POLS, s'importaran tots els tipus d'objectes admesos per MiraMon que es trobin a la geometria WKT. (Paràmetre d'entrada) /CAMPWKT=
(Camp de la geometria WKT)
Nom del camp que conté la geometria WKT (camp físic o resultat d'una consulta SQL). (Paràmetre d'entrada) /ARCS
(Importació d'arcs de geometria WKT)
En cas d'importar un camp de geometria WKT, si s'indica aquest modificador, s'importaran els arcs d'aquest camp. Si no s'indiquen /PUNTS, /ARCS o /POLS, s'importaran tots els tipus d'objectes admesos per MiraMon que es trobin a la geometria WKT. (Paràmetre d'entrada) /CAMPZ=
(Camp Z)
Nom del camp que conté la coordenada Z (camp físic o resultat d'una consulta SQL). En el cas d'importar un camp de geometries WKT, es pot escollir entre indicar un camp per a la coordenada Z (/CAMP=...) o importar les coordenades Z de les geometries WKT indicant només el modificador (/CAMP). (Paràmetre d'entrada) /POLS
(Importació de polígons de geometria WKT)
En cas d'importar un camp de geometria WKT, si s'indica aquest modificador, s'importaran els polígons d'aquest camp. Si no s'indiquen /PUNTS, /ARCS o /POLS, s'importaran tots els tipus d'objectes admesos per MiraMon que es trobin a la geometria WKT. (Paràmetre d'entrada)
NOTES:
En el cas de fitxers de tipus DBF:
Els noms dels camps CAMPX, CAMPY, CAMPID han de seguir les especificacions del format DBF.
+ Els caràcters vàlids són: lletres majúscules [A-Z], xifres [0-9] i el caràcter '_', però no a l'inici.
+ No es toleren espais en blanc.
+ El màxim nombre de caràcters és 10.
En el cas de bases de dades via ODBC:
+ Si els noms dels camps CAMPX, CAMPY, CAMPID no compleixen els estàndards de dBase, són modificats, i el nom original passa a ser el descriptor del camp en el REL.
+ En el cas que s'utilitzi una sentència SQL, es poden utilitzar àlies pels noms dels camps.
Per exemple:
/CAMPX=X
/CAMPY=Y
/SQL="SELECT Coordenada_X as X, Coordenada_Y as Y, IdentificadorEntitat AS IDE FROM FitxerAmbLesDades.txt"
