Calcular la distancia lineal (en kms) entra dos puntos geograficos directamente en MariaDB:
Formula de cálculo de distancia entre 2 puntos geográficos:
distancia = acos(sin(radians(lat1)) * sin(radians(lat2)) +
cos(radians(lat1)) * cos(radians(lat2)) *
cos(radians(lng1) - radians(lng2))) * 6378;
Crear funcion en MariaDB (o MySQL):
CREATE FUNCTION distancia (lat1 float,lng1 float, lat2 float, lng2 float) RETURNS float
BEGIN
set @dist = (acos(sin(radians(lat1)) * sin(radians(lat2)) +
cos(radians(lat1)) * cos(radians(lat2)) *
cos(radians(lng1) - radians(lng2))) * 6378);
RETURN @dist;
END
Llamar a esta función:
select distancia(-35.4307073,-71.6517769,-33.4517812,-70.6784224) as distancia
Resultado: 237.71774291992188
Saludos.
Palabras Nerd
jueves, 21 de septiembre de 2017
jueves, 7 de julio de 2016
Calcular Nivel de Voltaje de batería de automóvil con Arduino
Calcular Nivel de Voltaje de batería de automóvil con Arduino
Calcula el nivel de voltage con Arduino.float leer_voltaje(int pin, float unidad, int decimales)
{
lectura = analogRead( pin );
voltaje = (( 5 * float ( lectura ) ) / 1024 );
return float(voltaje) * 3 * unidad, decimales );
}
Tomado en parte desde https://geekytheory.com/voltimetro-con-arduino/
Calcular Nivel de Combustible de automovil con Arduino
Calcular el nivel de combustible con Arduino.
La función lee un valor desde la entrada análoga directo desde el sensor del automóvil, el cual trabaja entre 0 y 5v, donde 0v es estanque vacío y 5 es estanque lleno.
La primera función lee la entrada y calcula los litros con un estanque de 40 litros, la segunda devuelve el porcentaje de llenado del estanque.
La primera función lee la entrada y calcula los litros con un estanque de 40 litros, la segunda devuelve el porcentaje de llenado del estanque.
1:
// Devuelve la cantidad de litros de un estanque de 40 litros
float leer_litros( int pin ){
return map( analogRead( pin ), 0, 1023, 0, 40 );
}
2:// Devuelve el prcentage de llenado de un estanque (independiente de la capacidad)float leer_porcentaje( int puerto ){
return map( analogRead( puerto ), 0, 1023, 0, 100 ); }
Etiquetas:
arduino
,
automovil
,
c++
,
combustible
,
electronica
,
nivel de combustible
martes, 8 de septiembre de 2015
Comparar dos versiones de archivo como string C#
Función para comparar dos cadenas que representan una versión de un archivo separada por puntos.
/// <summary>
/// Muestra la version mayor entre dos
/// </summary>
/// <param name="version1">Version 1 como string "1.0.0.1", "1.0.1" o "1.0"</param>
/// <param name="version2">Version 2 como string "1.0.0.1", "1.0.1" o "1.0"</param>
public static void compruebaVersion( string version1, string version2){
string[] vers1 = version1.Split('.');
string[] vers2 = version2.Split('.');
string txt = "version 1 igual a version 2";
for( int x = 0; x < vers1.Length ; x++ ){
int __1__ = Int16.Parse( vers1[x] );
int __2__ = Int16.Parse( vers2[x] );
if( __1__ > __2__ ){
txt = "version 1 mayor que version 2";
break;
}else if( __1__ < __2__ ){
txt = "version 2 mayor que version 1";
break;
}
}
MessageBox.Show(txt);
}
/// <summary>
/// Muestra la version mayor entre dos
/// </summary>
/// <param name="version1">Version 1 como string "1.0.0.1", "1.0.1" o "1.0"</param>
/// <param name="version2">Version 2 como string "1.0.0.1", "1.0.1" o "1.0"</param>
public static void compruebaVersion( string version1, string version2){
string[] vers1 = version1.Split('.');
string[] vers2 = version2.Split('.');
string txt = "version 1 igual a version 2";
for( int x = 0; x < vers1.Length ; x++ ){
int __1__ = Int16.Parse( vers1[x] );
int __2__ = Int16.Parse( vers2[x] );
if( __1__ > __2__ ){
txt = "version 1 mayor que version 2";
break;
}else if( __1__ < __2__ ){
txt = "version 2 mayor que version 1";
break;
}
}
MessageBox.Show(txt);
}
martes, 28 de octubre de 2014
Modificar Plantilla Word desde VB.NET (Clase)
Modificar un archivo word es relativamente fácil, pero la documentación es poca, acá presento una clase que maneja un archivo y sus marcadores o "bookmarks".
la sintaxis para usar la clase es la siguiente:
'declarar la plantilla con su ruta de archivo
Dim ficha As New PlantillaWord("ficha_mantencion.docx")
'cambiar un valor de la plantilla
ficha.marcador("nombre", "juanito perez")
y aqui esta la clase:
Imports Microsoft.Office.Interop
Public Class PlantillaExcel
Dim ruta$
Dim excel As New Excel.Application()
Dim doc As Excel.Document
Dim documentoAbierto As Boolean = False
Public Sub New(documento$)
ruta = Environment.CurrentDirectory & "\" & documento
Try
excel.Visible = True
doc = excel.Documents.Add(documento)
documentoAbierto = True
Catch ex As Exception
MsgBox("error: " & ex.Message)
End Try
End Sub
Public Sub marcador(nombre$, valor$)
Try
If documentoAbierto Then
doc.Bookmarks.Item(nombre).Range.Text = valor
End If
Catch ex As Exception
MsgBox("error: " & ex.Message)
End Try
End Sub
End Class
Etiquetas:
plantilla word
,
tip.net
,
vb.net
,
word desde .net
,
word vb.net
Ubicación:
Talca, Talca, Maule, Chile
Suscribirse a:
Comentarios
(
Atom
)