Archivo

Archivo para la categoría ‘Aplicación’

TrackInfo Versión v.1.4b

jueves, 12 de mayo de 2011 5 comentarios
Share Button

Publicada la versión 1.4b de la aplicación TrackInfo.

Se han corregido algunos bugs de la anterior versión y como cosas más relevantes de la versión nueva están:

  • Sistema nuevo de Multiidioma para la aplicación donde es más fácil crear nuevos ficheros de idioma.
  • Ahora el programa permite abrir los formatos de fichero más importantes directamente (sin convertirlos préviamente):

GPS Trackmaker (*.GTM)
Google Earth (*.KML)
OziExplorer (*.PLT)
Garmin Training Center (*.TCX)
Mapsource (*.GDB)
CompeGPS (*.TRK)
GPS Exchange Format (*.GPX)
Alan Map500 TrackLog (*.TRL)
Garmin Mapsource (*.MPS)
Magellan File -eXplorist- (*.UPT)
Swiss Map 25/50/100 (*.XOL)

La descripción completa de la aplicación y las características completas en la página de la aplicación. Desde ahí se puede descargar de forma gratuíta el fichero.

Como siempre las sugerencias, comentarios y demás son bien recibidos.

Un saludo.

 

Categories: Aplicación, Offtopic Tags: , ,

IBPIndexCalc v.1.0

viernes, 29 de abril de 2011 Sin comentarios
Share Button

IBPIndexCalc es una aplicación que permite obtener multitud de datos (en general «el grado de dificultad») de un Track/Ruta realizado en bicicleta (sea de carretera o de montaña). Aunque los datos podrían ser aplicados a cualquier track realizado en otra actividad.

Para ello el programa utiliza la web  de IBPIndex (http://www.IBPIndex.com); Imprescindible para todos aquellos que salís en bici y utilizáis/generáis track con GPS.

Este índicxe IBP (Interactive Bicycling Parameters) se obtiene analizando los datos de latitud, longitud y altura en multitud de puntos del recorrido. A partir de estos puntos se calculan las distancias recorridas en los diferentes tramos de subidas y bajadas (1%, 5%, 10% etc..) se computan los % que representan sobre el total, los metros totales ascendidos, descendidos, los ratios medios de subida y de bajada, los Km. totales, y la distribución de los tramos de subida. Si queréis saber más y ampliar información sobre el tema visitad la web de IBPIndex (proceso de cálculo, corrección de errores, formato de puntuación,…).

IBPIndexCalc utiliza los componentes Indy para el acceso a la Web. Además implementa una clase derivada de TThread que permite que el pograma principal no se bloquee mientras espera la respuesta desde la web. Estructura de la Clase TWebThread:

{ : Clase para realizar consultas utilizando thread a la Web. }
TWebThread = class(TThread)
private
IdHTTP: TidHTTP;
Stream: TIdMultipartFormDataStream;
FTrackFileName: string;
FwebBrowser: TWebBrowser;
FResponse: string;
private
FURLNavigate: string;
FURLPDF: string;
function _RepairLinks(StrPage: string; var URLpage: string;
var UrlPDF: string): string;
protected
 
public
// ejecutar el procedimniento.
procedure Execute; override;
// componente de navegación.
property webBrowser: TWebBrowser read FwebBrowser write FwebBrowser;
// Fichero de Track/ruta.
property TrackFileName: string read FTrackFileName write FTrackFileName;
// : Propiedad para recoger la respuesta desde la Web.
property Response: string read FResponse write FResponse;
// URL de navegación.
property URLNavigate: string read FURLNavigate write FURLNavigate;
// URL del PDF de respuesta.
property UrlPDF: string read FURLPDF;
// : Constructor redefinido.
constructor Create(AFileName: string; wb: TWebBrowser);
end;

Una vez que el programa obtiene respuesta de la Web, la analiza para detectar posibles errores y para extraer los links útiles al usuario. En este caso el PDF generado y la página de resultados.

La aplicación y la clase UTWebThread puede se útil, modificando determinados, para realizar un trabajo similar en otras páginas webs.

Es totalmente gratuíta y el código fuente está disponible.

<DESCARGAR EJECUTABLE>

<DESCARGAR CÓDIGO FUENTE>

 

 

Versión v.1.2b de la aplicación TrackInfo

martes, 19 de abril de 2011 4 comentarios
Share Button

Acabo de publicar la versión 1.2 de TrackInfo.

TrackInfo es una aplicación que permite obtener información y visualizar sobre un mapa, rutas en formato GPX (GPS eXchange Format). Está pensado (o enfocado) a la carga de archivos que provienen desde un dispositivo GPS. Permite la conversión de rutas entre diferentes formatos.

NEW:

  • Actualizados los formatos de conversión;  KML (Google Earth), TCX (Garmin training center), GTM (GPS TrackMaker), PLT (Ozi explorer), GDB (Mapsource), TRK (CompeGPS), XOL (Swiss Map), …
  • Animación de recorrido de la ruta
  • Gráficos de Alturas y velocidad sincronizados con la animación.
  • Información extendida para los puntos que forma la ruta (Velocidad puntual, distancia acumulada, ascenso acunulado, descenso acumulado,…)
  • Corrección de errores y bugs respecto a la versión anterior.
  • Mayor rapidez en la carga de rutas y en la conversión.
  • Mejoras menores.

Descripción completa de la aplicación y Descargas.

Visualizar un fichero KML en Delphi II

lunes, 14 de marzo de 2011 4 comentarios
Share Button

Esta entrada se podría considerar como una «ampliación» de la última publicada relacionada con los ficheros KML, Generar ficheros KML de rutas; Tracks en Google Maps. A partir de un tema surgido en los foros del Clubdelphi de cómo visualizar estos ficheros directamente sobre Google Maps dentro de una aplicación Delphi, he modificado el programa anterior (que incluía la conversión desde GPX) para poder visualizarlos directamente.

En un ejemplo más simplificado, y enfocado a los ficheros KML. Como ya dije anteriormente, este tipo de ficheros pueden almacenar otros tipos de información y en este ejemplo se leen los datos directamente desde este tipo de ficheros (en este caso sólo la ruta).

Además el mapa está optimizado para visualizarse a tamaño completo, y no según el tamaño de la ventana como estaba anteriormente (esto implica la optimización de que no se recarga la página al cambiar el tamaño).

También se ha modificado el recurso de la página Web, para que automáticamente se calcule en «centrado» y el «zoom» del mapa a partir del Track que se va a visualizar. Para ello se utiliza el siguiente código:

var polylineBounds = polyline.getBounds();
var ZoomLevel = map.getBoundsZoomLevel(polylineBounds) - 1;
map.setCenter(polylineBounds.getCenter(), ZoomLevel);

Se puede descargar el ejemplo desde aquí (incluye los fuentes).

<Descargar fuentes>

AÑADO: compilación en Delphi XE2.

Debido a un cambio en la definición de la función EnumResourceModules, que pasa de usar LongInt a NativeInt, hay que realizar un cambio en el procedimiento que se le pasa como parámetro, modificando este dato.
La definición del procedimiento, ahora queda así:

function _MyEnumResourceModules (
Instance:{$IFDEF VER230}NativeInt{$ELSE}Pointer{$ENDIF};
Data:Pointer):Boolean;

TidHTTP; Descargar imágenes de una Web

jueves, 10 de febrero de 2011 Sin comentarios
Share Button

Haciendo pruebas con el componente TidHTTP me ha surgido este ejemplo y me parece interesante mostrar el proceso completo que he seguido para descargar contenido desde una web. En este caso he accedido a las imágenes en formato PNG, pero es extensible a cualquier otros contenidos.

En un primer paso se trata de obtener el contenido (source) desde una página web y a partir de ahí, extraer los links (en mi caso correspondientes a imágenes en formato PNG) y descargar los ficheros para almacenarlos en disco. Para ello utilizaremos el control TidHTTP de la Indy.

Para obtener el código fuente de la página podemos utilizar un código como este:

  // URL de la página
  StrURL := ... ;
  // Crear componente para acceder
  IdH := TIdHTTP.Create(nil);
  // proteccion para liberar
  try
    // proteccion por error
    try
      // Obtenemos la pagina
      Resp := IdH.Get(Trim(StrURL));
      // recuperamos la respuesta
      TSContent.Text  := Resp;
    except
      on E:Exception do begin
        MessageDlg('Error al acceder a la página. '+#13+#10+
                         'Mensaje: ' +
                         E.Message, mtError, [mbOK], 0);
      end;
    end;  // try
  finally
    IdH.Free;
  end;

Una vez que obtenemos la respuesta del componente almacenamos el contenido de la página en un TStrings. Si accedemos a la página: http://neftali.clubdelphi.com/temporal/ejemplo1.html

Obtendremos como resultado del Get el siguiente texto, que corresponde al código fuente de la página:

Lo siguiente que vamos a hacer es un simple «parseo» buscando los enlaces que nos interesen. En nuestro ejemplo queremos links a imágenes en formato png. Utilizando funciones de la clase SysUtils podemos obtener sin mayor problemas los links contenidos en el código; Si probáis con la página de ejemplo, deberíais obtener un único link:

http://neftali.clubdelphi.com/images/GLibWMI_paleta_1.8b.png

Por último, nos queda ver el código necesario para descargar la imagen y almacenarla en disco. Para ello podemos utilizar de nuevo el componente TidHTTP. En mi caso, y en previsión de que pueda haber varias imágenes a descargar, he creado una clase derivada de TThread para ello:

  {: Clase para descargar una imagen y almacenarla en disco.}
  TDownImageThread = class(TThread)
  private
    FURLImage: string;
    FPathImage: string;
    FFileNameImage: string;
    // Internas
    ImageName: string;
    PathURL: string;
    // Componente
    idH:TidHTTP;
  public
    // redefinir métodos
    constructor  Create(AURL:string; AOutPathImages:string);
    destructor Destroy; override;
    procedure Execute; override;
    {: URL de la imagen a descargar. }
    property URLImage:string read FURLImage write FURLImage;
    {: Path de disco local donde voy a almacenar la imagen.}
    property PathImage:string read FPathImage;
    {: Nombre completa (path+Nombre) de la imagen almacenada en disco local}
    property FileNameImage:string read FFileNameImage;
  end;

Al crear el Thread (método Create) ya pasamos como parámetros, la URL de la imagen a descargar y el Directorio inicial donde se van a guardar las imágenes encontradas.

El método Execute creamos un componente TidHTTP (igual a como lo hemos hecho antes), pero en este caso utilizamos un TFileStream para recoger el fichero que descargamos y almacenarlo en disco.

Utilizamos el Path de la URL para generar diferentes directorios para las diferentes imágenes:

···················································································································

URL: http://neftali.clubdelphi.com/images/GLibWMI_paleta_1.8b.png

Path: images

FileName: GLibWMI_paleta_1.8b.png

···················································································································

//: recupara la imagen y la guarda en disco
procedure TDownImageThread.Execute();
var
  Stream:TFileStream;
  IdH:TidHTTP;
  path:string;
  dir:string;
begin
  // Directorio de salida
  dir := AnsiReplaceText(PathURL, '/', STR_EMPTY);
  // Nombre vacío
  if (ImageName = STR_EMPTY) then begin
    Exit;
  end;
  // Path de salida
  path := IncludeTrailingBackslash(IncludeTrailingBackslash(PathImage)
          + dir) + ImageName;
  // Crearlo por si no existe
  ForceDirectories(ExtractFilePath(path));
  try
    // Stream para la imagfen
    Stream  := TFileStream.Create(path, fmCreate);
    try
      //recuperar la imagen
      IdH := TidHTTP.Create(nil);
      IdH.AllowCookies := True;
      // proteccion
      try
        IdH.Get(Trim( FURLImage), Stream);
      except
        // Error al descargar la imagen
        //..  Volcarlo al log
      end;
    finally
      // Liberar
      idH.Free;
      Stream.Free;
    end;
    // Path de salida
    FFileNameImage := path;
  except
    // error al crear el fichero
    //...  Log
  end;
end;

El resultado se puede ver en este ejemplo.

Una vez descargadas las imágenes se muestran en un componente en la misma aplicación, y desde ahí podemos acceder a la información de la imagen y realizar algunas acciones sobre ellas.

Para realizar pruebas podéis introducir, por ejemplo direcciones como:

Como siempre podéis descargar los fuentes y los binarios de ejemplos.

<DESCARGAR SOURCES>

<DESCARGAR BINARIO>


ACTUALIZACIÓN (26/02/2015): La página del ejemplo ha cambiado y ahora se accede por https. por lo tanto el enlace es:

https://sites.google.com/site/gmapsdevelopment/Home

Por lo tanto para poder descargar tanto la página inicial (de donde se extraen los enlaces),  como las imágenes en si, hay que modificar ligeramente el programa.

Hay que utilizar el componente TIdSSLIOHandlerSocket para poder utilizar SSL y añadir al proyecto as librerías de acceso a SSL.

No hay muchas modificaciones en el código, pero si queréis verlas, dejaré el código antiguo y el nuevo (compilado en Delphi 7) para que podáis compararlos.

<DESCARGAR SOURCES v2 HTTPS>

<DESCARGAR BINARIO v2 + DLL ssl>

<DESCARGAR DLL’s para acceder SSL>

NOTA: Para generar las imágenes en disco PNG he utilizado el componente “Portable Network Graphics Delphi” de Gustavo Huffenbacher Daud, que podéis encontrar y descargar de forma gratuita de Internet.


 

Un saludo.

[APP] IBPIndex v.1.7b; Información sobre Tracks (GPS)

sábado, 1 de enero de 2011 33 comentarios
Share Button

ACTUALIZACIÓN:  Debido a cambios en la política de Google Maps hay una nueva actualización del programa IBPIndex.  

IBPIndex es una aplicación que permite obtener información y visualizar sobre un mapa, rutas en formato GPX (GPS eXchange Format), GTM (GPS Trackmaker), KML (Google Earth), PLT (OziExplorer), TCX (Garmin Training Center), GDB (Mapsource), TRK (CompeGPS), TRL (Alan Map500 TrackLog), MPS (Garmin Mapsource), UPT (Magellan File -eXplorist-) y XOL (Swiss Map 25/50/100).

Está pensado (o enfocado) a la carga de archivos que provienen desde un dispositivo GPS.

TrackInfo

INFORMACIÓN:

  • Funciona en todas las versiones de Windows.
  • NEW Versión 1.7 (beta)  del 15/12/2011
  • La aplicación se puede usar y distribuir de forma totalmente gratuíta.

 

CARACTERÍSTICAS:

  • Visualización de los puntos de ruta sobre un gráfico; Información de puntos. Zoom, impresión, exportación…
  • Permite abrir y convertir tracks en los siguientes formatos:

GPS Trackmaker (*.GTM)
Google Earth (*.KML)
OziExplorer (*.PLT)
Garmin Training Center (*.TCX)
Mapsource (*.GDB)
CompeGPS (*.TRK)
GPS Exchange Format (*.GPX)
Alan Map500 TrackLog (*.TRL)
Garmin Mapsource (*.MPS)
Magellan File -eXplorist- (*.UPT)
Swiss Map 25/50/100 (*.XOL)

  • Exportación con interface a GPSBabel a otros formatos
  • Configuración de múltiples idiomas y fácil creación de nuevos (aplicación).
  • Gráficos de altura y velocidad de la ruta.
  • Información puntual para los puntos de la ruta.
  • Animación de rutas/recorridos gráficamente.
  • Visualización de las rutas sobre Google Maps. Exportación e impresión de mapas.
  • Visualización de Perfil de altura de los datos el track. Exportación como imagen.
  • Interface Ribbon.
  • Información del IBPIndex de la ruta (www.ibpindex.com); Impresión y exportación a PDF.
  • Actualizaciones automáticas desde Internet.
  • Visualización en Google Maps en 3D utilizando pluging de Google Earth.

 

IMAGENES:

Click sobre las imagenes para agrandar.

Interface Ribbon de la aplicación (principal) .

Interface Ribbon

Otras ventanas de la aplicación (principal de Datos, Gráfico, Google Maps, Perfil, IBPIndex,…)

Ventana principal de DatosVentana de gráficoGoogle MapsPantalla IBPIndexConversión de rutas

INSTALACIÓN:

La aplicación se distribuye en un fichero instalable (setup_IBPIndex.exe). Basta con lanzar la instalación desde Windows y seguir las instrucciones del programa.

NOTA: En Vindows Vista y Windows 7 es necesario ejecutar la instalación con privilegios de administrador.

Si tiene problemas para instalar el programa, puede consultar aquí.

TRADUCCIONES

Si deseas añadir y cooperar en el desarrollo de la aplicación con nuevos idiomas, puedes hacerlo con unos sencillos pasos:

  1. Crea un nuevo fichero de idioma basándote en algunos de los ficheros de idioma presentes en la aplicación (es.lng, ca.lng, en.lng,…).
  2. Con un editor de texto (NOTEPAD, por ejemplo) traduce las constantes manteniendo la misma estructura que tienen; Especial atención a los símbolos especiales (&  *|* ).
  3. Envíamelo a la dirección <german_ral[ARROBA]hotmail.com> con tus datos.
  4. Una vez revisada y comprobada, la añadiré al programa con tus datos como traductor.

 

DESCARGA:

La aplicación se puede descargar desde esta misma web, o desde la web de IBPIndex (sección Aplicaciones).

Descarga desde aquí.  

Descarga desde IBP Index.

 

APORTA…

Esta aplicación es gratuíta y está realizada para utilizarla a nivel personal y por puro ocio. Me gusta la programación y me gusta la actividad de BTT, así que el resultado ha sido este.

Espero que a otras personas les pueda ser útil y aceptaré/agradeceré propuestas, ideas, correcciones, sugerencias,… para mejorarla y ampliarla.

 

HISTORIAL

Versión 1.7b (15/12/2001)

* Corregidos varios errores.
* mejoras en la visualización de mapas (Google Maps).

Versión 1.4b (12/05/2011)

ERRORES CORREGIDOS
* Corregidos errores de multiidioma. Se utiliza un sistema nuevo más abierto que permite añadir y traducir a nuevos idiomas mçás fácilmente
* Corregidos problemas al cargar ficheros con caracteres extraños en el nombre.
* Corregido error al mostrar elevación de ruta.
* Corregido error en el comando de conversión.
* Corregidos bugs menosres.

MEJORAS AÑADIDAS:
* Mejoras en el multiidioma (Cambio a un sistema más abierto).
* Admite rutas el multiples formatos a la hora de cargar.
* Carga e importa rutas más rápido (optimizado)
* Índice de carga de ruta
* Ajuste de columnas.
* Añadida traducción al Inglés y catalán.

 

Versión 1.2 (20/04/2011)

ERRORES CORREGIDOS:
* Error en el cuadro de arrastrar ruta; No admite arrastre.
* Corregido error en algunos equipos, que se quejan de que no exiaste MIDAS.DLL
* Corrección a la hora de actualizar la aplicación. En algunos casos no se descargaba
correctamente el fichero.
* Errores varios en la consulta del IBPIndex.
* Errores en los datos de rutas.

MEJORAS AÑADIDAS:
* Añadidos gráficos de velocidad y altura
* Sincronización de los puntos de cada gráfico
* Animación de la ruta visualmente.
* Información extendida de los puntos de la ruta.
* Título completo para la aplicación (incluyendo versión)
* Añadida información al gráfico referente a los puntos (Hora, distancia, acumulados,…).
* Ampliados los formatos de conversión de rutas.

Versión 1.1  (01/04/2011)

Versión inicial.

 

Un saludo.

 

 

Visualizador de procesos activos; VProcess 1.1

viernes, 15 de octubre de 2010 3 comentarios
Share Button

Herramienta para visualizar los procesos/aplicaciones que hay ejecutándose en el ordenador. Permite visualizar a primera vista la información básica del proceso (icono, título, identificador, threads, descripción, prioridad, path de ejecución,…).
Utilizando el panel de «detalles» (F8) se puede conocer la inforamcon detallada de los procesos ene ejecución. Pulse F8 para visualizarlo y seleccione un el proceso de la lista.

VProcess está diseñado utilizando Borland Delphi 6 y la librería GLibWMI (página / SourceForge).

Se puede descargar el código fuente de la aplicación desde esta página o como parte de la Librería GLibWMI.

También es posible descargar sólo el ejecutable compilado (comprimido con UPX).

<descargar código fuente>

<descargar ejecutable>

Esta y otras aplicaciones estarán disponibles en la sección de aplicaciones de esta página. Allí podrás encontrar todas las descargas completas y futuuras actualizaciones de la aplicaciones.

Historial de versiones

(updated  15/10/2010)  versión 1.1

* Corrección de bugs menores
* Añadido multiidioma; Spanish, Inglés y Francés.
Utilizando GnuGetText.
* Añadir la opción de sustituir al Administrador de tareas por defecto de Windows.
* Cuadro inicial de mensaje.
* Añadir botones de acciones al menú.
* Opción de ejecutar nuevas aplicaciones.
* Opción de terminar un proceso que se está ejecutando….
* Exportación sin necesidad de instalar ningún componente (mxExports).
* Guardar opciones sin necesidad de instalar componentes (RxLib).
* Permite cerrar/Ejecutar nuevos procesos.

Código fuente y binarios subidos a DropBox.

Categories: Aplicación, Programación Tags:

Contenido web compartido en DropBox (2º intento)

martes, 21 de septiembre de 2010 6 comentarios
Share Button

Hola a todos.

Hace no muchos días comentaba en esta entrada, que ponía a disposición de todos los usuarios el contenido de esta web (descargable) en un lugar público (en este caso en DropBox). A mi me sirve como copia de seguridad y al resto le es más cómodo tener todo el contenido junto, a parte de tenerlo distribuído por las diferentes entradas del Blog.

Hasta aquí todo perfecto.

Los primeros problemas llegaron cuando, para acceder al contenido compartido había que registrarse de forma obligatoria. Personalmente sigo recomendando el servicio, pero encuentro «molesto» tener que registrarse para poder acceder a un contenido público. De todas formas lo achaqué a que era una contrapartida por ofrecer espacio gratuíto.

El problema es que posteriormente los usuarios me informaban de que una vez registrados, para poder acceder debía enviarles una invitación. ;-(
Esto ya me pareció «inusual», por no decir nada práctico e ilógico.

He estado revisando las opciones (que no son muchas) y no he encontrado forma de hacerlo; El poder publicar un LINK para que 20, 30 o 1000 personas tengan acceso a él, sin tener que enviarles una inviación a cada uno, hasta que en los foros de DropBox he encontrado la solución:  «Get Shareable link»

Teniendo la aplicación de DropBox instalada que permite sincronizar los archivos con lo que hay en los servidores web, basta con acceder a esta opción en el menú contextual.

La pregunta es: ¿Porqué no he visto esa opción antes cuando le he dado 200 vueltas a ese menú y a las opciones?

Muy sencillo.

Le versión estable que se descarga desde la web es la v.0.7.100 (link de decarga), que no dispone de esta característica (ya podía yo ir buscando…).

Desde la misma web, se puede descargar la versión beta v.0.8.107 (link de descarga para windows y el resto de links para otros sistemas) que sí dispone de esa característica.

Ahora sí, es posible acceder al contenido «público» compartido desde este link, sin necesidad de registro ni de invitaciones. De todas formas, si alguien desea darse de alta, podéis hacerlo utilizando esta invitación (con lo que aparte de daros de alta, a mi me asignan un poco más de espacio -igual que harán con vosotros si recomendáis a alguien-):

<http://www.dropbox.com/referrals/NTU3NjUzNzU5>

Un saludo.

P.D: Acceso al contenido compartido.

Categories: Aplicación, Offtopic Tags: ,

Sección de Aplicaciones

lunes, 2 de agosto de 2010 Sin comentarios
Share Button

En marcha la sección de aplicaciones.
Espero tener tiempo para ir subiendo/publicando algunas aplicaciones que tengo desperdigadas por mis discos duros.
La idea es completarlas, empaquetarlas y publicarlas por si son de utilidad o simplemente por si a alguien le es útil el código fuente.

Un saludo.

Categories: Aplicación, Offtopic Tags: