Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/07/2011, 14h31   #1
Invité de passage
 
Inscription : juillet 2011
Messages : 14
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 14
Points : 2
Points : 2
Par défaut quelle type de colone pour des coordonees?

SVP quel type de collone est le mieux adapte a des coordonnees latitude et longitude (float , spatial mes lequel ???))
77marins est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2011, 14h36   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Si tu enregistres tes coordonnées comme ca :
latitude = 47° 13' 6.14'' N
longitude = 1° 33' 13.04'' W
-> des champs VARCHAR suffisent.

Par contre, ce n'est pas pratique pour comparer ou calculer des distances ....
Le mieux est de passer en coordonnées décimales.

Petit code vu sur le web : calcul de distances (pas testé)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2011, 14h44   #3
Invité de passage
 
Inscription : juillet 2011
Messages : 14
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 14
Points : 2
Points : 2
Par défaut merci beaucoup a tous

merci ++++ pour les coup de mains a tous

77marins
77marins est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2011, 14h48   #4
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
J'avais fait il y a quelques temps des fonctions de conversion :
coordonnées décimales <--> degrés (Degres° Minute' Seconde"direction) <--> radians
Ca peut servir ....
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 
<?php
// **************************************************************
// *                           LIEUX                            *
// *                 COORDONNEES GEOGRAPHIQUES                  *
// **************************************************************
// COORDONNEES - LONGITUDE/LATITUDE : Degres -> Decimales
function lieu_coord_DegreToDecimal($Degre,$Minute,$Seconde,$Direction) {
	// latitude : 	$Direction = 1 (N) ou -1 (S)
	// longitude : 	$Direction = 1 (E) ou -1 (W)
	// -------------
	require_once($_SERVER['DOCUMENT_ROOT'].'/_connexion/_connexion.php');
	include($_SERVER['DOCUMENT_ROOT'].'/fonctions/config_generale.php');
	// -------------
	$coord_Decimales		= $Degre + ($Minute/60) + ($Seconde/3600);
	if($Direction=='S' || $Direction=='W') {
		$coord_Decimales 	= $coord_Decimales*(-1);
	}
	// -------------
	return $coord_Decimales;
}
// COORDONNEES - LONGITUDE/LATITUDE : Decimales -> Degres
function lieu_coord_DecimalToDegre($coord_Decimale) {
	$coord_Decimale 			= str_replace(',','.',$coord_Decimale); // (remplace virgule par point)
  if(is_numeric($coord_Decimale))
  {
	// Degre :		$coord_Degres[0]
	// Minute :		$coord_Degres[1]
	// Seconde		$coord_Degres[2]
	// Direction : 	$coord_Degres[3] 	(1 ou -1)
	// -------------
	require_once($_SERVER['DOCUMENT_ROOT'].'/_connexion/_connexion.php');
	include($_SERVER['DOCUMENT_ROOT'].'/fonctions/config_generale.php');
	// -------------
	// Direction
	if($coord_Decimale<0) {	
		$coord_Degres[3] = -1;
		$coord_DecimaleTemp 	= $coord_Decimale * (-1);
	} else {
		$coord_Degres[3] = 1;
		$coord_DecimaleTemp 	= $coord_Decimale;
	}
	// -------------
	// Degres
	$coord_Degres[0]	= floor($coord_DecimaleTemp);
	// -------------
	// Minutes
	$coord_DecimaleTemp	= 60.0 * ($coord_DecimaleTemp - $coord_Degres[0]);
	$coord_Degres[1]	= floor($coord_DecimaleTemp);
	// -------------
	// Secondes
	$coord_DecimaleTemp	= 60.0 * ($coord_DecimaleTemp - $coord_Degres[1]);
	$coord_Degres[2]	= floor($coord_DecimaleTemp);	
	// -------------
	return $coord_Degres;	// (array)
  }
}
// COORDONNEES - LONGITUDE/LATITUDE : Decimales -> Degres° Minute' Seconde" Direction
function lieu_coord_DecimalToDMSD($coord_Decimale, $coord_type) {
	// $coord_type = 'lon' (longitude) ou 'lat' (latitude)
	$coord_Decimale 			= str_replace(',','.',$coord_Decimale); // (remplace virgule par point)
  if(is_numeric($coord_Decimale))
  {
	require_once($_SERVER['DOCUMENT_ROOT'].'/_connexion/_connexion.php');
	include($_SERVER['DOCUMENT_ROOT'].'/fonctions/config_generale.php');
	// -------------
	$coord_Degres 		= lieu_coord_DecimalToDegre($coord_Decimale);
	$coord_Deg 			= $coord_Degres[0];
	$coord_Min 			= $coord_Degres[1];
	$coord_Sec 			= $coord_Degres[2];
	$coord_Dir 			= $coord_Degres[3];
	$coord_DMSD 		= $coord_Deg.'° '.$coord_Min.'\' '.$coord_Sec.'" ';
	if($coord_type == 'lat') {
		if($coord_Dir==1) {	$coord_DMSD .= 'N'; }
		else {				$coord_DMSD .= 'S'; }
	} elseif($coord_type == 'lon') {
		if($coord_Dir==1) {	$coord_DMSD .= 'E'; }
		else {				$coord_DMSD .= 'W'; }
	}
	// -------------
	return $coord_DMSD;
  }
}
// COORDONNEES - LONGITUDE/LATITUDE : Decimales -> Radians
function lieu_coord_DecimalToRadian($coord_Decimale) {
	$coord_Decimale 			= str_replace(',','.',$coord_Decimale); // (remplace virgule par point)
  if(is_numeric($coord_Decimale))
  {
	// -------------
	require_once($_SERVER['DOCUMENT_ROOT'].'/_connexion/_connexion.php');
	include($_SERVER['DOCUMENT_ROOT'].'/fonctions/config_generale.php');
	// -------------
	$coord_Radians 		= $coord_Decimale * pi() / 180;
	// -------------
	return $coord_Radians;
  }
}
// **************************************************************
?>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h26.


 
 
 
 
Partenaires

Hébergement Web