Valider f0a8ca2a rédigé par rastapopoulos@spip.org's avatar rastapopoulos@spip.org
Parcourir les fichiers

Nouvelle fonction plus ou moins générique utilisable en filtre,...

Nouvelle fonction plus ou moins générique utilisable en filtre, distance_en_metres() sur le même principe que taille_en_octets(). Le but étant de donner un nombre et de le formater différemment si c'est des kilomètres, mètres, etc. Par défaut on attend des kilomètres en entrée, mais on peut expliciter le format en deuxième argument. Pour l'instant la fonction est super basique et le formatage des nombres est français en dur (virgule pour les décimales, etc), il faudrait faire plus complexe…
parent 0eab387a
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+29 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -80,6 +80,35 @@ function distance($from, $to, $miles = false) {
	return false;
}

/**
 * Afficher proprement une distance
 * 
 * @param float $distance
 * 		Nombre indiquant une distance
 * @param string $format_entree
 * 		Format de distance donnée en entrée : par défaut en kilomètres, sinon en mètres avec "m"
 * @return string
 * 		Retourne une chaine composée d'un nombre arrondi et d'une unité de mesure de distance
 **/
function distance_en_metres($distance, $format_entree='km') {
	if ($distance) {
		// On passe toujours tout en kilomètres pour uniformiser
		if ($format_entree == 'm') {
			$distance = $distance / 1000;
		}
		
		// Si c'est supérieur à 1, on reste en kilomètres
		if ($distance > 1) {
			$distance = number_format($distance, 2, ',', '') . ' km';
		}
		elseif (($distance = $distance*1000) > 1) {
			$distance = number_format($distance, 2, ',', '') . ' m';
		}
	}
	
	return $distance;
}

/**
 * Compilation du critère {distancefrom}
 *
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<paquet
	prefix="gis"
	categorie="divers"
	version="4.37.0"
	version="4.38.0"
	schema="2.1.0"
	etat="stable"
	compatibilite="[3.0.0;3.1.*]"