Mis Aventuras con AutoCAD MAP: Acceso a datos Geoespaciales

|

En posts anteriores prometi ir indicando este tipo de cosas para que la gente que se inicia en esto vaya teniendo idea de como funciona el famoso AutoCAD MAP y como usarlo con .NET, pues bien algo fundamental es como acceder a los datos Geoespaciales...
Primero que son los datos Geoespaciales?? Es sencillos terminos son los graficos de los mapas, estos normalmente estan divididos en capas en las cuales se tienen representaciones graficas de objetos de distintos tipos, es decir se tiene una capa que tiene los graficos que representan a las calles, otra capa tendra los hidrantes, otra capa tendra las casas (lotes, parcelas, o como les denominen)....
Estas capas fisicamente pueden estar almacenadas en una base de datos como en uno o varios archivos, como ustedes se imaginaran no es una buena practica desarrollar sistemas de informacion geografica sobre archivos, esto nos deja la opcion de la base de datos...
Es posible almacenar estos datos en algunas bases de datos como por ejemplo Oracle, MySQL y SQL Server, la verdad la que mas avanzada esta en el tema es Oracle, al punto de tener su propio visor de datos geoespaciales en las versiones 9i y 10g y prometen una mejora sustancial que aun no evaluo en 11g, SQL Server 2008 promete tambien soportar bien este tema, sin embargo se pueden usar las versiones 2005 e incluso 2000, con MySQL no tengo experiencia en el tema, pero claro si desean bajar un poco los costos de su solucion podrian evaluar esta opcion...
Asi mismo por varias razones se eligio usar Oracle, se intento con la version 9i pero la verdad tuvimos problemas un poco extraños como por ejemplo que a veces AutoCAD dibujaba los datos pero a veces no, las conversiones de sistemas de coordenadas no siempre funcionaban como debian, etc....
Decidido, se uso 10g una version Enterprise con AutoCAD MAP 3D 2008 SP1, lo del Service Pack del AutoCAD es importante por que quita una serie de Bugs molestosos cuando desarrollas, les cuento ademas que yo uso Visual Studio Team System SP1 sobre Windows Vista Business y no he tenido problemas con eso, una recomendacion si es que hagan que AutoCAD MAP funcione con permisos de administrador, asi cuando una excepcion es arrojada Vista no usara el control de excepciones propio del SO si no te mostrara la excepcion y podras saber que esta sucediendo...
Muy bien ahora la parte de la conexion de datos, como he mencionado en posts anteriores AutoCAD tiene la habilidad de hostear aplicaciones .NET, con esto uno puede hacer lo que desea en cuanto a programacion, pero claro el objetivo es usar las facilidades de AutoCAD, especialmente la concatenacion de datos geoespaciales y datos "normales" en la base de datos...
Me costo un poco de tiempo entender un poco la evolucion de este tema, AutoCAD MAP puede acceder de 2 formas a los datos espaciales de un modo nativo:

OSE: Esta es la primera forma de acceder a los datos, pero no los trata como ciudadanos de primera clase, es decir uno obtiene los datos, los modifica pero es dificil manipular datos "normales" asociados con estos...

FDO: Esta es una forma abierta de acceder a los datos, no solo en cualquier base de datos si no tambien en archivos SDF y servicios web geoespaciales (yo tampoco sabia que existian estos pero es cierto!!!), ademas de que es un proyecto Open Source, lo pueden encontrar aqui http://fdo.osgeo.org, con esto si se puede usar los datos graficos de un modo muy interesante, mas aun para mi si funciona con C#, en el caso de AutoCAD MAP 3D 2008 usa la version 3.2.1 que es uno de los ultimos releases, pero esto no lo libra de los bugs...

Para mi caso es claro que si deseo usar Oracle necesito tambien en la maquina cliente tener el famoso Oracle Client, yo les recomiendo la version 10.2.0.3 es la mas estable al momento y funciona en Windows Vista, las anteriores tienen problemas con Windows Vista...

He decidio usar FDO por muchas razones, la mas fuerte es que AutoCAD MAP 3D 2008 ofrece muchas facilidades para usarla como interfaz al usuario final y tambien al programador .NET, esto se refleja por ejemplo que para obtener los datos desde Oracle se pueden usar DataReaders, claro estos son especializados pero se los puede usar tal cual se usan DataReaders, ademas permite ver los datos adjuntos a los datos espaciales y modificarlos de un modo sencillo para un usuario comun, etc..., es un tanto dificil explicar en un solo post el uso de FDO por eso ire explicando por pasos como usarlo, desde la conexion, creacion de capas, actualizacion de objetos y datos, etc...

Bien con estas decisiones tomadas se puede decir que se puede inciar el trabajo, como les comentaba el problema mas grande que encontre yo es la falta de informacion sobre el tema, es por eso que ahora que ya he descubierto muchas de esas cosas he querido compartir esto para que no pasen lo que yo he pasado, y claro si tienen alguna pregunta con mucho gusto los ayudare, por lo pronto es todo por hoy!!!

3 comments:

Eloy Paredes said...

Hola Francisco, estos artículos sobre Autocad MAP están muy interesantes, te comento que estoy comenzando a trabajar en un proyecto en el que tengo que utilizar Autocad MAP, y como comentaste hay muy poco material disponible sobre la programación con plataforma .NET y ahora mismo no tengo mucha idea de cómo realizar la integración de mi aplicación en .NET con Autocad MAP.

En el articulo mencionas que Autocad tiene la habilidad de hostear aplicaciones .NET, por lo tanto se puede hacer lo que uno quiera, pero en mi caso particular no quisiera ejecutar el código .NET desde dentro de Autocad; Lo que yo quiero hacer es una aplicación para Windows (WinForms) y mostrar un plano de Autocad en mi Formulario Windows e interactuar con él, es decir si el usuario selecciona una parcela en el plano recuperar toda la información relacionada con esa parcela y mostrarla en mi formulario, con la posibilidad también de hacer modificaciones en estos datos. Quisiera que me digas si es factible lo que estoy pensando y que me dieras algunas pautas para comenzar a hacer las pruebas con esta tecnología.

Espero tu respuesta y espero también tus próximos artículos, gracias por todo.

Saludos desde Perú.

Anonymous said...

hola..Francisco.
es bueno en verdad encontrarse con blogs como el tuyo,, ayudan bastante y evitan cometer los mismos errores.
Necesito me ayudes en una duda que tengo..
intento plantear mi tesis y deso saber si se puede??con los datos ingresados y actualizaciones en la base de datos actualizar a la vez el grafico de autocad map, sin tener que dibujarlos..
o biseversa los datos que dibujo se actualicen automaticamente en la base de datos.pretendo usar oracle 10g y autocad map 3d 2008
muchas gracias espero tu respuesta mi mail es mayra1ec@yahoo.com

Anonymous said...

Estoy esperando tus proximos blogs con ansiedad ... tocan un tema del cual no hay mucha informacion