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

Cara memindahkan penanda 100 meter dengan koordinat

Gunakan Haversine untuk menghitung perbedaan antara dua titik dalam meter; lalu sesuaikan nilai koordinat orang secara proporsional.

$radius = 6378100; // radius of earth in meters
$latDist = $lat - $lat2;
$lngDist = $lng - $lng2;
$latDistRad = deg2rad($latDist);
$lngDistRad = deg2rad($lngDist);
$sinLatD = sin($latDistRad);
$sinLngD = sin($lngDistRad);
$cosLat1 = cos(deg2rad($lat));
$cosLat2 = cos(deg2rad($lat2));
$a = ($sinLatD/2)*($sinLatD/2) + $cosLat1*$cosLat2*($sinLngD/2)*($sinLngD/2);
if($a<0) $a = -1*$a;
$c = 2*atan2(sqrt($a), sqrt(1-$a));
$distance = $radius*$c;

Memberi makan nilai-nilai Anda:

$lat = 51.26667;        //  Just South of Aardenburg in Belgium
$lng = 3.45417;
$lat2 = 51.575001;      //  To the East of Breda in Holland
$lng2 = 4.83889;

memberikan hasil 102059.82251083 meter, 102,06 kilometer

Rasio yang harus disesuaikan adalah 100 / 102059.82251083 =0,0009798174985988102859004569070625

$newLat = $lat + (($lat2 - $lat) * $ratio);
$newLng = $lng + (($lng2 - $lng) * $ratio);

Memberikan garis lintang baru 51.266972108109 dan garis bujur 3.4555267728867



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tanggal default MySQL () + 14 hari, untuk kolom?

  2. Tabel data agregat

  3. MYSQL bergabung dengan pembaruan langkah-langkah internal

  4. Batasan kunci asing MySQL menghilang

  5. Bagaimana cara mengoptimalkan kueri sederhana Mysql ini?