Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: Virgil Tracy en Julio 08, 2014, 09:32:19 pm

Título: Mapa Interactivo
Publicado por: Virgil Tracy en Julio 08, 2014, 09:32:19 pm
Tengo un programa agricola funcionando y queria agregarle un mapa interactivo donde hacer click en el terreno y me saliera una estadistica, cual es su produccion , quien esta a cargo, su consumo de fertilizantes y pesticidas, cuantas colmenas de abejorro esta usando, etc.
Enter mensiono este ejemplo realizado en vb.net http://www.vbforums.com/showthread.php?619648-NET-3-5-Map-Viewer-Control-%28United-States-Data-Included%29 (http://www.vbforums.com/showthread.php?619648-NET-3-5-Map-Viewer-Control-%28United-States-Data-Included%29), y lo adapte para que funcionara en vb6.

(http://s8.postimg.org/xhs7tkq29/mv1.jpg) (http://postimg.org/image/xhs7tkq29/)

http://www.4shared.com/rar/qhYfaf0gce/mapviewer.html

Al igual que el ejemplo, tambien utilizo gdiplus, lo que permite usar colores con transparencia
espero le sirva a algien mas...

(http://s12.postimg.org/v1qmjic61/mv2.jpg) (http://postimg.org/image/v1qmjic61/)

ACTUALIZADO

Ahora incluye un conversor SVG Path a Area y los datos para el mapa de Peru y Argentina  ;D

(http://s30.postimg.org/qg4knxdal/Peru.jpg) (http://postimg.org/image/qg4knxdal/)

(http://s11.postimg.org/mzosofa3z/Argentina1.jpg) (http://postimg.org/image/mzosofa3z/)

http://www.mediafire.com/download/g9ph5exg2p35x90/MapViewer.rar (http://www.mediafire.com/download/g9ph5exg2p35x90/MapViewer.rar)
Título: Re:Mapa Interactivo
Publicado por: E N T E R en Julio 09, 2014, 12:45:35 pm
Gran pu... man como quedo bien gracias gracias.

Saludos...
Título: Re:Mapa Interactivo
Publicado por: YAcosta en Julio 09, 2014, 01:02:39 pm
Y si fuera con otro pais? hay un tema de dibujar con las coordenadas no? o que método se puede usar para simplificar la tarea de graficar los estados de otro pais.
Título: Re:Mapa Interactivo
Publicado por: Waldo en Julio 10, 2014, 01:26:23 pm
Me interesa este post, justo me estan pidiendo algo asi, pero no son mapas de paises, o ciudades, son mas bien planos de autocad, recien arranco con esto, los planos estan en formato DWF
Título: Re:Mapa Interactivo
Publicado por: Virgil Tracy en Julio 14, 2014, 10:04:37 pm
Lo mas complicado de adaptar el control de vb.net a vb6 no fue el codigo, fueron los puntos...  :P

Para lo que necesito es bastante sencillo porque son invernaderos que no han cambiado de tamaño, forma o ubicacion en varias temporadas, son todos rectangulares orientados norte-sur y hay algunos este-oeste

encontre este tutorial en donde ocupan inkscape para dibujar el mapa, inkscape crea un archivo .SVG
buscando en google existen muchos mapas de paises, ciudades en formato.SVG,  en wikipedia hay harto material

http://tecnato.com/mapas-interactivos-para-la-web-utilizando-inkspace-svg-y-el-plugin-jvectormap/ (http://tecnato.com/mapas-interactivos-para-la-web-utilizando-inkspace-svg-y-el-plugin-jvectormap/)

(http://tecnato.com/wp-content/uploads/2013/08/jvm01.png)
Título: Re:Mapa Interactivo
Publicado por: YAcosta en Julio 14, 2014, 10:26:49 pm
genial!!! gracias Virgil
Título: Re:Mapa Interactivo
Publicado por: Bazooka en Julio 15, 2014, 08:13:48 pm
Por que no puedo descargarlo ?
Ni descarga prioritaria ni descarga Gratuita me lo baja ..
Título: Re:Mapa Interactivo
Publicado por: aedEric en Julio 15, 2014, 09:42:30 pm
Si nomal recuerdo hay que realizar un registro gratuito
Título: Re:Mapa Interactivo
Publicado por: Bazooka en Julio 15, 2014, 11:07:56 pm
otro enlace valido ?
Título: Re:Mapa Interactivo
Publicado por: aedEric en Julio 16, 2014, 01:04:09 am
el enlace funciona perfectamente Bazooka, solo tienes que registrarte es gratuito y rapidoa la descarga
Título: Re:Mapa Interactivo
Publicado por: Albertomi en Julio 16, 2014, 04:41:07 pm
Estimado Virgil Tracy
 
Excelente trabajo, gracias por compartir el código.
 
Tú trabajo demuestra una vez más el poder de este dinosaurio llamado VB6. Al margen de que lenguaje es mejor o de si código administrado o código no administrado es mejor, imaginen si Microsoft le diera a nuestro viejo amigo VB6 la posibilidad de compilar a 32 y/o 64 bit; manejar nuevos formatos de archivos (por ejemplo PNG, etc.), crear servicios Windows, crear Threads , manejo de web services, etc...
 
 
Saludos, desde algún lugar de Lima-Perú
Título: Re:Mapa Interactivo
Publicado por: LeandroA en Julio 17, 2014, 09:54:14 am
Muy bueno Virgil Tracy, muy lindos efectos, yo el otro dia estaba por comenzar a hacer algo parecido, alguien lo había pedido en el foro, pero después me colgué y no lo termine, lo iba a hacer con GDI clasico, obviamente no iba a tener ese efecto, pero quizás lo que iba a estar bueno es el diseñador que con un solo click ya que reconocía una región y guardaba las regiones generadas  en un archivo.

Felicitaciones.
Título: Re:Mapa Interactivo
Publicado por: Bazooka en Julio 17, 2014, 05:37:45 pm
Fenomeno!!! muy bueno ya lo descargue !!!


Veo que es bastante complicado el tema de crear uno por uno las funciones para cada estado !!

Excelente muestra del potencial de nuestro VB6 y de Virgil
Título: Re:Mapa Interactivo
Publicado por: PatriciaBB en Julio 25, 2014, 04:45:28 pm
WoW... amigo Virgil Tracy esta recool la aplicación. Me sumo a la pregunta de YAcosta como puede hacer para tener las coordenadas para otros mapas. Como de un archivo .SVG se pueden sacar las coordenadas, no lo entiendo. Y me confunde el link porque las coordenadas le ponen letras.

Besitos

PatriciaBB
Título: Re:Mapa Interactivo
Publicado por: PatriciaBB en Agosto 01, 2014, 01:16:00 pm
Chicos... alguno entiende como portar las coordenadas del archivo .SVG al código del amigo Virgil Tracy para poder cargar mapas de otros países o de otras ciudades...

PatriciaBB
Título: Re:Mapa Interactivo
Publicado por: cliv en Agosto 07, 2014, 06:19:44 am
I think a good application can be ImageMapVB from Duncan Jones  (merrioncomputing) :

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=40141&lngWId=1&txtForceRefresh=8720144471487725 (http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=40141&lngWId=1&txtForceRefresh=8720144471487725)

PRO:
- uses raster image for areas ...easy to design
- easy to draw polygon hotspot in HTML using free image mapper software or integrated editor
- easy to change maps on runtime (only change HTML script)
- easy to use in any vb6 program (ocx version)

AGAINST:
- color area on mouse_over not implement
- mark/un-mark area on mouse_click not implemented
- color one or many area from code not implemented

HTML script sample:
Código: [Seleccionar]
<map id="Demo1" name="MerrionComputing_ImageMap">
<area id="Yellow Square" shape="rectangle" coords="9,9,39,39">
<area id="Blue Circle" shape="circle" coords="67,64,15,15">
<area id="Green Triangle" shape="polygon" coords="10,93,35,93,23,117">
</map>
Título: Re:Mapa Interactivo
Publicado por: Virgil Tracy en Agosto 11, 2014, 09:32:04 pm
Para dibujar las areas ocupe el ejemplo de la pagina de EDAIS QSpline Demo

http://edais.mvps.org/Files/Demo/Page3.html
http://edais.mvps.org/Files/Demo/Src/QSplineSrc.zip

dibujaba cada area por separado y luego guardaba los puntos

(http://s29.postimg.org/h8wjvqsyb/mike.jpg) (http://postimg.org/image/h8wjvqsyb/)

Usando como base la funcion drawCountries de este post http://www.codeproject.com/Articles/262179/SVG-World-Map
hice un conversor de path SVG a Area

Paso 1 configurar inkscape para que no use coordenadas relativas y forzar comandos de repeticion
Entrar al menu Archivo->Preferencias de InkScape (Mayusculas+Control+P) y luego a la opcion Salidas SVG
Esto solo tiene efecto al guardar un archivo y luego volver a abrirlo

(http://s15.postimg.org/7578hce6f/image.jpg) (http://postimg.org/image/7578hce6f/)

Paso 2 Seleccionar el path svg que van a convertir, luego entrar al menu Edicion->Editor XML (Mayusculas+Control+X)

(http://s13.postimg.org/iblr6u5xf/image.jpg) (http://postimg.org/image/iblr6u5xf/)

Paso 3 En el editor XML seleccionar el atributo d del path, luego seleccionar todo y copiar

(http://s28.postimg.org/lk9prh2rd/image.jpg) (http://postimg.org/image/lk9prh2rd/)

Paso 4 En el conversor llenar todos los datos, donde Area es el nombre de la funcion que crea el area y del archivo .txt donde se guarda el prototipo de funcion, Nombre es el nombre de lo que representa el area, Texto es la abreviacion que se muestra en el centro del area en el mapa, y data son los datos del path svg aqui pegan los datos copiados del editor XML

(http://s3.postimg.org/928yvs18f/image.jpg) (http://postimg.org/image/928yvs18f/)

Paso 5 Abrir el archivo .txt creado por el conversor, luego el contenido copiarlo al programa, despues ven como va quedando la posicion y el calce de las areas, y todo este proceso deben hacerlo por cada area que quieran agregar al mapa


(http://s1.postimg.org/8m3v3bunf/image.jpg) (http://postimg.org/image/8m3v3bunf/)

Hay que considerar que no todos los mapas SVG sirven, depende mucho de como hallan sido dibujados, para probar el conversor baje varios mapas de Peru y Argentina, bastante prometedores (sin color, areas bien definidas) Con el mapa de Peru no tuve mayores problemas, salvo Lima que se resistio un poco, en cambio con el mapa de Argentina, probe primero con Jujuy y el conversor me creo una estrellas de muchas puntas, y era que el mapa habia sido dibujado usando coordenadas relativas, asi que con inkscape lo guarde como un SVG Plano y al abrirlo de nuevo, el conversor me creo areas con la forma correcta, pero quien lo dibujo no hizo los bordes de area tan precisos, asi que hay un pequeño solapamiento, pero con la herramienta editar nodos de trayecto se puede arreglar

A la clase WorldMapViewer agregue un sub llamado Transform( dx,dy,NewScale) que sirve para deplazar el mapa por los ejes xy, y tambien permite escalar el mapa, si ponen en NewScale=0.5 el mapa se reduce as 50%, en cambio si ponen 2 el mapa se agranda al doble, para mantener la escala original pongan 1

En el comprimido van los datos de los mapas de Peru y Argentina que converti

http://www.mediafire.com/download/g9ph5exg2p35x90/MapViewer.rar (http://www.mediafire.com/download/g9ph5exg2p35x90/MapViewer.rar)
Título: Re:Mapa Interactivo
Publicado por: xxdoc en Junio 01, 2016, 10:53:10 pm
I have a problem want you help me

see picturs

(http://s33.postimg.org/howy5lp7v/image.jpg) (http://postimg.org/image/howy5lp7v/)

hao can i do this if i want change svg , x or y ,so that my picturbox can show all image

can you tell me svg x or y ,and picturebox x or y  have some differents?
Título: Re:Mapa Interactivo
Publicado por: xxdoc en Junio 01, 2016, 10:55:21 pm
I have a problem want you help me

see picturs

(http://s33.postimg.org/howy5lp7v/image.jpg) (http://postimg.org/image/howy5lp7v/)
(http://s33.postimg.org/qasg8ddrf/image.jpg) (http://postimg.org/image/qasg8ddrf/)

hao can i do this if i want change svg , x or y ,so that my picturbox can show all image

can you tell me svg x or y ,and picturebox x or y  have some differents?
Título: Re:Mapa Interactivo
Publicado por: xxdoc en Junio 01, 2016, 11:50:34 pm
I have a problem want you help me

see picturs

(http://s33.postimg.org/howy5lp7v/image.jpg) (http://postimg.org/image/howy5lp7v/)
(http://s33.postimg.org/qasg8ddrf/image.jpg) (http://postimg.org/image/qasg8ddrf/)

hao can i do this if i want change svg , x or y ,so that my picturbox can show all image

can you tell me svg x or y ,and picturebox x or y  have some differents?

ok i have konw  why。

i have not see this function 。 “.Transform 0, 0, 1”  if change this function,may be goo d

thanks