NOMBRE: nombre de la
capital distrital.
DISTRITO: nombre del distrito.
PROVINCIA: nombre de la provincia.
DEPARTAMENTO: nombre del departamento.
X: longitud de la capital distrital en PSAD56.
Y: latitud de la capital distrital en PSAD56.
En este ejemplo usaremos las columnas “X” e “Y”.
Registrar un archivo en MapInfo: para poder usar un archivo
(en este ejemplo, un archivo CSV que es un archivo ASCII) y visualizar su información
en el MapInfo, se debe abrirlo usando el “Open
a Table” y escoger el tipo de archivo que se quiere ver (en este caso, el
tipo CSV)
Luego nos pedirá que si queremos que la primera fila sea la
cabecera de las columnas y lo abrimos con el botón “Ok”. Luego se creara un
archivo TAB con el mismo nombre del CSV abierto (o registrado). Por ejemplo, si
hemos abierto el archivo CAPITALDISTRITO_PSAD56.csv, entonces se creara el archivo CAPITAL DISTRITO_PSAD56.tab. Vemos que no existe el archivo CAPITAL DISTRITO_PSAD56.dat (donde está
la base de datos) ni el CAPITAL
DISTRITO_PSAD56.map (donde están las geometrías). Para el caso del CAPITAL DISTRITO_PSAD56.dat, se usara
el archivo CAPITAL DISTRITO_PSAD56.dat
como base de datos. Para crear el CAPITAL
DISTRITO_PSAD56.map, se sigue la siguiente secuencia: Menu Table/ Create
Points… y aparecerá la siguiente ventana:
Se usara el Código MapBasic siguiente para recrear lo mismo explicado anteriormente:
Include "MapBasic.Def" Dim RutaCSV as String Dim NombreCSV as String Dim NombreTAB as Alias Dim ProjActual as String Dim idWin as Integer Dim MiX as Alias Dim MiY as Alias Dim i as integer idWin = FrontWindow()'ID DEL MAP ACTUAL ProjActual = MapperInfo(idWin ,17)'PROYECCION DEL MAP ACTUAL RutaCSV = "C:\Ingeografos\" 'COLOQUE LA RUTA DEL ARCHIVO CSV NombreCSV = "CAPITAL DISTRITO_PSAD56" 'NOMBRE DEL ARCHIVO CSV SIN LA EXTENSION NombreTAB = PathToTableName$(RutaCSV & NombreCSV & ".csv")'SE OBTIENE EL NOMBRE DEL TAB REGISTRADO If FileExists(RutaCSV & NombreCSV & ".csv") Then 'VERIFICACION SI EXISTE EL CSV Register Table RutaCSV & NombreCSV & ".csv" 'REGISTRAMOS EL CSV (COMO "CAPITAL DISTRITO_PSAD56.TAB") Type ASCII Delimiter "," Titles ' LE DECIMOS AL MAPBASIC QUE EL ARCHIVO ES ASCII,DELIMITADO CON COMA "," Y CON TITULO Open Table RutaCSV & NombreCSV as NombreTAB 'ABRIMOS EL ARCHIVO "CAPITAL DISTRITO_PSAD56.TAB" Browse * From NombreTAB Run Command "Create Map For " & NombreTAB & " " & ProjActual 'CREAMOS "CAPITAL DISTRITO_PSAD56.MAP" CON LA PROYECCION ACTUAL Add Map Window idWin Layer NombreTAB 'AGREGAMOS "CAPITAL DISTRITO_PSAD56.MAP" A LA VISTA ACTUAL Set Map Window idWin Layer 1 Editable On 'Y LO PONEMOS EN EDICION i = 1 'INICIALIZAMOS UN CONTADOR, CADA REGISRO ES UN PUNTO EN "CAPITAL DISTRITO_PSAD56.MAP" Fetch First From NombreTAB 'LEEMOS LA PRIMERA LINEA DEL "CAPITAL DISTRITO_PSAD56.TAB" Do While Not EOT(NombreTAB) 'ESTE LOOP LEERA CADA REGISTRO DE "CAPITAL DISTRITO_PSAD56.TAB" MiX = NombreTAB & ".col5"'LEEMOS LA LONGITUD DEL REGISTRO ACTUAL MiY = NombreTAB & ".col6"'LEEMOS LA LATITUD DEL REGISTRO ACTUAL Update NombreTAB 'Y ACTUALIZAMOS EL "CAPITAL DISTRITO_PSAD56.MAP" Set Obj = CreatePoint(MiX,MiY) Where Rowid = i i = i + 1 'AUMENTAMOS MAS UNO EL CONTADOR DE PUNTOS Fetch Next From NombreTAB 'LEEMOS EL SIGUIENTE REGISTRO Loop Note "LISTO..." 'MENSAJE DE FINALIZACION Else Note "ERROR EN LA LECTURA DEL ARCHIVO CSV..." 'MENSAJE DE ERROR DE LECTURA End If
El código ya tiene una explicación en sus comentarios, pero
se debe aclarar que se debe Actualizar y no Agregar los puntos al
archivo CAPITAL DISTRITO_PSAD56.map. La
razón es que los datos provienen de un archivo CSV (CAPITAL DISTRITO_PSAD56.csv) y lo estamos usando como si fuera un
archivo DAT (como si fuera el CAPITAL
DISTRITO_PSAD56.dat). Si Agregamos puntos a CAPITAL DISTRITO_PSAD56.map, tendríamos que agregar registros a CAPITAL DISTRITO_PSAD56.csv, cosa que
no se requiere, además saldría un error de que el Tab que se está editando es
de SOLO LECTURA por ser un archivo registrado.
Esperando que sea de utilidad, será hasta el otro mes.
Saludos.