Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

ST_Distance_Sphere di mysql tidak memberikan jarak yang akurat antara dua lokasi

ST_DISTANCE_SPHERE membutuhkan titik untuk dinyatakan sebagai POINT(longitude, latitude) , Anda telah membaliknya dalam kode Anda

set @lat1 = 38.898556;
set @lon1 = -77.037852;
set @lat2 = 38.897147;
set @lon2 = -77.043934;
SET @pt1 = point(@lon1, @lat1);
SET @pt2 = point(@lon2, @lat2);
SELECT ST_Distance_Sphere(@pt1, @pt2)/1000,
  lat_lng_distance(@lat1,@lon1,@lat2,@lon2);

+-------------------------------------+-------------------------------------------+
| ST_Distance_Sphere(@pt1, @pt2)/1000 | lat_lng_distance(@lat1,@lon1,@lat2,@lon2) |
+-------------------------------------+-------------------------------------------+
|                   0.549154584458455 |                        0.5496311783790588 |
+-------------------------------------+-------------------------------------------+

Ini memberikan hasil yang lebih mendekati nilai yang dikembalikan oleh fungsi Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemicu MySQL jika kondisi ada

  2. Mengapa MySQL menggunakan indeks yang salah?

  3. bagaimana cara mengambil data mysql di vb.net?

  4. Bagaimana cara menyimpan UUID sebagai biner (16) di java

  5. Mengapa null<>null=null di mysql