IBPIndexCalc v.1.0
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.
Embarcadero MVP.
Analista y Programador de Sistemas Informáticos.
Estudios de Informática (Ingeniería Técnica Superior) en la UPC (Universidad Politécnica de Barcelona).
Llevo utilizando Delphi desde su versión 3. Especialista en diseño de componentes, Bases de Datos, Frameworks de Persistencia, Integración Continua, Desarrollo móvil,…