Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

निर्देशांक के साथ एक मार्कर को 100 मीटर कैसे स्थानांतरित करें

दो बिंदुओं के बीच के अंतर को मीटर में परिकलित करने के लिए Haversine का उपयोग करें; फिर व्यक्ति निर्देशांक के मान को आनुपातिक रूप से समायोजित करें।

$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;

अपने मूल्यों को खिलाना:

$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;

102059.8251083 मीटर, 102.06 किलोमीटर का परिणाम देता है

द्वारा समायोजित करने का अनुपात 100 / 102059.82251083 =0.0009798174985988102859004569070625

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

51.266972108109 का नया अक्षांश और 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. MySQL - दिनांक स्ट्रिंग को दिनांक प्रकार में बदलें?

  2. SQL त्रुटि:1064, SQLState:42000 नई इकाई बनाते समय

  3. बहु-स्तरीय श्रेणी के लिए डेटाबेस संरचना (सर्वश्रेष्ठ दृष्टिकोण)

  4. MySQLdb के साथ पायथन में .sql फ़ाइल निष्पादित करें

  5. MySQL:एक क्वेरी से जानकारी के साथ एक नई तालिका बनाना