Calcular distancias en PHP
Función PHP que calcula la distancia entre dos puntos usando latitudes y longitudes. Devuelve los datos en millas, kilómetros y millas naúticas.
Vía / DZone
En PHP5 existe una funcionalidad muy interesante a la hora de crear una aplicación o un framework. Se trata del método __autoload que nos permite ejecutar código cuando se intenta instanciar a una clase que aún no ha sido definida aún.
Esto nos permitiría hacer un include del fichero de la clase cuando se vaya a ejecutar, así nos ahorramos muchos includes al principio de cada script.
function __autoload($class_name) {
require_once $class_name . '.php';
}
// El código anterior deberá ir en la clase y cuando vayamos a instanciarlo, como a continuación, se ejecutará
$obj = new MyClass1();
$obj2 = new MyClass2();
El código se puede mejorar para que coja el código de distintas partes o librerías.
Fonts on the web are essentially vector based graphics. That’s why you can display them at 12px or 120px and they remain crisp and relatively sharp-edged. Vector means that their shape is determined by points and mathematics to describe the shape, rather than actual pixel data. Because they are vector, it would make sense if we could do things that …
La verdad es que no tengo ni idea del éxito/uso de Google Buzz, dicen que es un fracaso, pero claro, a saber lo que es un fracaso comparado con otras redes sociales (no Twitter o Facebook, claro), por lo que no está mal saber que existe una librería y que te permite trabajar con Google Buzz.
// Include the library files
require_once "google-api-php-client/src/apiClient.php";
require_once "google-api-php-client/src/contrib/apiBuzzService.php";
// Create the apiClient and Buzz service classes:
$apiClient = new apiClient();
$buzz = new apiBuzzService($apiClient);
// Add the OAuth authentication flow to your app:
// If a oauth token was stored in the session, use that- and otherwise go through the oauth dance
session_start();
if (isset($_SESSION['auth_token'])) {
$apiClient->setAccessToken($_SESSION['auth_token']);
} else {
// In a real application this would be stored in a database, and not in the session!
$_SESSION['auth_token'] = $apiClient->authenticate();
}
// Make an API call
$activities = $buzz->listActivities('@consumption', '@me');
// And echo the returned activities
echo "Activities:\n" . print_r($activities, true) . "
";
Buena alternativa para validar variables usando expresiones regulares usando filtros:
$values= array(10.75, '10.75', -1234.5678, 'This is a string', array());
$filteredValues = filter_var($values, FILTER_VALIDATE_FLOAT, FILTER_REQUIRE_ARRAY);
if(filter_var($value, FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => "/^G(.+)/")))) {
// Lo que sea
}
$url = 'http://www.devshed.com';
if(filter_var($url, FILTER_VALIDATE_URL)) {
// Lo que sea
}
Comments are closed.
Si no me falla la vista (la verdad la vi por 5 segundos) creo que esa funcion esta basada en la formula de los cosenos esfericos y aunque funciona, el margen de error es bastante elevado (chillar al que hizo el planeta tan deforme 😛 )
En fin, la mas acertada que consegui es la formula de Vicenty que podeis conseguir aca en JS http://www.movable-type.co.uk/scripts/latlong-vincenty-direct.html (pasarla a php toma 5 minutos) y si quereis conocer mas sobre calculo de distancias os recomiendo este otro vinculo http://www.movable-type.co.uk/scripts/latlong.html
Muchas gracias a los dos. Me vendrá de perlas.