You are here:GeoTux»Geo-Blogs»Librerías para Geomática»Construcción de un visor de Shapefiles con herramientas libres

Estadísticas

Invitados: 67
Usuarios registrados: 3095
Usuarios en línea:
-
Registrados hoy:
-

Registro

Redifusión (RSS)

Blogs y Noticias:
Recibe las actualizaciones en Geo-Noticias y Geo-Blogs

Recibir por e-mail
Recibir Geo-Noticias y Geo-Blogs por e-mail

¿Qué es esto?

En Twitter

Lunes 02 de Abril de 2007 03:00

Construcción de un visor de Shapefiles con herramientas libres

Written by  Germán Carrillo
Rate this item
(5 votes)

Con el ánimo de construir mi propio visor de datos espaciales en formato vectorial, me di a la tarea de buscar herramientas de software que me lo permitieran de la manera más libre posible.

 

Introducción

 

Para empezar, debo aclarar que no soy un buen programador, los programadores serios pueden ver el siguiente artículo como poco profundo. Sin embargo, teniendo en cuenta mis limitaciones, me parece fascinante poder integrar herramientas libres para obtener resultados prácticos en el ámbito de la geomática.


¿Para qué tener mi propio visor?

  1. Para poder acceder rápidamente a mis datos espaciales sin tener que cargar los programas usuales, que pueden consumir recursos innecesarios en operaciones simples de consulta.

  2. Para aprender a emplear y a integrar las facilidades que presentan muchos de los proyectos de filosofía libre, demostrando así que el principal obstáculo en la implementación de estas herramientas es nuestro desconocimiento y no sus limitaciones funcionales.

 

¿Qué tipo de aplicación se va a generar?

 

Según Daniel P. Ames (quien está a cargo del desarrollo de componentes GIS en el proyecto MapWindow) existen tres tipos de escenarios para desarrollar software GIS:

  1. Desarrollo de extensiones y plug-ins que agregan funcionalidades a software GIS existente en el escritorio.

  2. Desarrollo de herramientas web de visualización y generación de mapas.

  3. Desarrollo de aplicaciones independientes en el escritorio empleando componentes GIS programables.

Nuestro visor de datos espaciales en formato vectorial será una aplicación independiente en el escritorio, empleando un componente GIS programable, el MapWinGis.ocx de MapWindow.

 

 

¿Qué herramientas de software se requieren?

  1. Sistema Operativo: Windows XP (Bueno, por algo se empieza...) (Licencia: Privativa)
  2. Marco de Desarrollo de Software: .NET Framework 2.0 (Licencia: Freeware)
  3. Entorno Integrado de Desarrollo (IDE): SharpDevelop 2.1 (Licencia: GNU/GPL)
  4. Componente GIS: MapWinGIS.ocx (del proyecto MapWindow Gis) (Licencia: Mozilla Public License)

 

¿Qué es .NET Framework?

 

.NET Framework es un marco de desarrollo de software compuesto por lenguajes de programación, una biblioteca de clases (BCL) y un entorno de ejecución común para lenguajes (CLR). Implementa los estándares abiertos ECMA e ISO/IEC que propenden por una compatibilidad mínima entre los lenguajes que lo integran.

 

En otros términos, .NET Framework se encarga de proveer al programador los lenguajes, herramientas y servicios necesarios para distribuir su aplicación en múltiples plataformas de hardware.

 

 

¿Qué es SharpDevelop?

 

SharpDevelop es un IDE OpenSource que soporta el desarrollo de aplicaciones en lenguajes como C# y VB.NET; permite escribir código en ASP.NET, ADO.NET, XML y HTML, entre otros; tiene un depurador integrado; permite diseñar formularios para C# y VB.NET; está traducido parcialmente al español; soporta proyectos de instalación; tiene un generador de documentación embebido; soporta múltiples Frameworks: .NET 1.1 y 2.0, Mono y Compact Framework; y admite el protocolo ActiveX (de manera parcial).

 

Es un IDE muy completo que cubre fácilmente los requerimientos de un programador en C# o VB.NET. Particularmente, además de las necesidades básicas, necesitaba un entorno que permitiera el manejo de componentes ActiveX y SharpDevelop lo cumple.

 

 

¿Qué es el MapWinGIS.ocx?

 

El MapWinGIS.ocx es un componente ActiveX escrito en C++ y desarrollado por el proyecto MapWindow Gis. Facilita el desarrollo de aplicaciones en varios lenguajes de programación (C#, VC++, VB6, VB.NET, VBA y Delphi). Esta compuesto por una Interfaz de Programación de Aplicaciones (API) que permite el acceso a objetos, funciones, propiedades y métodos relativos a la visualización y manipulación básica de información geográfica en formato Shapefile, Grid y TIN.

{mospagebreak title= Pag.2 Para comenzar...}

Para comenzar...

 

Para comenzar la construcción del visor, debemos instalar el software requerido.

 

 

Instalación del .NET Framework

 

El .NET Framework 2.0 se puede descargar aquí. Tiene un tamaño de 22,4 MB y requiere el Service Pack 2 de Windows instalado.

Una vez descargado, debemos ejecutar el archivo y seguir normalmente los pasos de instalación.

 

 

Instalación del SharpDevelop 2.1

 

El instalador de Sharpdevelop 2.1 puede obtenerse aquí.

 

Contrario a lo que podríamos pensar sobre un tamaño exagerado del archivo de instalación (pues es un IDE muy completo), solamente ocupa 8,63 MB en el disco duro y después de instalado únicamente 34,26 MB, realmente sorprendente.

 

La instalación de SharpDevelop no presenta mayores inconvenientes.

 

 

Instalación del componente ActiveX MapWinGIS.ocx

 

Podemos obtener el componente MapWinGIS.ocx sin incluir sus dependencias aquí (archivo comprimido, 2,23 MB), o incluyendo sus dependencias aquí (archivo ejecutable, 15 MB). El componente ActiveX requiere de varios archivos dll (runtimes de C y C++ 7.0) para funcionar correctamente, si se quiere estar seguro sobre el funcionamiento del mismo, se recomienda descargar la segunda opción, es decir, el archivo con dependencias.

  1. Si se descargó el archivo sin dependencias:

Descomprimir el archivo MapWinGis43.zip

 

Copiar el archivo MapWinGis.ocx a una de las siguientes carpetas:

 

c:\Archivos de Programa\Archivos Comunes\MapWindow\

c:\Archivos de Programa\Common Files\MapWindow\

 

Debemos crear la carpeta si no existe. En realidad no interesa en qué carpeta se encuentre el archivo pero se recomienda una de las carpetas mencionadas para poderlo encontrar fácilmente si se planean realizar más aplicaciones que utilicen el componente.

  1. Si se descargó el archivo con dependencias:

Ejecutar el archivo MapWinGis43OCXOnly.exe y seleccionar la opción “No, I will restart the computer later”.

 

El archivo MapWinGis43OCXOnly.exe instala las dependencias del componente ActiveX y el archivo MapWinGis.ocx en la carpeta

 

c:\Archivos de Programa\Common Files\MapWindow\

Ahora debemos registrar el archivo MapWinGis.ocx en el sistema:

 

Abrir la ventana Ejecutar: Vamos a Inicio --> Ejecutar

Correr el comando de registro de componentes:

 

En la caja de texto que aparece en la ventana Ejecutar, escribimos:

 

regsvr32.exe “C:\Archivos de programa\Archivos comunes\MapWindow\MapWinGIS.ocx” o

regsvr32.exe “C:\Archivos de programa\Common Files\MapWindow\MapWinGIS.ocx”

 

dependiendo del directorio en el que se encuentre el componente. Obtenemos:

 

Registro del componente MapWinGis.ocx

Lo cual nos indica que tenemos el ActiveX registrado.

 

 

Un obstáculo por superar

 

El ActiveX MapWinGis.ocx es un componente que emplea la tecnología COM, la cual no es soportada de manera directa por .NET; para poder utilizarlo en nuestra aplicación se deben crear un par de archivos interoperables con la tecnología .NET.

 

Estos archivos interoperables pueden ser generados empleando herramientas del Kit de Desarrollo de Software de .NET (.NET SDK), que se encuentra en internet con licencia Freeware. Sin embargo, el archivo de descarga tiene un tamaño superior a los 350 MB, por lo cual el proceso puede resultar inoportuno si se tiene en cuenta nuestro objetivo. Para conocer el procedimiento de obtención de los archivos interoperables podemos visitar esta página web.

 

Como alternativa práctica, podemos optar por descargar directamente los archivos interoperables aquí (archivo comprimido, 46 KB). Tras descomprimir el archivo, obtenemos dos dll:

  1. AxInterop.MapWinGIS.dll
  2. Interop.MapWinGIS.dll

Estos archivos no requieren de registro en el sistema porque son componentes .NET; son importantes porque posibilitan el acceso a los objetos, funciones, propiedades y métodos del componente programable MapWinGis en nuestra aplicación.

 

Ahora debemos copiar los dos archivos en la carpeta en la que se encuentra el componente MapWinGis.ocx (el cual debe dejarse allí pues su registro es necesario para la aplicación).

Hemos terminado con la instalación del software requerido para la construcción del visor, el siguiente paso es crear un proyecto .NET para escribir el código allí.

{mospagebreak title= Pag.3 Creando el proyecto .NET}

 

 

Creando el proyecto .NET

SharpDevelop

Empezaremos a utilizar el Entorno Integrado de Desarrollo SharpDevelop, cuya interfaz luce así:

Interfaz de SharpDevelop

Damos click en el botón Nueva Solución y obtenemos el siguiente diálogo:

Proyecto Nuevo

Escogemos en la parte izquierda la categoría VBNET y la subcategoría Aplicaciones de Windows. En la parte derecha seleccionamos Aplicación Windows. Digitamos en la caja de texto el nombre “Mi_Visor_de_Shapefiles” y seleccionamos la ubicación del proyecto. Damos click en Crear y tenemos la estructura de nuestro proyecto.

 

En la parte izquierda de la interfaz de SharpDevelop podemos encontrar que la pestaña Proyectos se encuentra activa. Observamos que nuestro proyecto tiene Referencias, un archivo de Información del ensamblado que compilaremos (AssemblyInfo.vb), una Forma Principal (MainForma.vb) y una clase que controla el comportamiento de nuestra aplicación (Program.vb). Estos archivos y referencias iniciales son creados por SharpDevelop facilitando el proceso de desarrollo de la aplicación.

Esquema del proyecto

 

Agregando referencias

 

Debemos crear referencias a los archivos interoperables desde nuestro proyecto. Para ello, en la pestaña Proyectos damos click derecho a Referencias y seleccionamos Agregar Referencias.

Agregar Referencias

Activamos la pestaña Visor de Ensamblados .NET y damos click en Explorar. Vamos al directorio en donde se encuentran los dos archivos interoperables (AxInterop.MapWinGis.dll e Interop.MapWinGis.dll) y los cargamos dando click en Abrir. Obtenemos lo siguiente:

Referencias Seleccionadas

Damos click en Ok y ya tenemos las referencias a los archivos interoperables en nuestro proyecto.

Referencias cargadas

 

Agregando el control AxMap

 

En la pestaña Proyectos damos doble click a la clase MainForm.vb, cuyo código se encuentra en la parte central de la interfaz. Activamos la pestaña Diseño y observamos la forma sobre la cual ubicaremos varios controles posteriormente:

Forma MainForm

En la parte inferior izquierda de la interfaz activamos la pestaña Herramientas visualizando los diferentes controles que podemos agregar a la Forma. Damos click derecho en el área Herramientas que se acaba de desplegar y seleccionamos Personalizar Barra Lateral...

Añadir Componente

Seleccionamos la categoría Components (sin desactivarla) y damos click en el botón Añadir Componentes.

Añadir Componente

Activamos la pestaña Personalizado y damos click al botón con los puntos suspensivos, vamos a la carpeta que contiene los archivos interoperables y seleccionamos AxInterop.MapWinGis.dll, damos click en Abrir y vemos que la ruta al archivo se ha cargado en la caja de texto correspondiente. Damos click al botón Mostrar Componentes y observamos a la derecha el componente AxMap.

Componente AxMap

Damos click en Ok a las ventanas abiertas y con esto hemos habilitado el control que nos servirá para visualizar la información geográfica en la Forma.

AxMap disponible

En Herramientas damos click a la barra Components y a luego a AxMap. Llevamos el puntero hacia la Forma y dibujamos un rectángulo sobre la misma, allí se alojará el control AxMap que tiene un color blanco por defecto.

Control AxMap en la forma

{mospagebreak title= Pag.4 Diseñando la interfaz del visor}

 

 

Diseñando la interfaz del visor

 

Continuando con el diseño de nuestro visor, en Herramientas damos click a la barra Windows Forms y seleccionamos Button. Llevamos el cursor a la Forma y dibujamos seis botones que corresponderán a Acercar (Zoom In), Alejar (Zoom Out), Zoom Previo, Zoom Completo, Pan y Agregar Capa.

 

A cada botón en la Forma debemos modificarle sus propiedades, visibles en una de las pestañas de la parte derecha de la interfaz de SharpDevelop, las configuramos así:

Botón

Propiedad Name

Propiedad Text

Propiedad Image

1

btnZoomIn

 


b_ZoomIn.png

2

btnZoomOut

 


b_ZoomOut.png

3

btnZoomPrevio

 


b_ZoomPrevio.png

4

btnZoomCompleto

 


b_ZoomCompleto.png

5

btnPan

 


b_Pan.png

6

btnAddLayer

 


b_AddLayer.pn

 














 

 

 

 

 

 

 

Las imágenes que empleamos para los botones pueden descargarse aquí (archivo comprimido, 2 KB). La propiedad Text se pone nula para que no interfiera con la imagen del botón.

En este momento la Forma debe lucir así:

Forma con botones

Agregamos ahora desde Herramientas en la barra Windows Forms el control OpenFileDialog, que nos va a permitir buscar los archivos Shapefile en nuestro disco duro para posteriormente cargarlos.

 

Ahora podemos agregar el código a la Forma.

 

 

Agregando el código de la aplicación

 

Antes de agregar el código de nuestro visor, debemos crear una referencia al componente Microsoft Scripting Runtime para habilitar el Objeto de Sistema de Archivos que permite manipular directorios y archivos del sistema. Para ello, vamos a la pestaña Proyectos, damos click derecho a Referencias y seleccionamos Agregar Referencia. En la pestaña COM buscamos el componente mencionado, lo seleccionamos y lo cargamos.

 

Como se trata de un componente COM, .NET no lo soporta directamente; sin embargo, SharpDevelop genera de manera automática el archivo interoperable Interop.Scripting.dll. En el caso del componente MapWinGis.ocx, SharpDevelop no puede generar automáticamente el archivo AxInterop.MapWinGis.dll (aunque si el Interop.MapWinGis.dll) que contiene el control AxMap, importante en nuestra aplicación; por esta razón se prefiere suministrar los archivos interoperables ensamblados previamente.

 

Debemos poder visualizar la nueva referencia Scripting:

Referencia al Scripting Runtime


En la parte central de la interfaz de SharpDevelop (en donde estamos visualizando la Forma) activamos la pestaña Fuente que nos permite editar el código de la Forma.

 

Seleccionamos todo el texto que existe (presionando Control + A por ejemplo) y lo borramos. Abrimos el archivo codigo_visor.txt que puede descargarse de aquí (archivo de texto, 5 KB) y copiamos todo su contenido en el espacio para el código de la Forma. Para comprender mejor el código podemos leer los comentarios realizados en cada sentencia.

 

Ahora debemos hacer que el código que hemos introducido se asocie a los botones de nuestra aplicación porque esto no ocurre de manera automática. Para conseguirlo, activamos la pestaña Diseño y damos doble click al primer botón de la Forma, lo cual nos envía al código y ubica el cursor justo en la sentencia que define su evento click. Hacemos lo mismo para cada uno de los cinco botones restantes.

 


Compilando la aplicación

 

Tecleamos F5 para depurar el programa, si hemos seguido todos los pasos correctamente no deberían existir errores.

 

Damos F9 para generar el ejecutable.

 

El archivo ejecutable se puede encontrar en:

 

directorio_aplicación/bin/Debug/Mi_Visor_de_Shapefiles.exe

 

donde directorio_aplicación es la ruta de la carpeta en la que se encuentra nuestro proyecto. Por ahora no podemos cambiarlo de directorio, pero podemos crear un acceso directo que nos facilite su búsqueda.

 

Podemos descargar un Shapefile de prueba aquí (archivo comprimido, 1.3 MB).

 

Con esto hemos generado nuestro propio Visor de Shapefiles empleando un IDE OpenSource, un Marco de Desarrollo de Software Freeware y un componente GIS libre.

Visor de Shapefiles

Puedes descargar este artículo en pdf desde aquí (510 KB).

 

 

Este artículo ha sido adaptado de Getting Started With the MapWinGis ActiveX Control. (Daniel P. Ames. 2006)

 

 

 

Referencias consultadas:

 

 

Last modified on Viernes 15 de Junio de 2012 09:55

Comentarios  

 
0 # Interesante alternativasamtux 02-04-2007 09:26
Gracias Germán por enseñarnos cómo y cuales herramientas son alternativas para el desarrollo interfaces. Probé las instrucciones del blog y realmente me sorprende que tan poco código pueda obtenerse un visor de datos vectoriales completo. Pregunta que otras funcionalidades podemos conseguir con el componente GIS de MapWindow?
Responder | Responder con una citación | Citar
 
 
+2 # tuxman 02-04-2007 12:41
El Componente MapWinGis actualmente (Abril 2007) soporta lo siguiente:
> Abrir, crear, editar y salvar Shapefiles, Grids, TIN's y dbf's.
> Modificar la simbologí­a del Shapefile.
> Etiquetas de Shapefiles en el mapa.
> Ejecutar consultas espaciales sobre los datos.
> Edición dinámica de datos espaciales.
> Exportar entre los formatos soportados (p.ej. TIN a Shapefile, Grid a TIN, Grid a Shapefile, Shapefile a GRID)
MapWindow está implementando la conexión a PostGIS en su software de escritorio, si se llega a implementar esa funcionalidad en el componente, tendrí­amos la posibilidad de generar aplicaciones muy completas.
Responder | Responder con una citación | Citar
 
 
0 # Gabriel 03-05-2007 00:05
Como hago si tengo un GML para visualizarlo en c# apartir de esas herramientas
Responder | Responder con una citación | Citar
 
 
0 # GMLtuxman 03-05-2007 11:33
Hola Gabriel!, con el ActiveX MapWinGis del proyecto MapWindow no puedes cargar archivos GML.
Deberí­as pensar en exportar el GML a un formato Shapefile para poder trabajarlo con esta herramienta.
Hay aplicaciones para ello, por ejemplo, ogr2ogr que se ejecuta desde una terminal de comandos (www.gdal.org/ogr/ogr2ogr.html), o si prefieres una interface gráfica puedes probar con el OpenJump(openjump.org).
Responder | Responder con una citación | Citar
 
 
0 # ---HERIBERTO 25-06-2007 12:35
como hago un visor en c# para traer un mapa de postgis si mapwindow no soporta esto en su componente. o debo utilizar otras api o herramientas.
Responder | Responder con una citación | Citar
 
 
0 # C# y Postgistuxman 26-06-2007 12:21
Hola, efectivamente debes usar otras APIs. Si lo que necesitas es una aplicación en la web, puedes mirar este tutorial:
www.paolocorti.net/public/wordpress/index.php/category/tutorials/mapserver-tutorial-for-c-mapscript-asp-net/
Integra Mapserver, C# y PostGIS.

En el escritorio las herramientas de programación de C# con PostGIS están en fases iniciales, puedes mirar el proyecto Appomattox.

Si prefieres algo más capaz, podrí­as usar Java con GeoTools, aquí­ hay un ejemplo de implementación:
www.programarvba.com/geotools.htm
Responder | Responder con una citación | Citar
 
 
0 # GraciasSebas 27-09-2007 17:10
Gracias por la ayuda. Estoy comenzando la migración a punto net desde vb 6. y ya que comienzo me encantaria comenzar con todo lo referente a GIS. Si alguien se puede poner en contacto conmigo por este medio les agradezco mucho. Yo tengo bastante informacion de otros temas pero de GIS poco y nada. Muchas gracias
Responder | Responder con una citación | Citar
 
 
0 # dudaDon migué 03-10-2007 18:19
Hola,
necesito montar un visor para instalar en diferentes máquinas. Tengo un proyecto en shapefile, y ya uso un software libre TATUK GIS VIEWER y va muy bien. El caso, que tras ver tus indicaciones, me gustarí­a montar el propio visor con 3 o 4 funciones básicas: cargar shapes, zoom.... , pero mi idea de programar es cortita.
¿me serí­a fácil hacerlo? ¿existe algún manual? GRACIAS DE ANTEMANO
Responder | Responder con una citación | Citar
 
 
0 # Claro que si!!!tuxman 05-10-2007 10:02
Hola don Migué, claro que si puedes hacerlo!, en el artí­culo tienes todos los pasos necesarios, inténtalo. Si necesitas alguna programación extra puedo ayudarte. Por cierto, dentro de poco subiré la manera de generar el archivo instalador de la aplicación para que lo puedas instalar en cualquier equipo.
Responder | Responder con una citación | Citar
 
 
0 # Me puedes ayudar en algojorge viloria 21-10-2007 19:59
Hola amigo, estoy realizando un pequeño proyecto en VB net y deseo alguna orientación para utilizar el Mapwindows.Interfaces.PreviewMap, pues, estoy haciendo un pequeño visor y deseo tener una pequeña ventana que me de el previewMap como en el MapWindows GIS. No soy muy experto en VB net.

te antemano te agradezco lo que me puedas ayudar.

atte,

jorge viloria
Responder | Responder con una citación | Citar
 
 
+1 # Preview Maptuxman 23-10-2007 01:03
Hola Jorge, estuve mirando acerca del Preview Map y encontré que la mejor forma de hacerlo es cargando otro control AxMap a la forma. Lo que se hace es tomar snapshots al control 1 (AxMap1) y cargarlos en el control 2 (AxMap2). Aparte, debes saber q lograr el mismo comportamiento que el Preview Map de MapWindow exige más programación, sin embargo, puede lograrse que cada vez que hagas un zoom sobre el mapa, el control 2 se actualice, mostrando un rectángulo en la zona que estás visualizando. Bueno, la idea es hacer esto:

Declara esta variable como variable miembro de la clase:
Dim draw_hndl as Integer

Luego, agrega un botón para actualizar el control 2, es decir, el que funcionará como Preview Map.
En el evento click del botón agrega un código similar a este (modificalo según los nombres de tus controles):

Sub BotonPreview(By Val sender As Object, ByVal e As EventArgs)
'Crea el snapshot del control 1
dim imagen As MapWinGIS.Image
imagen = AxMap1.SnapShot(AxMap1.Extents)
imagen.Save("snapshot1",True)

axmap2.ClearDrawing (draw_hndl) 'Limpia los recuadros anteriores

'Dibuja el rectángulo sobre el control 2 tomando como base la extensión del control 1
if not (axmap2.NumLayers=0) then
dim MiExtent as new MapWinGIS.Extents
miextent=axmap1.Extents
draw_hndl = axMap2.NewDrawing(MapW inGIS.tkDrawReference List.dlSpatiallyRefe rencedList )
Dim xObj(5) As double
xobj(0) = miextent.xMin
xobj(1) = miextent.xMax
xobj(2) = miextent.xMax
xobj(3) = miextent.xMin
xobj(4) = miextent.xMin
Dim yObj(5) As double
yobj(0) = miextent.yMax
yobj(1) = miextent.yMax
yobj(2) = miextent.yMin
yobj(3) = miextent.yMin
yobj(4) = miextent.yMax
axmap2.DrawPolygon(xob j,yobj,5,System .Convert.ToUInt32(RGB(255,0,0)) ,False)
end if

axmap2.addlayer(imagen ,True)
End Sub

Y listo! Mira cómo luce:



Hay problemas que se deben solucionar, pero creo que es una buena base para que continues con tu visor.

Hasta pronto, espero que te sirva...
Responder | Responder con una citación | Citar
 
 
0 # Conocer la escala del MapaJuan Manuel Ovalle 07-12-2007 01:17
Hola German, llevo algunos meses trabajando con Mapwindows y .net. Tengo un visualizador bastante adelantado, pero tengo el inconveniente que no he logrado conocer la escala del mapa, me gustarí­a saber si me pudieran ayudar. (Algo como se ve en arcgis dentro de un textbox)
Responder | Responder con una citación | Citar
 
 
0 # Escala del mapatuxman 08-12-2007 13:26
Hola Juan Manuel, para conocer la escala del mapa debes hacer lo siguiente:

1. Asegúrate de tener la declaración de tu Mapa con la palabra WithEvents.
Citación:
Private WithEvents axMap1 As AxMapWinGIS.AxMap

Esta declaración la encuentras en el archivo MainForm.Designer.vb de la clase MainForm.vb

2. Agrega las siguientes lí­neas en la sección de declaración de variables miembro de la clase MainForm:
Citación:
Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Integer) As Integer
Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Integer, ByVal nIndex As Integer) As Integer


3. Agrega la siguiente subrutina que se ejecutará cada vez que se actualice el mapa:
Citación:
Private Sub axMap1_ExtentsChanged (ByVal sender As Object, ByVal e As System.EventArgs) Handles axMap1.ExtentsChanged
Dim pixWidth As Double = axMap1.Width
Dim hDC As Integer = GetWindowDC(0)
Dim pixelsPerInch As Double = GetDeviceCaps(h DC, 88 )
Dim DisplayInches As Double = pixWidth / pixelsPerInch
Dim extents As MapWinGIS.Extents
extents = axMap1.Extents
Dim mapwidth As Double = extents.xMax - extents.xMin
Dim DisplayMeters As Double = DisplayInches * 0.0254
Dim scale As Double = mapwidth / DisplayMeters
Dim roundScale As Integer
roundScale = Math.Round(scale)
txtEscala.text="1 : " & roundScale.ToString
End Sub


Ten presente que mi control para el mapa se llama AxMap1 y que mi textbox se llama txtEscala.

Espero te sirva.
Responder | Responder con una citación | Citar
 
 
0 # ConsultaChalo 30-01-2008 10:19
Me gustaria saber si esta utilidad tiene alguna version que funcione con visual foxpro 5.0
Responder | Responder con una citación | Citar
 
 
0 # MapWindowDaniela 31-01-2008 12:00
Hola, mi problema es el siguiente: no se como vincular una base de datos con un mapa. Me gustaria utilizar MapWindow para dicho fin. Si sabes de algun tutorial sobre el programa (especificament e este plug-in) indicame donde encontrarlo.
Muchas Gracias
Responder | Responder con una citación | Citar
 
 
0 # Base de Datos Geográficostuxman 01-02-2008 11:04
Hola Daniela, MapWindow tiene un plug-in para hacer conexiones a BD de Postgres/PostGIS, sin embargo, actualmente está en desarrollo, por lo q no te recomiendo su uso. Podrí­as mirar alternativas como Kosmo, gvSIG, UDig y QGis, por ejemplo. Si lo que requieres es un componente GIS que te permita la conexión puedes probar con el proyecto SharpMap.
Responder | Responder con una citación | Citar
 
 
0 # jdcastillor 06-03-2008 22:19
Hola Germán, programo un aplicacion en visual basic 2005 y con mapwingis y quisiera que de ser posible me asesores respecto a como puedo ver la tabla de un shape con mapwingis, osea, el dbf que el shape tiene asociado. Ya lo h hecho con una conexion OleDbConnection y un datagrid, me funciona pero tengo dos problemas importantes: 1- cuando es muy grande el archivo (100000 o mas registros), se tarda muchisimo en desplegar y 2- no puede abrir archivos que tengan mas de 8 caracteres. ¿Alguna sugerencia por favor?, se que mapwindowgis tiene la propiedad de tablas pero por lo visto solo sirve para modificar la estructura del dbf, muchas gracias. ;-)
Responder | Responder con una citación | Citar
 
 
0 # Ver tabla shapefiletuxman 08-03-2008 14:15
Hola Daniel, como dices, MapWinGIS te permite acceder a la tabla de un shapefile sin usar conexiones OLEDB u ODBC, para ello puedes mirar el código que aparece en este archivo:
download.tuxfamily.org/tuxgis/geoblogs/visorMapWindow/respuestas/Tabla.vb

Para usarlo, solo debes hacer una nueva forma en tu proyecto, agregarle un control GridView, un Botón y asociar el código a la forma, es decir, verifica el nombre de tu forma, y del botón (para el código que te enví­o la forma se llama frmTabla y el botón OpenToolStripMe nuItem).

El código lo descargué del wiki de Mapwindow, lo adapté a VB NET y lo edite un poco.

Lo que dices de los 8 carácteres se refiere a que los campos de una tabla dbf no pueden exceder ese número, es una restricción del formato dbf.

Espero te sirva. Por favor me cuentas cómo te va con los 100.000 registros! ;-)
Responder | Responder con una citación | Citar
 
 
0 # Gracias!!!jdcastillor 14-03-2008 01:24
Muchisimas gracias German, me ha sido muy útil. Dejame comentarte que esta aplicación ya la estaba haciendo en VB net 2003, y mi compañero hizo un código parecidoa al que amablemente me enví­as, pero el inconveniente es que se tarda mucho en desplegar los registros, por esa razón yo utilizé el OleDbConnection , y la mejora fue verdaderamente sorprendente, de tardar como 5 minutos, ya lo hací­a en menos de uno. Cuando migramos a VB 2005, este código que te comento ya no funcionó mas que con tablas pequeñas, las tablas con muchos registros, tardaba mucho y al final mandaba mensaje de error. Ahora con el codigo que nos proporcionas tarda 14 minutos, y quisiera saber si hay algún objeto o truco que agilise esta operación, pues despues hay que hacer consultas y modificar datos etc, y como veras es muy lento. Respecto a lo de los caracteres, me rfiero a que si quieres abris una tabla DBF con OleDbConnection , y el nombre de esta tiene mas de ocho caracteres mas la extensión te manda otro error que dice que no encuentra ese archivo en la ruta especificada. Ojalá y tengas por ahi algún consejo, me serí­a muy util pues noos tiene parados esta situación. Muchas gracias por tu apoyo y hasta pronto! :-, por cierrto, el dbf de este shp, tiene 214223 registros, según el mensaje de texto que devueve tu código. Gracias.
Responder | Responder con una citación | Citar
 
 
0 # Shapefile y dbftuxman 16-03-2008 18:27
Hola Daniel, que bueno que te haya servido el código.

Con respecto a los problemas que me mencionas te pregunto si has trabajado con bases de datos en Postgres/Postgis, tal vez puedas estructurar de otra manera tu información para que no tengas que consultar una tabla tan pesada. También creo que el dbf no es el formato apropiado para manejar esa cantidad de registros. Ten presente que postgis te permite importar un archivo Shapefile directamente a una base de datos geográfica, sin embargo, si trabajas con Postgis tendrí­as que explorar otros proyectos para desarrollar tu aplicación, pues MapWingis no permite la carga directa de datos que se encuentren en este formato.

Como dices, utilizando OLEDB se tiene la restricción de los 8 caracteres en el nombre del archivo. Hice una prueba con una tabla de 40.000 registros y la cargó en unos 10 segundos.

Has intentado con una conexión ODBC?, es una conexión a bases de datos más estándar que la OLEDB.

Espero te sirva.
Responder | Responder con una citación | Citar
 
 
0 # Conexión ODBCjdcastillor 16-03-2008 21:13
Gracias Germán, pues he intentado con el ODBC, y no he podido conectar el DBF, seguiré tratando y te aviso que sucedió,serí­a posible me proporcionaras un ejemplo con ODBC y con el OLEDB, el que usaste para los 40.000 registros, sucede que como te mencioné el que use funcionó perfectamente en vb 2003 y ahora en vb 2005 ya no, no se que este haciendo mal. Muchas Gracias por todo y hasta pronto. ;-)
Responder | Responder con una citación | Citar
 
 
0 # Conexión ODBC y OLEDBtuxman 16-03-2008 23:04
Hola Daniel, aquí­ puedes encontrar los ejemplos de conexión ODBC y OLEDB a un archivo dbf perteneciente a un Shapefile:

download.tuxfamily.org/tuxgis/geoblogs/visorMapWindow/respuestas/Conexiones_OLEDB_ODBC.vb

Espero te sirva.
Responder | Responder con una citación | Citar
 
 
0 # Archivo DBFjdcastillor 17-03-2008 15:18
Gracias nuevamente Germán. Pues probé tu código, y sucedió lo que te he venido diciendo, no puede desplegar los datos de mi dbf. aqui te anexo el archivo para que lo veas:
https://jdcastillor.diinoweb.com/files/Daniel/Datos.rar

me gustarí­a que si no es mucha molestia, lo revises y me des tu opinión. Quiero destacar nuevamente que en visual basic net 2003, funciona de maravilla con el oledb, pero en visual basic 2005, no funciona, manda error de que se ha hagotado el tiempo de espera (o algo así­, no lo recuerdo muy bién). bueno pues espero puedas hacer una pruebita. Gracias por tu apoyo. :-*
Responder | Responder con una citación | Citar
 
 
0 # Archivo DBFtuxman 18-03-2008 21:08
Hola Daniel, hice unas pruebas con el visor de Shapefiles y veo que la geometrí­a se carga muy rápido, sin embargo, la visualización de la tabla es demasiado demorada.

Te aconsejo que en la consulta SQL (que se define para acceder al archivo dbf con OLEDB o con ODBC) construyas un criterio para filtrar los datos, es decir, es mucho más eficiente que intentes mostrar grupos de registros: los 20.000 primeros datos, luego con la ayuda de un botón los siguientes 20.000 y así­ sucesivamente. La columna POBLACIONE de tu shapefile puede servirte para ello, ya que es un contador, quedarí­a algo así­:
Citación:
Dim sql As String = "SELECT * FROM poblados.dbf WHERE POBLACIONE < 20000"

Si necesitas hacer consultas sobre la tabla de datos, puedes utilizar la misma sentencia sql, por ejemplo:
Citación:
Dim sql As String = "SELECT * FROM poblados.dbf WHERE NOMBRE='El Coyote' OR NOMBRE='La Pila' "

Espero te sirva.
Responder | Responder con una citación | Citar
 
 
0 # Seleccionar por atributoskikelanza 08-05-2008 20:36
Hola Germán, lo primero muchas gracias por toda esta información, me ha ayudado mucho.
Estoy haciendo una aplicación muy sencilla, tengo una capa de puntos y me gustarí­a poder seleccionar algunos valores en los campos de la tabla y que se mostrara el resultado en el mapa, es decir, que la capa se actualize y sólo muestre los valores que yo elija (por ejemplo de un año concreto, una especie determinada...)el problema es que me gustarí­a hacerlo de forma interactiva, seleccionando los campos desde el propio visor, de forma que lo puedan consultar usuarios sin conocimientos de SQL, con un desplegable o algo así­, ¿sabes cómo podrí­a hacerlo? Muchas gracias
Responder | Responder con una citación | Citar
 
 
0 # Filtro por atributostuxman 18-05-2008 10:12
Hola Kikelanza, tu pregunta me pareció muy interesante, por eso he escrito un nuevo blog para resolverla, puedes consultarlo en el siguiente enlace:

http://geotux.tuxfamily.org/index.php?option=com_myblog&show=filtro-por-atributos-para-el-visor-de-shapefiles.html&Itemid=59

Espero te sirva, saludos.
Responder | Responder con una citación | Citar
 
 
0 # Muchas Gracias!!kikelanza 18-05-2008 21:38
Hola Germán, muchí­simas gracias por tu ayuda, que maravilla!!
Aprovecho para plantearte otra duda, aunque quizás no tenga relación con MapWindow, a lo mejor tú me puedes orientar, no sé dónde puedo mirarlo.
Me gustarí­a hacer una aplicación para construir gráficas a partir de una tabla dbf, agrupándolas por varios campos.
Por ejemplo, si en una tabla tengo un campo con los años, otro con regiones,otro con el número de incendios y en otro si son naturales o provocados, lo que querrí­a es hacer una gráfica por ejemplo con el total de incendios (provocados y naturales)para un año determinado en cada región, o para una región a lo largo de los años.
Si pudieras orientarme sobre cómo hacerlo me harí­as un gran favor.
Muchas gracias de nuevo. Saludos
Responder | Responder con una citación | Citar
 
 
0 # error "Clase no registrada" en VFPGustavo 13-06-2008 09:13
Hola Germán,

Estuve intentando utilizar el OCX en VFP 8.0 y obtengo un error de clase no registrada (supuestamente se registró exitosamente con el regsvr32) al tratar de utilizarlo.
Estuve buscando en la web otros comentarios y veo que mucha gente tiene el mismo problema con VPF (y no hay ninguna respuesta).
Tenés algún conocimiento de compatibilidad del OCX con VFP?

Slds y gracias
Responder | Responder con una citación | Citar
 
 
0 # Gráficos estadí­sticostuxman 14-06-2008 12:55
Hola kikelanza, de casualidad me he topado con el proyecto GraPHPico: http://graphpico.sourceforge.net/

Está escrito en PHP y te permite armar gráficos estadí­sticos en la web a partir de tus datos, tendrí­as que programar para extraer los datos de tu dbf y pasarlos como parámetros a las funciones que grafican porcentajes, barras o tortas.

Espero te sirva, seguramente no es la única solución a tu problema.
Responder | Responder con una citación | Citar
 
 
0 # Registrar MapWinGIStuxman 14-06-2008 17:09
Hola Gustavo, no he trabajado con VFP. Has intentado usar el instalador del componente MapWinGIS que está en la sección de descargas de la página de MapWindow?

www.mapwindow.org/download.php?show_details=2

El instalador te registra el componente evitando tener que hacerlo de forma manual.

Por lo demás, no te puedo colaborar mucho con VFP.

Saludos al Paraguay.
Responder | Responder con una citación | Citar
 
 
+1 # Problemas ConMapWInGISdjimenez 06-08-2008 06:39
Hola German.

Llevo muy poco usando el control activex MapWinGIS, y me has surgido algunos problemas. Yo estoy utilizando c con visual studio 2005 express edition,y aunque la mayoria de los ejemplo que he encontrado son en visual basic he conseguido hacer lo basico, como abrir un shapefile y hacerle el zoom in, zoom out y demas. El problema me surge cuando quiero meterle etiquetas (con addlabel).

en un manual he encontrado esto:

Private Sub AddLabel()
Dim hndl As Integer, field As Integer, i As Integer
Dim sf As MapWinGIS.Shapefile
Dim text As String
Dim x As Double, y As Double
Dim col As UInt32
'Get handle for layer 0 which must contain a shapefile
hndl = Map1.get_LayerHandle (0)
'Get the shapefile contained in layer 0
sf = Map1.get_GetObject(h ndl)
'Set shapefile field to use when labeling layer as field 0
field = 0
'Set the color for the labels to be black
col = System.Convert.ToUInt32(RGB(0, 0, 0))
'Label every shape in the shapefile
For i = 0 To sf.NumShapes - 1
Page 62 of 194
'Set the text for this shape
text = sf.CellValue(field , i)
'Set the x and y coordinates for this label to be the min x and y coordinates of this shape
x = sf.Shape(i).Extents.xMin
y = sf.Shape(i).Extents.yMin
'Add the label to the layer by the shape centering the text
Map1.AddLabel(hndl, text, col, x, y, MapWinGIS.tkHJustificatio n.hjCenter)
Next
End Sub

Aqui me encuentro con dos problemas:

1-

sf = Map1.get_GetObject(h ndl) aqui cuando compilo me dice que no puede convertir System::Object^ a
MapWinGIS::Shap efile^

2-

x = sf.Shape(i).Extents.xMin
y = sf.Shape(i).Extents.yMin

aqui lo que me pasa es que parece como si sf.shape(i) no tuviera ningun metodo, es decir que no existe Extents dentro de sf.Shape(i).

Espero haberme explicado bien y muchas gracias de antemano

saludos :-)
Responder | Responder con una citación | Citar
 
 
0 # Add Label en C#tuxman 10-08-2008 22:22
Hola djimenez, con respecto a tus preguntas:

1. Debes hacer un cast explí­cito, cambia esa lí­nea por esta:
Citación:
sf = (MapWinGIS.Shapefile) axMap1.get_GetObject(h ndl);

2. En C# no podemos usar la propiedad Shape, en su lugar usamos el método get_Shape().

En la siguiente página puedes ver el código en C# del método AddLabel, creo que lo han subido al sitio web hace un par de meses:
http://www.mapwindow.org/...AddLabel (www.mapwindow.org/wiki/index.php/MapWinGIS:AxMap_AddLabel)
Responder | Responder con una citación | Citar
 
 
0 # Ayuda Germán Carrillo!!Geomatic 20-08-2008 16:14
Quetal German! solo escribo si no sabas donde puedo encontrar documentacion de todo los propiedades de los elementos de MapWindows GIS, que me estoy introduccion a programar usando esta herramienta de open source

espero una pronta respuesta!
Responder | Responder con una citación | Citar
 
 
0 # Documentación MapWinGIStuxman 20-08-2008 17:24
Hola Geomatic, espero me hables de MapWinGIS, si es así­, consulta la guí­a de desarrollo (http://www.mapwindow.org/wiki/index.php/MapWinGIS_Developer's_Guide) que tiene un listado de clases presentes en el componente GIS.
Responder | Responder con una citación | Citar
 
 
0 # coordinar datos utm con pixelshermilaguerra 27-09-2008 19:55
Hola German.. que bueno encontrar un bloq en espanhol Felicitaciones! !!!!
quiero mostrar um poligono con las coordenadas de um campo de futbol de la universidad...donde las coordenadas geograficas son 22.0087, -47.5334, xMin, yMin puntos inciales 22.0094, -47.5341, xMax, yMin puntos finales... estoy utilizando la libreria MapWinGIS_TLB para Delhi. lo que quiero es coordinar los pixeles con estas coordenadas geodesicas...
hice este codigo:

http://downloads.tuxfamily.org/tuxgis/geoblogs/visorMapWindow/codigo_delphi.txt
Responder | Responder con una citación | Citar
 
 
0 # Waypoint en el poligono que representa un Campo de Futbolshermilaguerra 27-09-2008 20:00
No se programar graficos con layer, que manual me recomiendas porque no se como hare para poder marcar puntos(waypoint s) en mi poligono que representa un campo de futbol.. Te agradece por la respuesta Susha.
Responder | Responder con una citación | Citar
 
 
0 # tuxman 08-10-2008 00:02
Hola shermilaguerra, no he probado el Delphi pero creo que estas dos páginas te pueden ayudar:
Dibujar polí­gono:
http://www.mapwindow.org/wiki/index.php/MapWinGIS:AxMap_DrawPolygon

Proyección:
http://www.mapwindow.org/wiki/index.php/MapWinGIS:AxMap_PixelToProj

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # preguntaRICO 25-11-2008 20:29
empiezo a utilizar este programa pero a la hora dde ejecutar el regsvr32.exe “C:Archivos de programaCommon FilesMapWindowM apWinGIS.ocx” me dice

que nop encuentra error en loadlibreri no puede encontrar el modulo especificado espero me ayudes saludos
Responder | Responder con una citación | Citar
 
 
0 # No se encuentra el .ocxtuxman 25-11-2008 23:56
Hola, debes tener en cuenta que según la dirección que estás escribiendo, tu archivo MapWinGIS.ocx deberí­a estar en: "C:Archivos de programaCommon FilesMapWindow"

Si tienes el sistema operativo en español por lo general el archivo está en: “C:Archivos de programaArchivo s comunesMapWindo w”

Realmente no importa dónde esté el archivo, pero la dirección que escribas para el comando regsvr32 debe dirigirte al MapWinGIS.ocx
Responder | Responder con una citación | Citar
 
 
0 # RICO 05-12-2008 22:29
gracias por tu incormacion hola tuxman me puedes ayudar ahora si existe un programa que haga lo mismo pero en otro lenguaje com por ejemplo en c o c o visual basic 6.0
Responder | Responder con una citación | Citar
 
 
0 # Alternativastuxman 05-12-2008 23:42
Hola, seguro, en Java puedes utilizar la librerí­a GeoTools (geotools.codehaus.org/) o el proyecto Open JUMP (openjump.org) para construir tu propio visor, en C# puedes usar SharpMap (www.codeplex.com/SharpMap) y en C++ (o Python) puedes utilizar la API de Quantum GIS (qgis.org). En GNU/Linux, además de las que te he mencionado puedes usar Appomatox (salmonsalvo.net/Appomattox), una librerí­a para Gnome basada en Mono. Seguro que hay más opciones pero estas son las que recuerdo ahora.
Responder | Responder con una citación | Citar
 
 
0 # Donde puedo aprender a programar campos que me muestran la info de una base de datosmtorres 11-12-2008 18:02
Hola, me parece muy interesante poder mostrar un shape de esta forma, pero quisiera saber donde puedo conocer más acerca de programar más campos en esta interfaz que me muestren información de una base de datos. alguien puede guiarme?
Responder | Responder con una citación | Citar
 
 
0 # tuxman 11-12-2008 18:43
Hola ximena, claro, esto es apenas un ejemplo, tiene por objeto introducir a la programación SIG de escritorio, no pretende ser exhaustiva con funcionalidades .

¿Has probado ya SharpMap?, es una librerí­a que te permite acceder a datos espaciales en PostGIS. Tal vez sea lo que necesitas.
Responder | Responder con una citación | Citar
 
 
0 # Consultaesquirla 18-12-2008 10:35
Siguiendo los pasos del manual, despues de compilar (F5) y generar el archivo "EXE" (F9), no informa sobre posibles errores en la compilacion. Seguidamente abre la aplicacion y al tratar de incorporar un archivo Shapefile (colombia.shp)utilizando el boton AddLayer, la aplicacion se cierra automaticamente . Al abrir teniendo el SharpDevelop abierto, salta en siguiente error de linea.

EXCEPCION
Se generó la excepción System.AccessViolation Exception en el programa:
Nuevo Comentario Powered by Azrul's Jom Comment Extensión Attempted to read or write protected memory. This is often an indication that other memory is corrupt.턀ଉŋČ꓈ଠ‡??

AddShapefile() - C:Mi_Visor_de_S hapefilesMi_Vis or_de_Shapefile sMainForm.vb:74,5
BtnAddLayerClic k() - C:Mi_Visor_de_S hapefilesMi_Vis or_de_Shapefile sMainForm.vb:55,4
OnClick()
OnClick()
OnMouseUp()
WmMouseUp()
WndProc()
WndProc()
WndProc()
OnMessage()
WndProc()
DebuggableCallb ack()
System.Windows.Forms.UnsafeNativeMet hods.IMsoComponentMa nager.FPushMessageLoo p()
RunMessageLoopI nner()
RunMessageLoop( )
Run()
OnRun()
DoApplicationMo del()
Run()
Main() - 17d14f5c-a337-4978-8281-53493378c1071.vb:81,13

y en el CODIGO DE FORMA:

axMap1.set_LayerName (lHandle, FileSys.GetFileName(pSf .Filename)) 'Fija el nombre del layer

Desde ya, muchas gracias. Carlos
Responder | Responder con una citación | Citar
 
 
0 # Repuestatuxman 18-12-2008 11:08
Hola esquirla, la guí­a no dice acerca de errores de compilación simplemente porque al seguir los pasos normalmente, con un sistema operativo sin daños, la aplicación debe funcionar.

Parece que el error que tienes se debe a que una región de tu memoria está dañada o algún programa (un antivirus por ejemplo) está causando el problema. Aquí­ puedes encontrar una mayor descripción: www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.general/2007-07/msg00621.html
Responder | Responder con una citación | Citar
 
 
0 # Otra consultaesquirla 18-12-2008 11:53
suponiendo que es como vos decis, puede ser que me este faltando algo?
ya sea un paso mal realizado o alguna aplicacion en mi pc que haga que cada vez que quiera abrir un archivo (shp) se cierre automaticamente la aplicacion recientemente creada?
mil gracias nuevamente por tu colaboracion
Responder | Responder con una citación | Citar
 
 
0 # esquirla 18-12-2008 11:55
otra paso que realize fue descargar el manual para crear el instalado.exe, y segui los paso sin problemas, descarge los insumos tuyos y me sucede lo mismo, cuando intento abrir cualquier archivo *.shp se cierra la aplicacion

te dejo mi inquietud y ojala puedas ayudarme!
Responder | Responder con una citación | Citar
 
 
0 # Respuesta tuxman 18-12-2008 12:05
Hola esquirla, sip, lo que encuentro en internet es que el problema se debe a algún programa que está afectando el acceso a regiones de la memoria :-, por lo que el archivo no se puede leer. Mencionan que puede ser un antivirus que está instalado y funcionando en tu equipo. La verdad poco conozco del error por lo que mi colaboración puede ser insuficiente con este problema de Windows, sin embargo, en la red puedes encontrar documentación del problema buscando por "System.AccessViolation Exception en el programa:
Attempted to read or write protected memory. This is often an indication that other memory is corrupt
".

Espero te sirva.
Responder | Responder con una citación | Citar
 
 
0 # no hay caso.. esquirla 18-12-2008 12:14
probe la aplicacion en 4 maquinas distintas y no funciona en ninguna, dejando de lado el error que me dio que mensionaba a la memoria, por que motivo puede ser que no me funcione ni el .exe que descarge de tus insumos del pdf en el que explicas como crear el instalador?
Responder | Responder con una citación | Citar
 
 
0 # respuestatuxman 18-12-2008 12:49
Hola, las máquinas tienen la misma configuración? qué sistema operativo tienes instalado? probaste la última versión del componente? (descárgala aquí­ (www.mapwindow.com/download.php?show_details=2)).
Responder | Responder con una citación | Citar
 
 
0 # una consulta esquirla 18-12-2008 14:29
compartiendo mi problema con un compañero de mi trabajo, nos encontramos con el siguiente problema, nosotros intentamos mostrarle a los usuarios de nuestro trabajo un visor sencillo que permita trabajar con varios layers en los que no puedan editar nada del contenido delos *.shp, pero con el visor que vos diseñaste no logramos inivir la edicion de los *.shp, por que si utilizamos los mismos archivos de origen y los abrimos con cualquier otra aplicacion (ej, Quantum GIS) ellos lograrian modificar a su gusto. y corremos riesgos de perdida de informacion.
es de tu conocimiento algun proyecto o alguna aplicacion que logre visualizar en disitintos layers sin necesidad de que este presente las tablas de datos de los archivos *.psh???

espero me entiendas y puedas ayudarme, desde ya muchas gracias
Responder | Responder con una citación | Citar
 
 
0 # respuestatuxman 18-12-2008 14:48
Hola, con respecto al problema de acceso a la memoria podrí­as escribir al foro de MapWinGIS (www.mapwindow.org/phorum/list.php?3), pues puede ser un problema no tenido en cuenta.

Para manejar la edición podrí­as usar tus datos en una base de datos espacial, con lo que tendrí­as tus datos en un repositorio centralizado controlando el acceso a los mismos, de esta forma, deberí­an tener permisos cuando quisieran editar en un programa SIG de escritorio como QGis. Para ello no podrí­as usar el MapWinGIS, tendrí­as que usar por ejemplo el componente SharpMap (en C#).

Saludos
Responder | Responder con una citación | Citar
 
 
0 # Azul 11-01-2009 21:06
Hola, buenas noches, antes que nada gracias por tu tiempo para mostrarnos estas herramientas. Ahora a mi consulta, estaba viendo una pagina de Mapwingis :
http://www.mapwindow.org/wiki/index.php/MapWinGIS:SampleCode-VB_Net:ExportSelectedShapes

en la que muestra un componente (por llamarlo de un modo) SHRIMP, quisiera saber como puedo tener y agregar a mi proyecto este componente, ya que busque en la web y no encontre mucho sobre esto. Gracias por tu atención...
Responder | Responder con una citación | Citar
 
 
0 # Exportar a shapefile elementos seleccionadostuxman 12-01-2009 13:42
Hola Azul, los objetos que se utilizan en el código al que te refieres son de la dll MapWinInterface s.dll, la cual puedes conseguir en el directorio principal de la instalación de MapWindow. Esta dll se utiliza para escribir plug-ins para MapWindow. En este enlace ( s.chm" rel="external nofollow" target="_blank">www.mapwindow.org/documentation/MapWinInterface s.chm)(clic derecho y guardar cómo) puedes descargar el archivo chm de ayuda con las interfaces disponibles en esta librerí­a.

Por otra parte, si necesitas exportar registros a un shapefile puedes observar este código de nuestro amigo geomw (http://geotux.tuxfamily.org/index.php?option=com_comprofiler&task=userProfile&user=463&Itemid=70):
www.mapwindow.org/phorum/read.php?11,9665

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # GraciasAzul 13-01-2009 21:10
Hola, gracias por el consejo, ya consegui el MapWinInterface s.dll, ahora otra consulta, como lo implemento en mi proyecto? uso el SharpDevelop, pensaba implementarlo como el MapWinGis y sus dll. Otra vez Gracias...
Responder | Responder con una citación | Citar
 
 
0 # Plug-ins en MapWindowtuxman 13-01-2009 22:17
Hola Azul, como te comentaba, la dll MapWinInterface s la debes usar para escribir plug-ins para el programa MapWindow. En este enlace (www.mapwindow.org/tutorials/MapWindowPlug-inDevelopmentTutorial.pdf) puedes descargar una guí­a paso a paso para construir el plug-in. Tu proyecto ya no será una aplicación de windows sino una librerí­a de clases y el resultado será un botón en la toolbar de MapWindow que ejecutará tu código.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # GraciasAzul 17-01-2009 13:19
Gracias por el consejo, me resulto como lo describiste, saludos...
Responder | Responder con una citación | Citar
 
 
0 # Zeta 07-03-2009 10:02
Hola, una consulta,tengo un problema con el control Legend de mi proyecto: al actualizar los colores de las entidades de mi layer(lo cual lo hago sin problemas) trato de actualizar el color y el tipo de simbolo del layer en el control legend, pero no lo actualiza y se mantiene igual: el codigo que uso es:
'''Aca cambio el color del Layer
Dim MiLayer as Mapwingis.Shapefile
Dim uColor1 as UInteger
Handle = Legend1.Layers(Legend1.SelectLayer)
for i = 0 to MiLayer.NumShapes-1
AxMap1.set_ShapePointC olor(Handle, i, uColor1)
AxMap1.set_ShapeLineCo lor(Handle, i, uColor1)
AxMap1.set_ShapeFillCo lor(Handle, i, uColor1)
Next i
''' aca trato de hacer el cambio en el legend, pero no actualiza

Legend1.Layers.ItemByHandle(Ha ndle).Refresh
''' Tambien intente con
legend1.Refresh

Pense utilizar con ShapefileColorS cheme o ShapefileColorB reak, aun no lo pruebo

de antemano gracias por tu apoyo. Gracias
Responder | Responder con una citación | Citar
 
 
0 # tuxman 07-03-2009 22:15
Hola Zeta, para empezar, puedes actualizar las propiedades de tu capa (color, ancho, tipo de punto, relleno) desde los métodos del objeto axMap, no es necesario que iteres sobre cada Shape de la capa para hacerlo. Por ejemplo, para cambiar el color de una capa de puntos (supon que tiene el í­ndice 0) puedes poner:

axMap1.set_ShapeLayerP ointColor(0,RGB (71,71,71))

De la misma forma puedes usar los métodos set_ShapeLayerF illColor, set_ShapeLayerL ineColor, etc. para modificar la simbologí­a de la capa.

Después de llamar los métodos que te menciono, pones la siguiente lí­nea para refrescar la leyenda:

axLegend.Refresh()

Con esto la simbologí­a en la leyenda se actualiza después de establecerla en el mapa.

Para el ShapeFileColorS cheme puedes usar el código de la siguiente dirección, para asegurarte que la leyenda refleje la simbologí­a en el mapa:
www.mapwindow.org/wiki/index.php/MapWinGIS:SampleCode-C_Sharp_Net:LegendSymbolizer

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # GraciasZeta 07-03-2009 23:35
Gracias por el consejo, ya pude solucionar mi problema, otra vez gracias por tu ayuda.
Responder | Responder con una citación | Citar
 
 
+1 # Mostrar coordenadasichungui 14-04-2009 16:13
En primer lugar, felicitarte por el gran trabajo que haces en el campo de OPenGIS....
y ahora una pregunta, estoy usando es siguiente código para mostrar las coordenadas de mi mapa el 2 labels, de tal manera que cuando paseamos el curso por encima del mapa se muestren la coordenadas x, y enlas labels, pero no lo consigo. El códig que uso es el siguiente:
Private Sub AxMAp1_MouseMoveEvent (ByVal sender As Object, ByVal e As AxMapWinGIS._DMapEvents_Mou seMoveEvent ) Handles AxMap1.MouseMoveEvent
Me.lblX.Text = e.x.ToString
Me.lblY.Text = e.y.ToString
End Sub

Me puedes hechar una mano??? Sabes que estoy haciendo mal???? Como lo puedo conseguir???

Muchisimas gracias de antemano.

Un abrazo.
Iol. alias Ichungui.
Responder | Responder con una citación | Citar
 
 
0 # Mostrar coordenadas del cursortuxman 15-04-2009 12:40
Hola ichungui, gracias por lo que dices.

Tal vez tan solo te haga falta enviar el evento MouseMove explí­citamente , esto lo haces con la sentencia: axMap1.SendMouseMove = True

Debes ponerla justo cuando quieras comenzar a enviar el evento MouseDown, por ejemplo, si quieres hacerlo cuando inicie tu aplicación, puedes ubicarlo en el método New(), despues del llamado InitializeCompo nent().

Con Me.lblX.Text = e.x.ToString no mostrarás las coordenadas del mapa sino que mostraras las coordenadas del control en pixeles, prueba esto:

Dim px As Double, py As Double
axMap1.PixelToProj(e.x, e.y, px, py)
lblXY.Text = "X: " & Math.Round(px,2) & " Y: " & Math.Round(py,2)

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Mostrar coordenadas del cursorichungui 15-04-2009 14:45
Muchas Gracias,
la verdad es que me funciona perfectamente con el super empujón que me diste.

Estamos en contacto,

Un abrazo,

Ichugui.
Responder | Responder con una citación | Citar
 
 
0 # ayuda -visores-shapesmanzanares 05-06-2009 09:39
Saludos,

tengo 4 capas .shp a las cuales les deseo hacer consulta por atributos, ahora bien deseo que mis usuario finales ,puedan colocar titulos personalizados de la vista efectuada con que visualizado ligero privativo o libre me recomienda odebo hacerlo con programacion o ruutina disponibles para estos. muchos les sabrias agradecer el apoyo al respecto
Responder | Responder con una citación | Citar
 
 
0 # Programas SIG de escritoriotuxman 05-06-2009 09:54
Hola manzanares, con respecto a tu pregunta, puedes utilizar programas libres para esa función. Hay proyectos muy maduros como por ejemplo gvSIG (Java), Kosmo (Java), Quantum GIS (C ) o el mismo Open Jump (Java). En cada uno de ellos puedes realizar las consultas que requieres y generar salidas gráficas personalizadas. Las salidas gráficas de gvSIG son un poco mejores que las de los demás. Si decides usar Open Jump debes instalar un plugin de impresión que puedes conseguir en su página de descargas.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Incoveniente en cargar imagenes tipo matriz en MAPWINGISalex_daniel 21-07-2009 13:22
Hola bueno soy nuevo en esta area lo mio es base de datos pero me interese por un problema que pude ver en una empresa que visite.

mi problema es que bueno estoy usando el mapwingis en una aplicacion .net y mi incoveniente es k debo cargar 12 imagenes 3 horizontal y 4 vertical formarian una matriz de 12 imagenes ... el problema es como cargo las 12 iamgenes de una sola osea sin cargar una por una al componnet mapgis si alguien me pudiera ayudar seria estupendo, tal vez con codigo, gracias de antemano... Saludos Alex Cruz
Responder | Responder con una citación | Citar
 
 
0 # Imágenes en MapWinGIStuxman 21-07-2009 23:51
Hola alex_daniel, tal vez te interese unir las 12 imágenes en una sola antes de cargarlas a MapWinGIS. Dependiendo del formato en el que tengas las imágenes puedes usar uno u otro software. Por ejemplo, puedes revisar LandSerf que te puede ayudar a unir las imágenes. Incluso MapWinGIS tiene métodos para hacer la unión: http://www.mapwindow.org/wiki/index.php/MapWinGIS:Utils_GridMerge

Una vez tengas las 12 imágenes como una sola (un único archivo), puedes cargarla a MapWinGIS a través del método addLayer (www.mapwindow.org/wiki/index.php/MapWinGIS:AxMap_AddLayer) de la clase Map y del método open (www.mapwindow.org/wiki/index.php/MapWinGIS:Image_Open) de la clase Image.

Espero te sirva.
Responder | Responder con una citación | Citar
 
 
0 # Imagenes MapWinGIS en cuadriculaalex_daniel 22-07-2009 10:03
Si entiendo amigo al decir verdad tambien se mucho de diseño grafico y de unir imagens pero mi incoveniente es k debo cargar las 12 imagenes osea 12 cuadros(4x3) ojala me deje a entender, pork luego tengo que obtener infrmacion de cada imagen unitaria, es decir al momento de cargar la imagen:

Private Sub abrir_Imagen()
Dim pSf As MapWinGIS.Image, lHandle As Long
Dim NomArch1
NomArch1 = "C:Documents and SettingsAlexEsc ritorioImagenes probarhippiechi c.jpg"
If LCase(Microsoft .VisualBasic.Strings.Right(NomArch1, 3)) "shp" Then
pSf = New MapWinGIS.Image
If pSf.Open(NomArch1) = True Then
lHandle = MapMain.AddLayer(pSf, True)
End If
Else
MessageBox.Show("El archivo, " & NomArch1 & " no es un shapefile.")
End If
End Sub


Mi pregunta es como acoplo el codigo de

Private Sub GridsMerge()
Dim grids(2) As MapWinGIS.Grid
Dim grid1 As New MapWinGIS.Grid(), grid2 As New MapWinGIS.Grid(), grid3 As New MapWinGIS.Grid()
Dim utils As New MapWinGIS.Utils()
'Open the first grid
grid1.Open("C:grid1.asc")
'Open the second grid
grid2.Open("C:grid2.asc")
'Set the first grid in the array
grids(0) = grid1
'Set the second grid in the array
grids(1) = grid2
'Merge grid1 and grid2 by passing the array containing them to the merge function , putting the new array in grid3
grid3 = utils.GridMerge(grids , "C:merged_grid.asc")
End Sub

para mostrar en una solo imagen en la funcion descrita arriba (abrir_Imagen() ), seria exelente k me dieras un ejemplo con codigo gracias de antemano amigo, nos vemos.
Responder | Responder con una citación | Citar
 
 
0 # Imágenes tuxman 22-07-2009 12:10
Alex_daniel, no estoy hablando de diseño gráfico, estoy hablando de formar una sola imagen con la matriz de imágenes que tienes. De esta forma tendrí­as un solo archivo (más pesado, claro) con toda tu matriz. Eso para que en el cargue solo llames la función AddLayer una vez, pero también puedes quedarte con las 12 imágenes y hacer una función que te abra las 12 imágenes una tras otra y las cargue a MapWinGIS. ¿En qué formato tienes las imágenes? ¿Están georeferenciada s?
Responder | Responder con una citación | Citar
 
 
0 # alex_daniel 22-07-2009 15:10
Hola gracias por la ayuda haber te explico mas detalladamente es un mapa el cual esta conformado por 64 imagenes 8 horizontal y 8 vertical forman una matriz de 64 imagenes el tipo es jpg pesan entre 40 y 50 kb mas o menos... mmm estan tomadas del google earth a 700 metros de distancia cada una si las uno todas seria elmaximo zoom y las vez veria las 64 imagenes como solo una verdad... para que hago esto y no solo montar una imagen es por los detalles k cuenta cada una de ellas detalles que los vere mientras mas me acerque con el zoom...


No se usar mucho el componente MAPWINGIS es muy bueno para lo k kiero hacer, mi pregunta mas iba como agrupar podria ser direcciones ejemplo:sad:"C:imagen1") de las 64 iamgenes y cargarlas TODAS A LA VEZ en el mapwinGis ojala me deje a entender amigo porsiacaso te dejo mi mail alex_honores@ho tmail.com seria exelente que pudiera comunicarte mis avances y mis preguntas kien sabe por msn de todas maneras si asi no sea posible este medio es muy bueno gracias de antemano en serio gracias ... alex
Responder | Responder con una citación | Citar
 
 
0 # Imagenestuxman 22-07-2009 22:07
Bueno Alex_Daniel, con este código cargas una imagen a MapWinGIS:

Dim img As New MapWinGIS.Image
img.Open("D:imagen.jpg")
axMap1.AddLayer(img, True)

Y en esta página encuentras cómo iterar sobre los archivos de un directorio (Ver sección: Los ficheros de un directorio):
www.elguille.info/NET/dotnet/sistema_archivo.htm

Entonces puedes dejar todas tus imágenes en un directorio e iterar sobre cada imagen para cargarla a través de una función.
Responder | Responder con una citación | Citar
 
 
0 # Hola de nuevo aun no puedo solucionaralex_daniel 24-07-2009 09:20
Hola Tuxman bueno amigo aun no soluciono mi problema por mas k busco no llego a lidiar mi problema te ilustrare mas o menos marcialcandioti.files.wordpress.com/2008/04/mapa_completo_de_sur_america.jpg esa imagen por ejemplo se ve completa pork es la union de una cuadricula de 8 X 8 imagenes es como si fuera 64 imagenes y forman esa imagen completa ahora tengo las iagenes pero no se como unirlas en el mapwingis para formar una sola k al final eso kiero ojala pudieras ayudarme gracias amigo. Veo que el gridmerge puede solucionar pero no le encuentro como mostrar si me ilustras con codigo seria mejor amigo... le doy direcciones de imagenes ejemplo(C:/imagen1),(C:/imagen2).... y k de salida me de la union de todas las imegens claro k no se vea montada una sobre la otra sino en forma visual de todas gracias anticipadamente
Responder | Responder con una citación | Citar
 
 
0 # Imagenestuxman 24-07-2009 10:22
Para que aparezcan una al lado de otra y no se superpongan debes tener las imágenes georreferenciad as, es decir, debe haber un archivo (con extensión jgw) para cada imagen que diga cuál es su posición en un sistema de coordenadas. ¿Tienes otros archivos junto a las imágenes jpg? Si no cuentas con esos archivos será imposible (al menos en términos precisos) ubicarlas. Mira esto: www.cryer.co.uk/filetypes/j/jgw.htm En todo caso hay forma de construirlos: www.city2see.com/World_File.pdf
Responder | Responder con una citación | Citar
 
 
0 # Hola Tuxman encontre la solucionalex_daniel 25-07-2009 16:10
Bueno despues de estar leyendo llegue a un programa llamado stitchmap ese programa me captura las imagenes k kiero y me las guarda con cierta distancia k le de y lo mejor en cuadriculas, al fin solucone ese problema :-), bueno tengo una pregunta tuxman como hago para poder dibujar un poligono en el mapwingis mmmm es totalmente diferente por lo k he podido ver no se si me puedas ayudar gracias ... alex
Responder | Responder con una citación | Citar
 
 
0 # Dibujar polí­gonotuxman 25-07-2009 17:14
En el comentario número 11 de esta misma página encuentras un ejemplo para dibujar polí­gonos sobre el mapa (allí­ se dibuja un rectángulo). Se utiliza el método DrawPolygon (www.mapwindow.org/wiki/index.php/MapWinGIS:AxMap_DrawPolygon) de la clase AxMap. Este método recibe:
Dos arreglos con las coordenadas X y Y de los vértices del polí­gono.
El número de vértices del polí­gono.
Color del borde.
Color de relleno.
Responder | Responder con una citación | Citar
 
 
0 # alex_daniel 26-07-2009 19:36
Si pero mi pregunta talvez mas iba a como cerrar la figura por ejemplo un click un punto otro click otro punto pero une con el punto anterior formando una linea asi todo hasta tener un poligono cerrado ... si me deje entender tuxman bueno gracias amigo
Responder | Responder con una citación | Citar
 
 
0 # Hola de nuevoalex_daniel 26-07-2009 20:20
Hola Tuxman estaba probando en un picturebox mi problema y ya lo solucione pero al momento de pasarlo al winmapgis no cuenta con el evento

Private Sub picDisplay_Mous eMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picDisplay.MouseMove
px = Math.Round(e.X)
py = Math.Round(e.Y)
txtCoordX.Text = px 'muestra coordenada en X
txtCoordY.Text = py 'muestra coordenada en Y
End Sub

pero mapwingis utiliza

Private Sub AxMap2_MouseMov e(ByVal sender As Object, ByVal e As AxMapWinGIS._DMapEvents_Mou seMoveEvent) Handles AxMap2.MouseMoveEvent
px = Math.Round(e.x)
py = Math.Round(e.y)
txtCoordX.Text = px
txtCoordY.Text = py
End Sub

pero no muestra ninguna coordenada cand dezplaxzo el mause amigo nose si me pudieras ayudar porfa
Responder | Responder con una citación | Citar
 
 
0 # tuxmanalex_daniel 26-07-2009 20:29
creo k solo me estoy respondiendo ya solucione me comprenderas la angustia repentina esk no he trabajado mucho igual la aplicacion esta kedando muy interesante
Responder | Responder con una citación | Citar
 
 
+1 # Ayuda por favoralex_daniel 28-07-2009 17:53
Hola tuxman de nuevo ayudame esk kiero crear un paint en el proyecto y dibujar a mano alzada en el mapwingis me podrias ayudar algun ejemplo algo porfavor cuidate espero tu respuesta gracias
Responder | Responder con una citación | Citar
 
 
0 # MapWinGIS y MapWindowtuxman 28-07-2009 19:52
¿alex_daniel, has pensado en utilizar MapWindow en lugar de MapWinGIS?, tal vez pueda servirte más porque ya tiene esas caracterí­stica s incorporadas, no necesitas desarrollarlas. ¿O definitivamente necesitas la personalización ?
Responder | Responder con una citación | Citar
 
 
0 # MapWinGIS y MapWindowalex_daniel 29-07-2009 10:26
Te explico el proyecto es un llenado de lugares y zonas k se muestran en un mapa (el k uni con el programa stitchmap) bueno es algo asi como si le doy un click con le mouse a ese componente deb salirme lo descrito en la base de datos para eso debo manejar cierta coordenadas y pixeles, bueno eso es el segundo paso del proyecto pero inicialmente debo hacer una especie de paint el cual pueda circunponer una zona con el mouse (puede ser forma rectangular, circular, poligonal o a mano alzada), entonces por eso pero el mapwindows tu crees que me pueda facilitar enormemente incluyendo con la base de datos?? y si es asi m puedes dar una descripcion y talvez una direccion donde pueda descargarla, bueno tuxman garcias de nuevo muchas garcias
Responder | Responder con una citación | Citar
 
 
0 # MapWinGIStuxman 29-07-2009 11:18
Lo que puedes lograr con MapWinGIS ya lo tienes en MapWindow, en todo caso no es el único, hay varias opciones: Quantum GIS (C ), gvSIG (Java) y Kosmo (Java) son algunas.
Responder | Responder con una citación | Citar
 
 
0 # MapWINDOWSalex_daniel 29-07-2009 13:00
Hola Tuxman porfa me podrias brindar el link donde descargar el mapwindows necesito el evento paint del mapwindowsGis pero no cuenta con ese evento por favor ayudame man solo mandame el link gracias amigo
Responder | Responder con una citación | Citar
 
 
0 # MapWindowtuxman 29-07-2009 16:55
Este es el enlace de descarga: http://www.mapwindow.com/download.php?show_details=1
Responder | Responder con una citación | Citar
 
 
0 # Disculpa tuxmanalex_daniel 30-07-2009 09:27
Disculpa amigo la pagina esta muy buena pero cual de todos es o cualkiera? gracias
Responder | Responder con una citación | Citar
 
 
0 # MapWindowtuxman 30-07-2009 10:45
Aquí­ puedes descargar la versión 4.6 de MapWindow, es una versión estable. MapWindow 4.6 Stable Release (www.mapwindow.com/download.php?file_name=http://svn.mapwindow.org/svnroot/InstallationProjects/4.6/Release/MapWindow46SR.exe&show_details=1&dl=3)
Responder | Responder con una citación | Citar
 
 
0 # Graciasalex_daniel 31-07-2009 11:44
Gracias Tuxman muchas gracias
Responder | Responder con una citación | Citar
 
 
0 # Hola Tuxman de nuevoalex_daniel 03-08-2009 22:10
Hola una pregunta bueno creo que mejor trabajare con el mapwindos pero me sale un control de nombre RangerBar ese es el mapwindows??? el k me recomendaste??? o es otro ??? si me orientas mas en el tema porfavor gracias amigo
Responder | Responder con una citación | Citar
 
 
0 # Probelmasalex_daniel 05-08-2009 11:07
Hola bueno use ese control al decir verdad migre todo mi proyecto a ese control elcual me brinda muchas facilidades mi pregunta ahora radica es k en el eveno mousemove no capturo las coordenadas nose si me puedes ayudar :S gracias
Responder | Responder con una citación | Citar
 
 
0 # Dudatuxman 05-08-2009 11:28
Hola, en esta misma página tienes varios recursos, puedes leer los comentarios que han sido agregados en los que se muestra la forma de hacer varias funcionalidades , entre ellas la que pides, revisa los comentarios.
Responder | Responder con una citación | Citar
 
 
0 # Publicar mapa en weboscarf8 16-08-2009 19:45
Hola, estoy probando el programa y me parece muy bueno, quisiera saber si con el componente del mapwindows se puede lograr algo similar a la solucion desktop en ambiente web, usando el visual web developer, gracias
Responder | Responder con una citación | Citar
 
 
0 # En webtuxman 16-08-2009 20:18
Hola oscarf8. Si quieres algo similar en ambiente web te puede servir uno de
estos programas (http://geotux.tuxfamily.org/index.php?option=com_myblog&task=view&id=208&Itemid=59). No conozco VWD.
Responder | Responder con una citación | Citar
 
 
0 # Crear Shapefilewstsde 25-08-2009 10:20
Hola bro, buen dia pues he estado dandome vueltas por ahi y no he encontrado como hacer un shapefile de puntos con la informacion de un excel, seria de gran ayuda que me ayudaras y me dijeras que es lo que debo tener y hacer para poder lograrlo, programo en visual basic 2005...

Grax
Responder | Responder con una citación | Citar
 
 
0 # tuxman 25-08-2009 22:23
Hola wstsde, para crear el shapefile de ceros, puedes mirar el siguiente ejemplo, en él crean un shapefile y agregan campos y datos: http://www.mapwindow.org/phorum/read.php?11,9665

Para crear puntos a partir de coordenadas uedes darle un vistazo a: este ejemplo (www.mapwindow.org/phorum/read.php?11,6704).

Te recomiendo que no trabajes tus datos en excel, deberí­as usar aplicaciones más abiertas. Si puedes pasar tus datos de excel a un archivo txt o csv podrí­as usar código en .Net (seguro que lo encuentras en la red) para leer secuencialmente el archivo y extraer las coordenadas de cada punto.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # TNXwstsde 26-08-2009 14:08
SALE BRO GRACIAS YA LO BUSQUE Y SI QUEDO SOLO QUE PRIMERO TNGO Q CREAR EL CSV, SALUDOS

ARRIBA EL OPEN SOURCE ;-) ;-) ;-)
Responder | Responder con una citación | Citar
 
 
0 # LO ULTIMOwstsde 26-08-2009 14:50
YA GENERE EL SHAPE, ESTUBE TRATANDO DE ABRIRLO EN UN AxMap1 PERO NO HACE NADA ME MANDA UN ERROR DICE : INTERFACE NO SUPPORTED

CON ESTE CODIGO INTENTO AGREGARLO: AxMap1.AddLayer("C:Usershhgonzal ezDesktopPRUEBA COMPLETOLLLL.shp", True)

ESPERO ME PUEDAS AYUDAR SOY NUEVO EN EL MAP WINDOW, ME ACOSTUMBRE AL ARCGIS JEJE ;-)
Responder | Responder con una citación | Citar
 
 
0 # ya quedowstsde 26-08-2009 18:47
andube buscando ya ya quedo bro gracias ;-) asi quedo:

AxMap1.CursorMode = MapWinGIS.tkCursorMode.cmNone
'Dim FileSys As New Scripting.FileSystemObjec tClass 'Se crea el objeto que manejará directorios y archivos del sistema
Dim pSf As MapWinGIS.Shapefile, lHandle As Long 'Se
pSf = New MapWinGIS.ShapefileClass
pSf.Open("capasDDV.shp")
lHandle = AxMap1.AddLayer(pSf, True)


Tambien necesito agregar un boton que me identifique cada ves que le doy clik a un punto, se puede esto?
Responder | Responder con una citación | Citar
 
 
0 # Identificar elementos espacialestuxman 26-08-2009 21:15
Hola wstsde, en un post posterior a este se detalla la manera de agregar la funcionalidad que mencionas, mira:

Herramienta para identificar objetos espaciales (http://geotux.tuxfamily.org/index.php?option=com_myblog&show=herramienta-para-identificar-objetos-espaciales-en-el-visor-de-shapefiles-de-mapwingis.html&Itemid=59)
Responder | Responder con una citación | Citar
 
 
0 # Abrir imagenes en .Tabalex_daniel 28-08-2009 21:21
Hola como estas bueno keria saber como puedo abrir un archivo .tab con el mapcontrol el .tab es la estencion k uso en el MAPINFo como puedo abrir un archivo como este ?? ayudame man
Responder | Responder con una citación | Citar
 
 
0 # .tabtuxman 29-08-2009 00:00
Hola, MapWinGIS no admite ese formato, lee bien la documentación antes de proceder.
Responder | Responder con una citación | Citar
 
 
0 # mori10 03-09-2009 06:27
Q tal?, primero felicitarte por el desarrollo de dicho visor y toda la atención facilitada. No tengo mucha idea de programación pero me gustaria introducir en la aplicación el botón de imprimir para que imprima la ventana de AxMap, cual es el código y como lo vinculo al boton que me creado?? Muxas gracias compañero.
Responder | Responder con una citación | Citar
 
 
0 # Imprimirtuxman 03-09-2009 10:36
Hola mori10, revisa el siguiente tema del Geo-Foro, tal vez te pueda ayudar: http://geotux.tuxfamily.org/index.php?option=com_fireboard&Itemid=83&func=view&catid=3&id=127

Si no, puedes buscar directamente la funcionalidad en el código de MapWindow (también está en .Net): http://svn.mapwindow.org/svnroot/MapWindow4Dev/MapWindow/
Responder | Responder con una citación | Citar
 
 
0 # ayudawstsde 18-09-2009 12:56
Hola amigo buenos dias, con este codigo de MapWinGIS.ocx con visual basic 2005 genero un punto, pero la informacion que proceso tambien contiene Z, como le puedo hacer para generar los puntos con esas propiedades..

Citación:
If xi = -1 Or yi = -1 Then
MsgBox("Selecciona las columnas X Y", MsgBoxStyle.Exclamation, "WSTSDE")
Else
Dim LastLineNumber As Long = 0
Dim x1 As Integer
Dim y1 As Integer
Dim l As Integer
Try

Dim fldIdx As Long = newSF.NumFields
sftype = MapWinGIS.ShpfileType.SHP_POINT
newSF.CreateNew(filen ame, sftype)
newSF.StartEditingSha pes(True)


Dim idFld3 As New MapWinGIS.Field
Dim IdFunc As New Integer
idFld3.Name = "Temp"
idFld3.Type = MapWinGIS.FieldType.INTEGER_FIELD
newSF.EditInsertField (idFld3, fldIdx)

AddKeyFields()
If cbXYfield.Checked = True Then
AddXYFields()
End If
AddOtherFields( )



If headerc = 1 Then
count = count - 1
End If
pbStrip.Step = 1
For l = 0 To count

Dim newShp As New MapWinGIS.Shape
newShp.Create(sftype)
Dim shpIdx As Long = newSF.NumShapes
Dim ind As Integer = 0
Dim fInd As Integer = 0
Dim xind As Integer
Dim yind As Integer

Dim newPt As New MapWinGIS.Point
x1 = tabla_shape.Items(l).SubItems(xi).Text
y1 = tabla_shape.Items(l).SubItems(yi).Text

newPt.x = x1
newPt.y = y1
newShp.InsertPoint(new Pt, ind)

newSF.EditInsertShape (newShp, shpIdx)



newSF.EditCellValue(f ldIdx, shpIdx, ind) ' The default field

fInd = ind 1
newSF.EditCellValue(f Ind, shpIdx, AddKey(l)) 'The key field

If cbXYfield.Checked = True Then
xind = fInd 1
newSF.EditCellValue(x ind, shpIdx, AddX(l)) ' x field
yind = xind 1
newSF.EditCellValue(y ind, shpIdx, AddY(l)) ' y field
fInd = yind
End If
For test = 0 To c3
If Not tabla_shape.Columns(test).Text = "?" _
And Not tabla_shape.Columns(test).Text = "X" _
And Not tabla_shape.Columns(test).Text = "Y" _
And Not tabla_shape.Columns(test).Text = tbKey.Text Then
coln = tabla_shape.Columns.Item(test).Index
fInd = fInd 1
newSF.EditCellValue(f Ind, shpIdx, AddOtherData(l) )
End If
Next
pbStrip.PerformStep()
Next l

newSF.StopEditingShap es(True, True)
newSF.Close()

MsgBox("Shapefile generado", MsgBoxStyle.Information, "WSTSDE")
Catch ex As Exception
MsgBox("Error tratando de leer el cvs", MsgBoxStyle.Critical, "ERROR")
End Try



saludos espero me puedas ayudar, gracias
Responder | Responder con una citación | Citar
 
 
0 # Atributo Ztuxman 19-09-2009 19:55
Hola wstsde, es importante que revises la documentación de MapWinGIS para que puedas salir de muchas dudas.

En la documentación de la clase Point se observan los atributos: X, Y y Z. Así­ que el Z lo defines como lo haces con X y Y:

mPoint.Z = 100

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # wstsde 21-09-2009 11:11
gracias por tenr tiempo de poder ayudarnos con nuestras dudas
Responder | Responder con una citación | Citar
 
 
0 # Trazar una linea y guardar como shapeNeo_Matrix7 29-09-2009 15:51
Hola, soy nuevo en esto de GIS, oye, necesito ayuda con una aplicación que estoy haciendo, mira, a travez de un PictureBox visualizo una imagen de una parcela, y me piden que la aplicación traze lineas sobre los surcos donde hay plantas y que despues los guarde (las lineas) como un archivo shape (*.shp) me podrias ayudar con mi problema por favor. Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Re: Trazar lí­nea y guardar como shapetuxman 29-09-2009 16:28
Hola, te recomiendo que dejes de usar el pictureBox e incluyas el control axMap.

En la siguiente dirección puedes encontrar un ejemplo de creación de un shape de lí­neas:
http://www.mapwindow.org/wiki/index.php/MapWinGIS:SampleCode-VB_Net:CreatePolyline

En el siguiente código encuentras cómo manejar los eventos MouseDown, MouseMove y MouseUp del control axMap.
http://www.mapwindow.org/wiki/index.php/MapWinGIS:SampleCode-VB_Net:MeasureTool

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Problemas para desplegar imagenNeo_Matrix7 30-09-2009 09:18
Hola de nuevo, tengo un problema al cargar una imagen al visor axMap1.Open() ya que me manda el siguente error: "Ninguna sobrecarga para el metodo 'Open' acepta '1' argumentos" ya cheque la sintaxis y pide que ponga los otros parametros, pero dice que es "opcional", pero de todas formas los pongo, pero al llegar a la parte del parametro MapWinGIS.ICallback ¡no se que poner!, ¿me ayudarias con esto por favor? Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Otra cosa que olvideNeo_Matrix7 30-09-2009 09:34
¡Ha, se me olvido otra cosa! estoy programando en C#, mi otra pregunta es...¿este LPOO es el causante de este error o no le afecta en lo mas minimo?

Saludos ;-)
Responder | Responder con una citación | Citar
 
 
+1 # Ya encontre el problemaNeo_Matrix7 30-09-2009 10:33
Hola, ya encontre el problema y si, si era el lenguaje de programación, ahora lo estoy haciendo en V.B.Net, pero gracias de todas formas.
Responder | Responder con una citación | Citar
 
 
0 # Problemas para desplegar imagentuxman 30-09-2009 11:10
Revisa unos mensajes más arriba, pues eso ya está respondido.
Responder | Responder con una citación | Citar
 
 
0 # Otro problema de imagenNeo_Matrix7 30-09-2009 11:21
Hola amigo, disculpa, otro problema se me presento, lo que pasa es que no puedo hacer el recorrido de la imagen a travez de un boto, mira este es el codigo que puse para que me diera el ancho y largo de la imagen:

Dim imgRuta As String
imgRuta = nombreArchivo
Dim miBitmap As Bitmap
miBitmap = New Bitmap(imgRuta, True)
Dim iAnchoImagen As Integer
Dim iAltoImagen As Integer
iAnchoImagen = miBitmap.Width
iAltoImagen = miBitmap.Height

pero al llegar a la parte de miBitmap = New Bitmap(imgRuta, True), me marca un error de que el parametro no es valido, me puedes ayudar con este problema por favor (por cierto estoy usando imagenes IMG).

Saludos ;-)
Responder | Responder con una citación | Citar
 
 
0 # tuxman 30-09-2009 11:38
Revisa el siguiente enlace, ya no uses Bitmap, usa MapWinGIS.Image para manejar tus imágenes:
http://geotux.tuxfamily.org/index.php?option=com_myblog&task=view&show=Construcción de un visor de Shapefiles con herramientas libres&id=28&Itemid=59#pc_124
Responder | Responder con una citación | Citar
 
 
0 # ¡Auxilio, no puedo obtener los valores ARGB de una imagen!Neo_Matrix7 30-09-2009 12:53
Hola, no encuentro el metodo para obtener los valores de ARGB de la imagen y separarlos por bandas. :-
Responder | Responder con una citación | Citar
 
 
0 # tuxman 30-09-2009 15:08
Antes de postear una duda asegúrate que has hecho una búsqueda básica previa. :-)

Busca por acá: http://www.mapwindow.org/wiki/index.php/MapWinGIS:Image
Responder | Responder con una citación | Citar
 
 
0 # Problema con imagenes IMGNeo_Matrix7 02-10-2009 16:31
Hola a todos, tengo un problema con el recorrido de una imagen IMG por medio de un ciclo for-next, este es el asunto, despues de desplegar la imagen en el visor, ejecuto la orden de un boton para hacer el recorrido de dicha imagen, pero el sistema me marca el siguiente error: "el parametro no es valido" la cual proviene de esta linea de codigo que escribí­:

Bitmap = New System.Drawing.Bitmap(nombreAr chivo, True)

Segun por lo que entiendo me pide que le escriba un parametro faltante, pero no se cual es y ya me quebre la cabeza buscando el problema ¿alguien sabe por que ese conficto? se los agradecerí­a mucho si me lo hacen saber.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # imgtuxman 02-10-2009 21:10
No puedes abrir una imagen IMG con el objeto Bitmap, te lo dije más arriba.
Responder | Responder con una citación | Citar
 
 
0 # Shapefile defectuosoNeo_Matrix7 05-10-2009 16:01
Hola, tengo un problema para proyectar el shapefile, cuando termino de generar los tres archivos *.shp, *.dbf y *.shx, al momento de proyectarlos al ARCMAP, no me proyecta el archivo de lineas y me aparece un mensaje de que dice asi: One o more layers failed to draw:

Test: Shapefile is corrupted

¿como puedo arreglar este error?
Responder | Responder con una citación | Citar
 
 
0 # RE: Shapefile defectuosotuxman 05-10-2009 16:25
Neo_Matrix, esta es una página de Geomática en Software Libre, tu pregunta te la pueden responder en la página web de esri. :o

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Neo_Matrix7 05-10-2009 16:54
Ok, gracias.
Responder | Responder con una citación | Citar
 
 
0 # Ayudawstsde 06-10-2009 15:12
:-)Hola amigo gracias a ti he generado una herramienta para crear miles de puntos de informacion que manejo sin tener que manejar las caras licencias de esri todo gracias al software libre, actualmente estoy refinando mi visualizador, solo que me he encontrado con algunos problemas:

- La informacion que manejo puede tener puntos con las mismas coordenadas por lo tanto
a la hora de identificar los puntos con la herramienta que creaste para identificar
la cual tome como ejemplo no me muestra la informacion de esos puntos se que solo se
puede obtener la info de uno solo, hay alguna manera de poder obtener la info de los dos
puntos aunque este uno encima del otro?

-Poder manipular los layers de la manera que si tengo dos capas en el axmap por ejemplo:

Puntos_1
Puntos_2

y cargue primero Puntos_1 y luego Puntos_2 pueda poner el layer Puntos_2 abajo del layer Puntos_1


- Poner labels a los puntos de acuerdo a su valor en la tabla de atributos de un campo en especial


Seria de gran ayuda el poder darme algunos consejos para poder solucionar estos problemas :-)
Responder | Responder con una citación | Citar
 
 
0 # Re: Ayudatuxman 06-10-2009 16:27
Hola wstsde, ese es nuestro objetivo, dar a conocer alternativas. Que bueno que te haya dado resultado. :-)

Con respecto a las preguntas:

1. Si observas la clase Identificar.vb (que encuentras en este blog (http://geotux.tuxfamily.org/index.php?option=com_myblog&show=herramienta-para-identificar-objetos-espaciales-en-el-visor-de-shapefiles-de-mapwingis.html&Itemid=59)), en la función ValidarIntersec cion se está tratando el caso de más de un elemento espacial seleccionado. Como ves, cuando eso ocurre, la clase manda un mensaje de error. Allí­ tendrí­as que modificar el código para tratar a tu gusto este caso, seguramente ayudado de un ciclo for.

2. Para poder manipular el orden de las capas puedes emplear el control Legend que provee la librerí­a MapWinInterface s. Esta librerí­a la encuentras por ejemplo en el directorio de instalación de MapWindow GIS. La debes agregar al proyecto para poder utilizar la leyenda. Si no estoy mal eso te permite modificar el orden de las capas. Puedes mirar unos mensajes previos en este blog pues ya se ha hablado del tema.

3. Lo de las etiquetas lo encuentras en el artí­culo de Daniel P. Ames que menciono en las referencias de este blog: http://www.MapWindow.org/doc/UsingMapWinGIS.pdf

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Archivo .exe del visior de .shpdanperl88 08-10-2009 07:11
Hola monstruo!

Estoy muy interesado en este visor de shp y ya he conseguido crearme uno siguiendo tu magistral tutorial. Tan solo me gustaria que contaras como generar el .exe.

Muchas gracias,

D.
Responder | Responder con una citación | Citar
 
 
0 # Re: Archivo .exe del visior de .shptuxman 08-10-2009 11:33
Hola danperl88, el .exe de tu visor lo obtienes generando la aplicación, en la página 4 de este blog encuentras cómo, el archivo deberí­a estar situado en:
directorio_apli cación/bin/Debug/Mi_Visor_de_Sha pefiles.exe

Si te refieres a un instalador para tu visor, en un blog posterior (http://geotux.tuxfamily.org/index.php?option=com_myblog&show=creaciF3n-de-un-archivo-instalador-para-el-visor-de-shapefiles-de-mapwingis.html&Itemid=59) a este escribí­ acerca del tema.

No se si agradecerte por decirme monstruo o hacerte el reclamo ;-)

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Herramienta Identify del visor shpdanperl88 08-10-2009 11:55
Hola Tuxman,

Lo de Monstruo va por el miedo que me entra al ver lo mucho que controlas.. Anyway espero no haberte molestado.
Estoy enredado con la herramienta identify.. Despues de cargarme los 3 archivos de la clase identificar en mi proyecto y construir el boton identify.
Al compilar Me da estos errores;
El tipo 'frmIdentificar' no está definido. (BC30002)
No se ha declarado el nombre 'frmIdentificar'.
No llego a entender como se genera La Interfaz de la identificación de objetos espaciales.

Gracias por todo.
D.
Responder | Responder con una citación | Citar
 
 
0 # Proyectar Control AxMap y Shape a una Proyección y DatumAzul 09-10-2009 15:40
Buenas tardes, ¿como estas?, otra vez consultando sobre una duda que tengo. Como puedo asignar una proyección UTM (plana) o una Geografica (Lat, Long) a mi control AxMap y referida a un datum?. Mi problema es que yo tengo un shape en una Proyeccion UTM, Zona 18S y con el datum PSAD56 en mi control AxMap, y quiero visualizar en el mismo momento un shape con una proyección Geográfica en el datum WGS84. Lo estaba intentando, pero no veo la forma. No se si se pueda visualizar en el mismo Axmap 2 shapes en diferentes proyecciones (UTM y Geográficas), o como lo podria hacer. Cualquier comentario es bienvenido, muchas gracias de antemano.. Saludos
Responder | Responder con una citación | Citar
 
 
0 # Identificar elementos espaciales. tuxman 15-10-2009 16:32
Hola danperl88, seguramente te hace falta agregar la clase Identificar a tu proyecto. Lee el blog, allí­ encuentras el enlace a dicha clase.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Proyección al vuelotuxman 15-10-2009 16:48
Hola Azul, según leo, MapWinGIS no tiene proyección al vuelo. Lee el mensaje para más claridad:

www.mapwindow.org/phorum/read.php?3,14124

En todo caso si te ayuda a hacer algunas transformacione s de coordenadas valiéndose de proj4: http://www.mapwindow.org/wiki/index.php/MapWinGeoProc:SpatialReference_ProjectShapefile

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Proyección al vueloAzul 16-10-2009 15:30
Hola, muchas gracias por la información, la estoy leyendo, muchas gracias...
Responder | Responder con una citación | Citar
 
 
0 # Identificar elementos espaciales. danperl88 21-10-2009 04:17
Efectivamente, me faltaba incluir esa clase. :D

Gracias por todo.

Salud,

D.
Responder | Responder con una citación | Citar
 
 
0 # Cargar las nombres de las capas de un listview al combobox de la herramienta identificar.danperl88 23-10-2009 08:18
Me explico,

En mi evento on_load cargo un .shp y le asigno el nombre que quiero que aparezca en mi listview. El codigo es el siguiente.
Dim pSf1 As New MapWinGIS.Shapefile
Dim capa1 As string
pSf1.Open("C:ESRIESRIDATAW ORLDcountry.shp")
capa1 = axmap1.AddLayer(pSf1, True)
capa1 ="COUNTRY"
item=listview1.Items.Add(capa1)
item.Checked=true Se chequea el nuevo .shp
i = lHandle
item.Tag = i
a = (i 1)&"º"
Item.SubItems.Add(a)

Como puedo cargar los nombres que aparecen en este listview, que no tienen porque ser el nombre de los del archivo .shp, en mi Interfaz de Identificación de objetos?

Gracias,

D.
Responder | Responder con una citación | Citar
 
 
0 # Alias para los nombres de las capastuxman 23-10-2009 10:25
Hola danperl88, creo que lo mejor que puedes hacer es lo siguiente:

* Cuando cargues una capa asigna el nombre de la misma con el método set_LayerKey del objeto mapa. Mira esto: http://www.mapwindow.org/wiki/index.php/MapWinGIS:AxMap_LayerKey

* Cuando estés leyendo los nombres para agregar a la ventana de indentificar objetos lees el nombre de la capa con el método get_LayerKey del objeto mapa.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Accesar a datos de una selección de un objeto del shape fileamilgar 30-10-2009 00:51
Hola Tux, soy nuevo en el foro y me parece muy interesante tu pagina, en los ultimos dias encontre el mapwingis.ocx y estoy haciendo una herramienta para mi trabajo y tengo la siguiente duda, espero me puedas ayudar.

hace unos dias encontre un ejemplo en vb6 sobre el uso de mapwingis, en donde seleccionas un pais del mapa, lo pinta en color amarillo con el siguiente codigo

Map1.ShapeLayerFillC olor(handle) = RGB(254, 233, 188)
Map1.ShapeLayerLineC olor(handle) = RGB(34, 43, 74)

quisiera poder hacer que en esa selección del pais me mandara a traer datos a un dbf, para posteriormente mostrarlo en una ventana a modo de información del pais (area, nombre, coordenadas, etc.)

¿se puede hacer esto?
me podrias ayudar :-)

Muchas Gracias
Responder | Responder con una citación | Citar
 
 
0 # Herramienta Identifytuxman 30-10-2009 13:24
Hola amilgar, es bueno que revises todos los mensajes de este blog, anteriormente se habí­a preguntado lo mismo. Puedes ver este blog (http://geotux.tuxfamily.org/index.php?option=com_myblog&show=herramienta-para-identificar-objetos-espaciales-en-el-visor-de-shapefiles-de-mapwingis.html&Itemid=59) en donde se explica cómo hacer la herramienta que quieres.

En todo caso está en .NET

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # wwebwstsde 18-11-2009 14:42
Hola buen dia, oye tengo una pregunta, todo esto lo podria hacer para poder hacerlo en html aspx, para hacerlo en una aplicacion web, y los datos jalarlos desde un servidor com si fuera arcserver?, me seria de grande ayuda pudieras ayudarme ya que podria participar en un proyecto grande saludos y gracias
Responder | Responder con una citación | Citar
 
 
0 # Aplicación webtuxman 21-11-2009 18:01
Hola wstsde, no estoy seguro de poder hacer esto con MapWinGIS, pues es un control ActiveX para aplicaciones de escritorio, algunos planes he escuchado por ahí­ para habilitar la librerí­a en aplicaciones web. Sin embargo, podrí­as hacer uso de un proyecto similar llamado SharpMap (www.codeplex.com/SharpMap), allí­ si tienes la posibilidad de trabajar en la web, en su página te dan un par de ejemplos.

En la página de bostongis (www.bostongis.com/?content_name=postgis_sharpmap_tut01#40) tienes un ejemplo claro.

En todo caso, te recomendarí­a que revisaras la comparación de clientes web para SIG (http://geotux.tuxfamily.org/index.php?option=com_myblog&task=view&id=239&Itemid=59), en donde encontrarás varios proyectos que te dan herramientas listas para usar, accediendo a tus datos con base en servicios web.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Neo_Matrix7 07-12-2009 11:45
Hola de nuevo, oye, tengo problemas para cargar los nombres de las layers en un combo box (se llama cboCerrar), mira, aqui esta mi codigo:

abrirImagen.Title = "Abrir imagen raster."
abrirImagen.FileName = ""
abrirImagen.Filter = "Archivo Raster (*.img)|*.img|Archivos Jpeg (*.jpg)|*.jpg|Archivos Tiff (*.tif)|*.tiff|Todos los archivos (*.*)|*.*"
abrirImagen.ShowHelp = False
abrirImagen.ShowReadOnly = False
If abrirImagen.ShowDialog = Forms.DialogResult.OK Then
rutaImgRaster = abrirImagen.FileName
imagenRaster.Open(rutaImgRas ter)
imagenRaster.UseTransparency Color = True
AxMap1.AddLayer(imagen Raster, True)
contLayer = contLayer 1
cboCerrar.Items.Add(AxMap1.get_LayerName(c ontLayer).ToString())
End If

y aqui esta otra, es para las shapes:

abrirImagen.Title = "Abrir archivo vectorial."
abrirImagen.FileName = ""
abrirImagen.Filter = "Archivo vectorial (*.shp)|*.shp"
abrirImagen.ShowHelp = False
abrirImagen.ShowReadOnly = False
If abrirImagen.ShowDialog() = Forms.DialogResult.OK Then
rutaSHP = abrirImagen.FileName
shapeFile.Open(rutaSHP)
AxMap1.AddLayer(shapeF ile, True)
Me.chkbInfo.Enabled = True
contLayer = contLayer 1
cboCerrar.Items.Add(AxMap1.get_LayerName(c ontLayer).ToString())
End If

Por tu atencion mil gracias.
Responder | Responder con una citación | Citar
 
 
0 # Cargar nombres de capas a comboBoxtuxman 07-12-2009 11:54
Prueba esto:

For i = 0 To mwMapa.NumLayers - 1
cboCapas.Items.Add ( mwMapa.get_layerName( i ) )
Next
Responder | Responder con una citación | Citar
 
 
0 # GraciasNeo_Matrix7 07-12-2009 12:24
¡Gracias Tuxman! ya se pudieron cargar, pero ahora tengo el problema de que no se visualizan los datos, como que estan transparentes, ya intenté cambiar el color de la fuente (forecolor) pero nada, no se que hice mal.

Saludos ;-)
Responder | Responder con una citación | Citar
 
 
0 # Demasiados NewDrawingborjabbv 09-12-2009 08:08
Hola Tuxman.
Quiero representar con colores un nº de polí­gonos de un layer.
El problema es que cuando estoy pintando más del 16000, me da un error de memoria.
Cuando voy haciendo el NewDrawing(...) no me da problemas. Parece que es al intentar dibujarlos en el AxMap1
Cuando hago 8000 por ejemplo, no me da problemas.

¿Qué puedo hacer?

Gracias,

Borja
Responder | Responder con una citación | Citar
 
 
0 # Demasiados NewDrawingtuxman 09-12-2009 10:43
Hola borjabbv, podrí­as pasarme los datos para hacer la prueba?
Responder | Responder con una citación | Citar
 
 
0 # Demasiados NewDrawingborjabbv 10-12-2009 09:35
Es algo así­. Voy viendo nitidamente que el Me.text va aumentando por cada polí­gono coloreado.
La primera prueba la hice con 8203 registros y terminó coloreándome los que necesitó.
Cuando hago con más registros y llega a 11000 aprox. el Me.text ya no se refresca con el nuevo numero, sino que cada uno se escribe sobre el siguiente quedando al final una mancha blanca.

El código saca de una tabla los shapeindex de una capa que me interesan
y los voy identificando sus puntos para luego colorearlos:

vlRs = DB.OpenRecordset("Select SHPINDEX from TABLA") 'Identifica cada polí­gono
Do While Not vlRs.EOF
Me.Text = "Shape " & vlRs.Fields("SHPINDEX").value
'Obtengo los puntos
Dim Puntos() As Double = {}
Shape = shpfile.Shape(vlRs.Fields("SHPINDEX").value)
For vlij As Integer = 0 To Shape.NumParts - 1
If vlij = 0 Then
vliPointInicio = Shape.Part(vlij) 'que guarda el primer punto de la parte
vliPointFinal = Shape.numPoints - 1
Else
vliPointFinal = Shape.Part(vlij) - 1
End If
Next vlij
'Creo el array de puntos para luego colorear el interior (el polí­gono)
Dim Punto As MapWinGIS.Point
Dim PuntoScreen As New MapWinGIS.Point
For vlij As Integer = vliPointInicio To vliPointFinal
ReDim Preserve Puntos(UBound(P untos) 1)
Punto = Shape.Point(vlij)
AxMap1.ProjToPixel(Pun to.x, Punto.y, PuntoScreen.x, PuntoScreen.y)
Puntos(UBound(P untos)) = PuntoScreen.x
ReDim Preserve Puntos(UBound(P untos) 1)
Puntos(UBound(P untos)) = PuntoScreen.y
Next vlij
PuntoScreen = Nothing
Dim draw_hndl As Long, nPuntos As Long
Dim x() As Double = {}, y() As Double = {}
nPuntos = (UBound(Coord) 1) 2
'Creo un polí­gono de nPuntos formados por pares de coordenadas x,y
For vlii As Integer = 0 To UBound(Coord) Step 2
ReDim Preserve x(vlii 2)
ReDim Preserve y(vlii 2)
x(vlii 2) = Coord(vlii)
y(vlii 2) = Coord(vlii 1)
Next vlii
'Create new drawing layer on map
draw_hndl = AxMap1.NewDrawing(MapW inGIS.tkDrawReference List.dlScreenReferen cedList)
AxMap1.DrawPolygon(x, y, nPuntos, plColor, True)

vlRs.MoveNext()
Loop
Responder | Responder con una citación | Citar
 
 
0 # Demasiados NewDrawingtuxman 14-12-2009 13:07
Hola borjabbv, si quieres me pasas el proyecto y los datos para poder reproducir el ejercicio, de lo contrario me es muy difí­cil ayudarte.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # Ayuda incorporar ortofoto con MapWinGis y Visual Studiorarzabas 01-06-2010 15:09
GERMAN BUENAS TARDES

ME PODRIAS AYUDAR, ESTOY CREANDO UN VISOR DE SHAPE YA ME FUNCIONA NADAMAS QUIERO ANEXARLE
LA ORTOFOTO (MAPA) ABAJO DEL SHAPE...NO SE SI SE PUEDA....SOY NUEVO EN ESTO

SALUDOS

RAFAEL
Responder | Responder con una citación | Citar
 
 
0 # Ráster en MapWinGIStuxman 01-06-2010 21:22
Pues Rafael, más arriba en los comentarios encuentras esto:

Dim img As New MapWinGIS.Image
img.Open("D:imagen.jpg")
axMap1.AddLayer(img, True)

Dependiendo del formato de la imagen podrí­as necesitar MapWinGIS.Grid en lugar de MapWinGIS.Image
Responder | Responder con una citación | Citar
 
 
0 # GRACIASrarzabas 04-06-2010 14:06
GRACIAS TUXMAN YA QUEDO LA PARTE DE LAS ORTOFOTOS....

SALUDOS
Responder | Responder con una citación | Citar
 
 
0 # Colorear parte de un mapaborjabbv 21-06-2010 08:41
Hola de nuevo tuxman.

Tengo un mapa de un municipio. Una capa representa todos los edificios (.shp)
¿Cómo puedo colorear cada uno de ellos en base a una caracterí­stica ?

El ejemplo que te mandé a finales del año pasado trataba de hacer eso pero es un proceso lento y además se bloquea si hay demasiados datos.

Ejemplo tonto: rojo para los edificios de ladrillo, marrón para edificios de piedra, verde para los de madera, ... es decir, que voy a colorear miles de casas con colores diferentes partiendo de un mismo .shp tras haber consultado una base de datos paralela que dispone de la referencia catastral y que puedo relacionar con el .dbf del .shp cargado, identificando así­ cada edificio
Responder | Responder con una citación | Citar
 
 
0 # Duda poligonos...Pavma 30-06-2010 12:43
Hola tuxman.....

tengo una duda y espero me puedas ayudar...

Tengo el mapa de México con su división politica, es decir, pues tengo el mapa dividido en estados, como puedo hacer para colorear cada uno de ellos cuando de click sobre él.

Es necesario pintar nuevos poligonos??

Espero me puedas ayudar.

De antemano gracias
Responder | Responder con una citación | Citar
 
 
0 # Colorear polí­gonos seleccionadostuxman 30-06-2010 15:00
Hola Pavma, para empezar revisa el blog de la herramienta Identify, con ello puedes obtener algo que se llama el "Shape" que es más o menos el ID del elemento seleccionado a través del click.

Una vez tengas ese "Shape" debes usar el método set_ShapeFillCo lor (www.mapwindow.org/wiki/index.php/MapWinGIS:AxMap_ShapeFillColor) del objeto mapa, indicándole además el manejador (handle) del shapefile y el color que deseas aplicar.

Espero te sirva, saludos.
Responder | Responder con una citación | Citar
 
 
0 # Ayuda....problema herramienta IdentifyPavma 01-07-2010 11:48
Hola Tuxman..

Ya intente implementar tu herramienta identify, descargue el archivo.zip y lo agregue a mi proyecto, segui los pasos que vienen en el blog pero me marca 3 errores, al crear la variable global ( Private mwPoint As New MapWinGIS.PointClass)y al crear una variable del tipo PointClass (Dim pPuntoPantalla As New MapWinGIS.PointClass)

Error: Reference to class 'PointClass' is not allowed when its assembly is linked using No-PIA mode.
Interop type 'PointClass' cannot be embedded. Use the applicable interface instead

Espero me puedas ayudar, no se si me falta algo.
Responder | Responder con una citación | Citar
 
 
0 # MapWinGIS.PointClasstuxman 01-07-2010 15:34
Hola Pavma, prueba con MapWinGIS.Point
Responder | Responder con una citación | Citar
 
 
0 # Re... identify....Pavma 01-07-2010 15:42
Hola Tuxman..

Hice lo que me dijiste y ya quedo, ya puedo pintar los diferentes estados, muchas gracias por tu ayuda...

Una ultima duda, para despintarlos, existe un método para hacerlo? o es necesario volverlo a pintar con la herramienta set_ShapeFillCo lor???

Muchas gracias por tu ayuda
Responder | Responder con una citación | Citar
 
 
0 # Problemas con método set_ShapeFillCo lor Pavma 05-07-2010 14:32
Hola Tuxman..

Tengo un problema a la hora de colorear los shapes seleccionados, usé tu herramienta Identify y en base al shape seleccionado lo coloreo con el metodo shapeFillColor, el problema ocurre cuando agregó más de una capa, ya que la herramienta Identify si me reconoce la información de ambas capas pero al intentar pintar el shape seleccionado, no lo pinta.

Espero me puedas ayudar.
Responder | Responder con una citación | Citar
 
 
0 # Re: Problemas con método set_ShapeFillCo lor tuxman 05-07-2010 19:12
Pavma, como te mencioné anteriormente, set_ShapeFillCo lor recibe un parámetro que corresponde al manejador (handle) del shapefile que vas a modificar. Asegúrate que el manejador que le pasas a la función corresponda al shapefile correcto.
Responder | Responder con una citación | Citar
 
 
0 # Imprimir AxMapPavma 06-07-2010 15:33
Hola Tuxman...

Me gustaria saber si me puedes auxiliar, intento imprimir mi mapa una vez que he agregado varias capas, hay una libreria que me permita hacerlo?

He leido un poco acerca de MapWinGis.Image, existe alguna forma de convertirlo a tipo graphics??

Saludos y de antemano muchas gracias.
Responder | Responder con una citación | Citar
 
 
0 # Imprimirtuxman 06-07-2010 17:22
MapWinGIS.Image te sirve para cargar archivos ráster al control mapa.

Para la impresión tal vez te sirva leer lo siguiente:

http://geotux.tuxfamily.org/index.php?option=com_fireboard&Itemid=83&func=view&catid=3&id=413#413
Responder | Responder con una citación | Citar
 
 
0 # Duda AxmapPavma 12-07-2010 13:32
Hola Tuxman..

He logrado mandar a imprimir el elemento AxMap, sin embargo me gustarí­a ponerle titulo e insertarle algunos elementos al momento de imprimirlo, tales como la rosa de los vientos, o la simbologí­a.

Existe alguna manera de insertar este tipo de elementos dentro del AxMap? intenté insertar un AddLabel al inicio del AxMap pero no se me hace unna forma eficiente, espero me puedas ayudar.

De antemano muchas gracias.
Responder | Responder con una citación | Citar
 
 
0 # como imprimirfenix 26-06-2012 19:05
estoy empezando a programar ya tengo el visor echo me interesaria saber el codigo de como lo lograste Pavman
Responder | Responder con una citación | Citar
 
 
0 # Anexar Mapa georeferenciado (ortofoto)Jerry 02-08-2010 18:01
Hola Tuxman,

Muchas gracias por atender nuestras dudas, tengo una pregunta...

Una vez anexado el layer usando las lí­neas:

Dim img As New MapWinGIS.Image
img.Open("D:imagen.jpg")
axMap1.AddLayer(img, True)

¿mapwingis puede gardar la imagen y el(los) shapefile(s) como un solo archivo?

De antemano muchas gracias


Jerry.
Responder | Responder con una citación | Citar
 
 
0 # Guardar capastuxman 02-08-2010 23:01
Te refieres a guardar el proyecto? Tal vez te sirva darle un vistazo a la clase Project de la librerí­a MapWindow.Interfaces que viene con MapWindow y la puedes usar en MapWinGIS: www.mapwindow.org/wiki/index.php/Main_Page

En todo caso, siempre mira el código de MapWindow, te puede dar una idea sobre cómo lo hacen y de allí­ puedes copiar el código que necesites.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # domingo140372 24-08-2010 12:38
ALGUIEN SABE QUE HERRAMIENTAS PUEDO USAR EN LINUX
Responder | Responder con una citación | Citar
 
 
0 # Herramientas en Linuxtuxman 24-08-2010 12:57
Hola domingo140372, has visto el blog del visor de shapefiles ( PostGIS, SpatiaLite) con PyQGIS?

Click aquí­ (http://geotux.tuxfamily.org/index.php?option=com_myblog&show=construccin002d0064e-un-visor-de-shapefiles-con-herramientas-libres-qgis-python-y-qt.html&Itemid=59)

Saludos
Responder | Responder con una citación | Citar
 
 
0 # Problemas para visualizar el control Legend de MapWinGISAurora 12-10-2010 13:06
Hola.... espero que alguien me pueda ayudar.. me URGE en verdad!!!

Estoy desarrollando un visualizador utilizando Visual Studio.Net 2008 (C#) y el MapWinGIS 4.7 en una computadora con Windows 7 a 64 bits.

Resulta ser que no puedo visualizar en mi proyecto el control del legend para poder controlar la visualización de las capas en el AxMap.
Ya agregué la librerí­a MapWinInterface s.dll ubicada en la carpeta de MapWindow, agregué la referencia al proyecto y declaré e inicializé el control desde código:

private LegendControl.Legend leyenda; (esta instrucción la pongo en la sección de declaraciones de la forma principal)
leyenda.Map = (MapWinGIS.Map)axMap1.GetOcx(); (esta instrucción la pongo en el constructor de la forma principal)

Ya he compilado el proyecto y no marca errores, pero sigue sin agregarme el control del legend al toolbox, y cuando intento ejecutarlo me marca un error en la inicialización del legend (segunda instrucción), el error dice asi: "Referencia a objeto no establecida como instancia de un objeto". Supongo que esto lo marca porque fisicamente no tengo el control del legend.

Por favor.. necesito saber qué estoy haciendo mal o qué me hace falta para poder agregar dicho control al proyecto.
De antemano muchas gracias por su ayuda :-)
Responder | Responder con una citación | Citar
 
 
0 # Componente AXMap con Visual Basic .NET 2008stalingp 19-11-2010 11:49
Saludos cordiales...
Estoy trabajando con visual Basic .Net 2008, pero no he conseguido agregar el componente AxMap. Cualquier ayuda será bienvenida.

Gracias
Responder | Responder con una citación | Citar
 
 
0 # Ayuda con visor de shapefilesbagre88 27-11-2010 16:11
hola gracias por realizar este tipo de foros ..son excelentes de y de gran ayuda:
mi profesor de programación de interfaces nos coloco , la elaboración de un visor de shapefiles que estuviera programado en visual studio 2005 con la ayuda del plugging de mapwindows; el visor debe contar con las caracteristicas basicas de control como: adicionar capa,subir o bajar capa, eliminar capa o capas, zoom in , zoom out, zoom extend,ver la tabla de atributos de una capa seleccionada, propiedades de una capa seleccionada que se puedan editar como color etc.

Si alguien me pudiera suministrar el código en visual studio 2005, o parte de él para guiarme me seria de gran utilidad...agradezco sus prontas respuestas o sugerencias
Responder | Responder con una citación | Citar
 
 
0 # Yanelly 11-05-2011 15:56
Hola! Me parece mas que excelente todo este foro en verdad, he aprendido muchisimo con esto, ya genere mi visor estoy programando mis filtros!! pero tengo una inquietud.
La edición dinámica de datos geoespaciales se refiere a poder editar para cambiar los datos de los atributos del visor de sahpefiles? Puedo hacerlo mediante filtro por atributos también? Desde ya muchas gracias!
Responder | Responder con una citación | Citar
 
 
0 # Re:tuxman 28-05-2011 05:55
Hola Yanelly,

seguro que puedes editar tus datos alfanuméricos con MapWinGIS pero para qué vas a usar el filtro en ese caso? Tal vez no he comprendido bien tu pregunta.

Gracias por tus comentarios.

Saludos,

Tuxman
Responder | Responder con una citación | Citar
 
 
0 # Editar tablayanelly 24-06-2011 10:10
Hola! que gusto que hayan contestado mi presgunta...
Realmente con todo la expirementación ya logré desplegar los datos de la tabla de atributos, y realmente solo habilito como lectura en verdadero si solo es consulta, o falso si voy a cambiar algun dato. en realidad loq ue se pretende es localizar uno o mas registros en especial, para actualizarle la información, obviamente necesito un filtro, con el cuál no hay problema, sólo querí­a saber si se podí­a realizar la edición de los datos para cambiarlos, creo que por lo que he visto, si se puede. De todas formas muchas gracias, esto me ha ayudado mucho. Voy a estar molestando por aquí­. Ah! se me olvidaba... hay alguna manera de actualizar mi previww map despues de hacer un zoom in, zoom out, desplazamiento, y no me refiero a despúes de picar el botón para estos eventos, eso lo puedo meter al click del mismo, sino al usar en si, el modo de cursor después de desplazarme o hacer zoom..? para poder previsualizar mi ubicación en el mapa, necsito actualizar el segundo control map, sin embargo no encuentro donde colocar la actualizacion del preview cada vez que pasa un evento de estos... gracias neuvamente!!
Responder | Responder con una citación | Citar
 
 
0 # Herramienta measureMarioBurgos 31-01-2012 12:23
Hola Germán. En primer lugar felicitarte por la página y agradecerte la ayuda e información que nos proporcionas.
Estoy realizando una aplicación a partir de mapwingis y quisiera saber de qué manera puedo configurar una herramienta como la denominada "Measure" de Mapwindow. He probado a dibujar polilíneas y hacer los cálculos con las coordenadas del mouse en cada "clic", pero no soy capaz de conseguir lo que pretendo. Si pudieras facilitarme información de como hacer esto... Estoy realizando la aplicación con lenguaje visualbasic.net.
Gracias
Mario
Responder | Responder con una citación | Citar
 
 
0 # Re:tuxman 31-01-2012 19:42
Hola Mario,

gracias por tus comentarios. Hace ya un par de años que no trabajo con MapWinGIS, sin embargo, el mismo consejo sigue aplicando. La primera fuente para resolver tu problema (cómo desarrollo en MapWinGIS algo que existe en MapWindow?) es por supuesto mirar el código de MapWindow y ver cómo lo hacen allí (hay que aprovechar las ventajas del software libre :-) ). De seguro encontrarás código que puedes reutilizar para tu aplicación.

Por otro lado, tu intento podría también funcionar, no me quedó claro qué es lo que falla cuando tratas de calcular la distancia de la polilínea dibujada.

Saludos,

Tuxman
Responder | Responder con una citación | Citar
 
 
0 # para win7Gabriel_AR 05-04-2012 15:09
Hola
veo que no sigues con mapwingis. Te consulto si conoces otra herramienta que permita mostrar shp en una aplicación de escritorio. El desarrollo es en .net
La condicion es que corra en win7 de 64 bits!
muchas gracias
Responder | Responder con una citación | Citar
 
 
0 # Re:tuxman 05-04-2012 18:28
Hola,

si no te sirve MapWinGIS, te recomiendo el proyecto DotSpatial [1] y el mismo SharpMap [2]. No tengo idea si corren en esa plataforma, pero puedes leer su documentación.

Saludos,

Tuxman
-------------
[1] http://dotspatial.codeplex.com/
[2] http://sharpmap.codeplex.com/
Responder | Responder con una citación | Citar
 
 
0 # GraciasFANCY 24-04-2012 17:23
Primeramente felicitarte por compartir tus conocimientos.
Estoy realizando un proyecto sobre redes de alcantarillado, consiste en busqueda de zonas, calles, caracteristicas de la red,etc...Quisiera saber que sugerencia me puedes dar para poder realizar mi proyecto.Te agradezco de antemano por tu ayuda.
Responder | Responder con una citación | Citar
 
 
0 # Re:tuxman 24-04-2012 18:15
Hola Fancy,

demasiado amplio. Es un proyecto Web? Desktop? para dispositivos móviles? Usarás estándares? etc. Concreta tu pregunta.
Responder | Responder con una citación | Citar
 
 
0 # Problema al subir y bajar layersHelios 28-04-2012 22:46
Buenas Tardes Tuxman,

Primero que todo agradezco los aportes que has hecho, hay mucha información, la verdad trate de leer el foro con mucha cautela pero no encontré lo siguiente: tengo un CheckedListBox1 en el cual veo el nombre de los shapes cargados en mi tarea debo desplazar hacia arriba o abajo los shapes, este cambio debe hacerse en el CheckedListBox1 y en el visor, este el codigo que llevo:***en el siguiente comentario***

en el CheckedListBox1 ya tengo solucionado el problema de visualizacion pero en el visor no, estoy usando movelayerup() pero creo q se debe inicializar, pero por mas que pienso no se como ya intente mil cosas.
Espero me puedas ayudar Gracias.
Responder | Responder con una citación | Citar
 
 
0 # Mi codigoHelios 29-04-2012 22:39
Dim A As String
Dim H As String
Dim G As String
Dim B As String
Dim S As String

If CheckedListBox1.SelectedIndex = 0 Then
MsgBox("No se Puede Subir Capa", MsgBoxStyle.Exclamation, "Error")
Else
AxMap1.MoveLayerUp(Che ckedListBox1.SelectedIndex)
A = CheckedListBox1.SelectedIndex
H = CheckedListBox1.Items(A)
G = CheckedListBox1.Items(A - 1)

CheckedListBox1.Items(A - 1) = H
CheckedListBox1.Items(A) = G
CheckedListBox1.SelectedIndex = (A - 1)

B = CheckedListBox1.SelectedIndex
S = AxMap1.get_LayerHandle (B)
AxMap1.MoveLayerUp(S)
End If
Responder | Responder con una citación | Citar
 
 
0 # Re:tuxman 30-04-2012 09:28
Hola Helios,

por lo que veo en la documentación [1], debes pasarle la posición de la capa que quieres mover a la función MoveLayerUp. Como veo que la posición la tienes en tu variable B, sería algo así:

-----
AxMap1.MoveLayerUp(B)
----

Si llegases a necesitar obtener la posición de una capa teniendo su manejador (handler), lo podrías hacer así:

-----
Dim pos As Integer
pos = AxMap1.get_LayerPositi on(S)
-----

Saludos,

Tuxman

----------------
[1] http://www.mapwindow.org/documentation/mapwingis4.8/class_ax_map.html
Responder | Responder con una citación | Citar
 
 
0 # Distancia de lineasHelios 20-06-2012 23:05
Buenas tardes tuxman,

Primero que todo mil gracias por la ayuda anterior, por favor me puedes colaborar, genere una funcion que me genera unas polilineas, sin embargo quiero saber la cuanto mide cada linea me puedes echar una mano. mil gracias.
Responder | Responder con una citación | Citar
 
 
+1 # Re:tuxman 21-06-2012 08:41
Cuándo se nos quitará la costumbre de escribir solo cuando necesitamos ayuda?

Por otra parte, cuando preguntes asegúrate de intentar algo antes, una simple búsqueda en Internet te arrojará esta referencia:

http://www.mapwindow.org/documentation/mapwingis4.8/class_shape.html#abb54b79c8d98f768b226c19591871f0a

en donde te dan hasta un ejemplo.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # ayudaHelios 02-07-2012 15:24
Hola tuxman,

Solicito de tu ayuda nuevamente, estuve revisando el link que me enviaste pero lastimosamente no entendí, tengo un código que me genera lineas y cada punto es una coordenada x,y. se que para calcular las distancias cada vez que hago clic debo utilizar esta formula d = √ (x₂ - x₁)² + (y₂ - y₁)², pero no se como guardar las coordenadas cada vez que hago clic. este es mi codigo espero me puedas ayudar

PrivateSubSelec ciónConMouseToo lStripMenuItem_ Click(ByValsend erAsSystem.Object,ByValeAs System.EventArgs)Handl esSelecciónConM ouseToo lStripMenuItem.Click
Me.AxMap1.CursorMode=MapWinGIS.tkCursorMode.cmSelection
AxMap1.SendSelectBoxFi nal=True'False
AxMap1.SendSelectBoxDr ag=False'True
EndSub
Responder | Responder con una citación | Citar
 
 
0 # ayudaHelios 02-07-2012 15:25
PublicSubdibuja lin()

Try
DimaAsDouble,bA sDouble,cAsDoub le,dAsDouble
Dimpartes()AsSt ring
partes=Split(puntos(0) ,"|")
a=CDbl(partes(0))
b=CDbl(partes(1))
ForiAsInteger=1Tonump-1
partes=Split(puntos(i) ,"|")

c=CDbl(partes(0))
d=CDbl(partes(1))
Dimdraw_hndlAsI nteger=_

AxMap1.NewDrawing(MapW inGIS.tkDrawReference List.dlScreenReferen cedList)
AxMap1.DrawLine(a,b,c, d,0,System.Convert.ToUInt32(RGB(199,55,0)))

a=c
b=d
Next
CatchexAsExcept ion
MsgBox(ex.ToString)
EndTry
EndSub

PrivateSubAxMap 1_DblClick(ByVal senderAsObject, ByValeAsSystem.EventArgs)Handl esAxMap1.DblClick
dibujalin()
MsgBox("Serealizaronuna slineascon"&nump&"verticesyunalon g.de?")
Me.StatusStrip1.Items.Clear()
Me.StatusStrip1.Items.Add("longitudde?")
nump=0
Me.AxMap1.ClearDrawings()
Me.AxMap1.Redraw()
Me.AxMap1.SendMouseDown=False
EndSub
Responder | Responder con una citación | Citar
 
 
0 # ayudaHelios 02-07-2012 15:26
PrivateSubAxMap 1_MouseDownEvent (ByValsenderAsS ystem.Object,ByValeAs AxMapWinGIS._DMapEvents_Mou seDownEvent )HandlesAxMap1.MouseDownEvent

DimaAsString=e.x&"|"&e.y
DimbAsDouble=e.x
DimcAsDouble=e.y
dibujalin()
EndSub

Mil gracias.
Responder | Responder con una citación | Citar
 
 
0 # Re:tuxman 05-07-2012 14:28
Si quieres guardar las coordenadas del punto picado, puedes crear un arreglo de puntos en las declaraciones generales de la clase y agregarle un elemento (punto) en cada llamado al evento MouseDown.

Más arriba, en los comentarios de este post ya se ha hablado acerca de cómo obtener coordenadas en metros y no en pixeles.
Responder | Responder con una citación | Citar
 
 
0 # como imprimirfenix 26-06-2012 19:11
pudieras compartir el codigo de impresion Pavman
Responder | Responder con una citación | Citar
 
 
0 # GraciasHELIOS 28-06-2012 00:11
Mil gracias.

Por la ayuda.
Responder | Responder con una citación | Citar
 
 
0 # AYUDA!!!!!edwin 04-07-2012 08:14
COMO HAGO PARA MOSTRAR LAS COORDENADAS EN UN TOOLSTRIPSTATUS LABEL CUANDO EL MOUSE SE MUEVE SOBRE EL CONTROL DE AXMAP SIN DAR CLICK EN ESTE

ESPERO PUEDAN AYUDARME ES DE MUCHA URGENCIA

GRACIAS POR SU ATENCION
Responder | Responder con una citación | Citar
 
 
0 # Re: Coordenadas del cursortuxman 05-07-2012 13:53
Pues Edwin :o , la respuesta está en los mismos comentarios de este post, solo que un poco más arriba [1]. Claro, ahí está con labels, pero no debe ser problema adaptarlo al control que mencionas.

----
[1] http://geotux.tuxfamily.org/index.php/es/geo-noticias/item/28-construccion-de-un-visor-de-shapefiles-con-herramientas-libres#comment-76
Responder | Responder con una citación | Citar
 
 
0 # Error para adherir AxMapJohnny 12-07-2012 23:32
Buenas tardes. Soy nuevo en esto de la programación. Quisiera saber porque cuando trato de agregar el AxMap al mi form, me sale un error diciendome que hay un error al crear el componente. Yo seguí todos los pasos del tutorial y no se donde estoy equivocado. Gracias
Responder | Responder con una citación | Citar
 
 
0 # visor webzamy garcia 08-02-2013 22:39
Buena tarde, quisiera saber que pasos y que programas necesitaria para publicar un visor web con unos shp jalandolos desde mi laptop, y que en el visor los pueda prender y apagar a mi gusto......solo seria visual y de consulta de atributos, nada de edicion.

yo trabajo en arcgis desktop, pero no tengo licencia del server ni se manejarlo.
Responder | Responder con una citación | Citar
 
 
+1 # Re:tuxman 11-02-2013 21:49
Hola, necesitarias un servidor de mapas como UMN MapServer o GeoServer. Si no estoy mal, traen por defecto visores web para que navegues tu mapa.

Mira esta página, por ejemplo: http://docs.geoserver.org/stable/en/user/gettingstarted/shapefile-quickstart/index.html

También puedes encontrar aplicaciones en la web que te permiten subir tu shapefile y acceder a tu mapa, pero para serte franco en este momento no recuerdo alguna (no las uso!).

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # herramientas actualizadassonic 18-02-2013 04:48
hola veo q este post es del 2007, si se quiere desarrrollar este visor en la actualidad, q versiones de las herramientas (activex .net, SharpDevelop) se pueden utilizar? sera que hay algun tipo de incompatibilida d si se intenta desarrollar el visor con las ultimas versiones de dichas herramientas? gracias
Responder | Responder con una citación | Citar
 
 
0 # Re:tuxman 18-02-2013 13:23
Hola sonic,

no creo que haya mucha incopatibilidad . En todo caso, han cambiado cosas en la librería MapWinGIS, pero no es nada que no puedas solucionar con una búsqueda en su listado de funciones.

Yo te animaría a que lo intentaras y si llegas a encontrar obstáculos considerables, los compartieras con esta comunidad para que quede documentado y le sirva a futuros usuarios.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # preview mapsonyc 19-02-2013 21:39
hola te cuento que ya implemente el visor, intente usar la ultima version del mapwin, pero me dio mil provlemas a la hora de registrar el mapWinGIS.ocx, por lo que hice la facil :( implemente la 4.3 y funciono. te cunto q ahora estoy tratando de implementar el preview map colocando el codigo q posteaste sin embargo me genera el siguiente error
'BotonPreview' ya se declaró como 'Private Dim botonPreview As System.Windows.Forms.Button' en class. (BC30260)
Responder | Responder con una citación | Citar
 
 
0 # problemaspara registrarGeoSus 25-05-2013 07:23
Hola muchas gracias por este post la verdad creo que me sera de mucha ayuda, sin embargo tengo un problema para poder registrar regsvr32.exe “C:\Program Files\MapWindow \MapWindow\MapW inGIS.ocx” ya lo hice con la version 4.3 como lei , pero sigo sin poder, alguien podria ayudarme?
Responder | Responder con una citación | Citar
 
 
0 # preview mapsonyc. 19-02-2013 21:43
aca te dejo el codigo como lo implemente

aca te dejo el codigo como lo implemente

Public Partial Class MainForm 'Clase MainForm
Public Sub New()
' The Me.InitializeCompo nent call is required for Windows Forms designer support.
Me.InitializeCompo nent()

'
' TODO : Add constructor code after InitializeCompo nents
'
End Sub
Dim draw_hndl as Integer

Sub BotonPreview(By Val sender As Object, ByVal e As EventArgs)

dim imagen As MapWinGIS.Image
imagen = AxMap1.SnapShot(AxMap1.Extents)
imagen.Save("snapshot1",True)

axmap2.ClearDrawing (draw_hndl)


if not (axmap2.NumLayers=0) then
dim MiExtent as new MapWinGIS.Extents
miextent=axmap1.Extents
draw_hndl = axMap2.NewDrawing(MapW inGIS.tkDrawReference List.dlSpatiallyRefe rencedList )
Responder | Responder con una citación | Citar
 
 
0 # preview mapsonyc.. 19-02-2013 21:44
Dim xObj(5) As double
xobj(0) = miextent.xMin
xobj(1) = miextent.xMax
xobj(2) = miextent.xMax
xobj(3) = miextent.xMin
xobj(4) = miextent.xMin
Dim yObj(5) As double
yobj(0) = miextent.yMax
yobj(1) = miextent.yMax
yobj(2) = miextent.yMin
yobj(3) = miextent.yMin
yobj(4) = miextent.yMax
axmap2.DrawPolygon(xob j,yobj,5,System .Convert.ToUInt32(RGB(255,0,0)) ,False)
end if

axmap2.addlayer(imagen ,True)
End Sub

agradeceria si me oudieras ayudar, el botonPreview lo cree normalmente como se crearon los otros del visor
Responder | Responder con una citación | Citar
 
 
0 # Duda shpredjohn 03-06-2013 19:45
hola mi duda es como hacer un shp de tipo poligono con el complento de Mapwingis y visual studio 2010 con leguage visual el codigo q uso es este si le sirve adelante pero nose donde esta mi error o por que no lo hacer por que si hace la tabla y todo peor no el dibujo bueno les dejo el codigo esta en el otro comentario
Responder | Responder con una citación | Citar
 
 
0 # Dudashpredjohn 03-06-2013 19:45
Private Sub InsertPart()
Dim shape As New MapWinGIS.Shape()
Dim point(Puntospol X.Count) As MapWinGIS.Point
Dim partindex As Integer, pointindex As Integer, i As Integer,Dim success As Boolean,Dim sf As New MapWinGIS.Shapefile() ruta = ruta + "\shp\Parcela.shp"
sf.Open(ruta), sf.StartEditingSha pes(True)
For i = 0 To PuntospolX.Count
point(i) = New MapWinGIS.Point() Next 'Create a new polygon shape object
success = shape.Create(MapWinGI S.ShpfileType.SHP_POLYGON
For i = 0 To PuntospolX.Count - 1
point(i).x = PuntospolX.Item(i)
point(i).y = PuntospolY.Item(i)
Next
success = shape.InsertPart(0, partindex)
partindex = partindex + 1
For i = 0 To PuntospolX.Count
success = shape.InsertPoint(poi nt(i), pointindex)
pointindex = pointindex + 1
Next
sf.EditInsertShape (shape, 0)
sf.StopEditingShap es()
End Sub
Responder | Responder con una citación | Citar
 
 
0 # Consulta urgenteJuan_sig_2 09-10-2013 21:42
Me parece genial este artículo, la tecnología del uso del software libre avanza a pasos agigantados.

Al realizar este ejercicio me sale el siguiente error a la hora de hacer click en el componente "AxMap" y luego hacer click en la ventana de diseño: "system.runtime.interopservices .comexception 0x80040154"

Por favor me podrian dar una solucion?.
Gracias.
Responder | Responder con una citación | Citar
 
 
0 # SELECCION DE POLIGONOedgar 10-10-2013 20:18
Me parece genial tu artículo, agradezco el apoyo que das a cada comentario y no se si me podrías ayudar con mi duda:

Ya tenemos la visualización del Shape con varios polígonos dentro del mismo, lo que quisiera saber es ¿como hacer que al darle clic a un polígono cambie de color? (para saber cual fue el seleccionado).

Espero y me puedas ayudar, saludos...
Responder | Responder con una citación | Citar
 
 
0 # Re:tuxman 10-10-2013 20:45
Hola, ya leíste estos hilos [1,2] del foro de MapWindow? Creo que te pueden ayudar.

Por otro lado, observa que este artículo es un poco antigüo, pueden fallar varias cosas ya que las nuevas versiones de MapWinGIS introducen cambios en la API. Más aún, no uso Windows en la actualidad, te recomendaría usar una API como PyQGIS, soportada en varias plataformas y con relativo buen soporte por parte de los desarrolladores de QGIS. Eso si, esto dependería de los objetivos de tu proyecto.

Saludos,

Tuxman
---
[1] http://www.mapwindow.org/phorum/read.php?2,17651,printview,page=1
[2] http://www.mapwindow.org/phorum/read.php?3,22779
Responder | Responder con una citación | Citar
 
 
0 # SELECCIÓN DE POLIGONOedgar 10-10-2013 22:56
Cito a tuxman:
Hola, ya leíste estos hilos [1,2] del foro de MapWindow? Creo que te pueden ayudar.

Por otro lado, observa que este artículo es un poco antigüo, pueden fallar varias cosas ya que las nuevas versiones de MapWinGIS introducen cambios en la API. Más aún, no uso Windows en la actualidad, te recomendaría usar una API como PyQGIS, soportada en varias plataformas y con relativo buen soporte por parte de los desarrolladores de QGIS. Eso si, esto dependería de los objetivos de tu proyecto.

Saludos,

Tuxman
---
[1] http://www.mapwindow.org/phorum/read.php?2,17651,printview,page=1
[2] http://www.mapwindow.org/phorum/read.php?3,22779


Gracias por tu ayuda #Tuxman los leeré y en cuanto salgan mas dudas te consulto, un saludo y gracias nuevamente
Responder | Responder con una citación | Citar
 
 
0 # Posiciones GPSdatoba 05-12-2013 19:49
Hola, estoy desarrollando una aplicación en visual basic en la cual recibo posiciones GPS por el puerto COM y poder representarlas en una capa de posicionamiento . Hasta he podido representar un punto en el mapa pero al hacer zoom in solo se aplica en el mapa y la posición no.

Como podria solucionarlo para ir visualizando todas las posiciones q recibo y que el zoom se aplique ha todas las capas ?

Muchas gracias
Responder | Responder con una citación | Citar
 
 
0 # Re:tuxman 06-12-2013 01:08
Qué librerías usas? Qué versiones?
Mejor si muestras código relevante que permita ver cómo dibujas los puntos... De lo contrario, por más que alguien quiera no te podrá ayudar.
Responder | Responder con una citación | Citar
 
 
0 # Posiciones GPSdatoba 09-12-2013 13:18
Utilizo la libreria MapWinGis ver. 3.0. He probado dos cosas: 1a pintar los puntos en una capa de dibujo:
Dim latdouble As Double
Dim longdouble As Double
latdouble = CDbl(latitud)
longdouble = CDbl(longitud)
Mapa.ProjToPixel(lon gdouble, latdouble, longi, lati)
Mapa.CursorMode = MapWinGIS.tkCursorMode.cmNone
draw_hndl = Mapa.NewDrawing(MapW inGIS.tkDrawReference List.dlScreenReferen cedList)
Mapa.DrawCircle(long i, lati, 5, RGB(32, 26, 228), True) 'Pintar un circulon una posición concreta del mapa

2a...
Responder | Responder con una citación | Citar
 
 
0 # Posiciones GPSdatoba 09-12-2013 13:18
... 2a, crear una capa de posiciones para pintar los puntos, como prueba he definido que dibuje un punto en el centro de la capa para ver si funciona el zoom in/out:
Dim capagps As New MapWinGIS.Shapefile()
Dim nomcapa As String
Dim unacapa2 As Integer
nomcapa = "Posicions GPS"
capagps = New MapWinGIS.Shapefile
capagps.CreateNew("Posicions GPS", MapWinGIS.ShpfileType.SHP_POINT)
capagps.Open(nomcapa) 'Obrim la capa seleccionada com a nova capa
unacapa2 = Llegenda.Layers.Add(capagps, True) 'Afegim la capa a la llegenda
Llegenda.Map.LayerName(unaca pa2) = System.IO.Path.GetFileNameWith outExtension(no mcapa)
Mapa.set_ShapeLayerP ointColor(unaca pa2, Convert.ToUInt32(Drawing.ColorTranslator .ToOle(Color.Red)))
Mapa.set_ShapeLayerP ointSize(unacap a2, 10000)
capagps.BeginPointInSha pefile()
capagps.PointInShapefil e((xMax - xMin) / 2, (yMax - yMin) / 2)
capagps.EndPointInShape fil e()

Muchas gracias por tu colaboración
Responder | Responder con una citación | Citar
 
 
0 # Posiciones GPSdatoba 09-12-2013 15:40
y el botón zoom in con el siguiente codigo:

Private Sub ToolStripButton 5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton 5.Click
Mapa.Refresh()
Mapa.CursorMode = MapWinGIS.tkCursorMode.cmZoomIn

End Sub
Responder | Responder con una citación | Citar
 
 
0 # Sr.Fernando Real 13-08-2015 19:42
SharpDevelop usas Dim FileSys As New Scripting.FileSystemObjec tclass 'Se crea el objeto que manejará directorios y archivos del sistema.
en Visual studio 2013 cual seria? por que me marca un error.

Saludos.
Gracias
Responder | Responder con una citación | Citar
 
 
0 # Sr.Fernando Real 13-08-2015 23:09
1.- Muchas felicidades por tu aportación.
2.- Me ayudo mucho. Gracias.
3.- Pregunta: Se puede desde un archivo con coordenadas x,y graficar en el shape una ruta.

Saludos.
Responder | Responder con una citación | Citar
 
 
0 # identifydiver 18-10-2015 23:31
buenas para todos, estoy tratando de hacer un visor con vb6 pero no se como implementar el objeto de (indentify) identificaciòn de espacial, agradezco sus ayuda gracias

mi nombre es diver
Responder | Responder con una citación | Citar
 

Escribir un comentario


Código de seguridad
Refescar

 

¿Dónde nos leen?

Últimos comentarios