7
votes

Trouvez la distance entre deux points dans MySQL. (en utilisant le type de données de point)

Supposons que j'ai une table de 2 colonnes comme ceci: xxx

comme vous pouvez le voir, c'est très simple. UTM est un POINT Type de données. Je l'insère comme ceci: xxx

alors, je crée un index spatial. xxx

D'accord, tout va bien. Maintenant, je veux Select * où la distance <99999. Mais cela ne fonctionne pas! xxx

d'ailleurs, j'ai essayé d'insérer dans sans le point fromwkb ... et ça n'a pas fonctionné ... c'est pourquoi quelqu'un suggéré que Poindromwkb pour moi.


0 commentaires

4 Réponses :


3
votes

résolu. C'est ce que j'ai fait: xxx


1 commentaires

Est-ce que cela calculille la distance selon les coordonnées géographiques ou les coordonnées planes.



1
votes

Vous pouvez aussi le faire de cette façon. Je ne sais pas si c'est plus rapide ou pas. XXX


0 commentaires

0
votes

Aussi loin que je sache, vous devez essayer de cette manière - xxx

plus dans Cette réponse .


0 commentaires

0
votes

Si vous envisagez des points comme des valeurs de longitude et de latitude sur Terre, vous pouvez utiliser st_distance_sphere code> fonction pour calculer la distance entre 2 points.

mysql> SET @p1 = ST_GeomFromText('POINT(3.13 52.5)');
Query OK, 0 rows affected (0.00 sec)

mysql> SET @p2 = ST_GeomFromText('POINT(100.4 27.8)');
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> SELECT  ST_Distance_Sphere(@p1, @p2) AS distance;
+-------------------+
| distance          |
+-------------------+
| 8053869.706740822 |
+-------------------+
1 row in set (0.05 sec)


0 commentaires