根据经纬度计算地球上两点之间的距离js实现代码_javascript技巧
利用JS实现的根据经纬度计算地球上两点之间的距离
最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下。
计算地球表面两点间的距离大概有两种办法。
第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距离(The Great Circle Distance)。
公式如下:
使用JS来实现为:
var EARTH_RADIUS = 6378137.0; //单位M
var PI = Math.PI;
function getRad(d){
return d*PI/180.0;
}
/**
* caculate the great circle distance
* @param {Object} lat1
* @param {Object} lng1
* @param {Object} lat2
* @param {Object} lng2
*/
function getGreatCircleDistance(lat1,lng1,lat2,lng2){
var radLat1 = getRad(lat1);
var radLat2 = getRad(lat2);
var a = radLat1 - radLat2;
var b = getRad(lng1) - getRad(lng2);
var s = 2*Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
s = s*EARTH_RADIUS;
s = Math.round(s*10000)/10000.0;
return s;
}
这个公式在大多数情况下比较正确,只有在处理球面上的相对点的时候,会出现问题,有一个修正的公式,因为没有需要,就没有找出来,可以在wiki上查到。
当然,我们都知道,地球其实并不是一个真正的圆球体,而是椭球,所以有了下面的公式:
/**
* approx distance between two points on earth ellipsoid
* @param {Object} lat1
* @param {Object} lng1
* @param {Object} lat2
* @param {Object} lng2
*/
function getFlatternDistance(lat1,lng1,lat2,lng2){
var f = getRad((lat1 + lat2)/2);
var g = getRad((lat1 - lat2)/2);
var l = getRad((lng1 - lng2)/2);
var sg = Math.sin(g);
var sl = Math.sin(l);
var sf = Math.sin(f);
var s,c,w,r,d,h1,h2;
var a = EARTH_RADIUS;
var fl = 1/298.257;
sg = sg*sg;
sl = sl*sl;
sf = sf*sf;
s = sg*(1-sl) + (1-sf)*sl;
c = (1-sg)*(1-sl) + sf*sl;
w = Math.atan(Math.sqrt(s/c));
r = Math.sqrt(s*c)/w;
d = 2*w*a;
h1 = (3*r -1)/2/c;
h2 = (3*r +1)/2/s;
return d*(1 + fl*(h1*sf*(1-sg) - h2*(1-sf)*sg));
}
这个公式计算出的结果要比第一个好一些,当然,最后结果的经度实际上还取决于传入的坐标的精度。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Memandangkan satah tiga dimensi dan oleh itu tiga koordinat, tugasnya adalah untuk mencari jarak antara titik yang diberikan dan memaparkan hasilnya. Pada satah tiga dimensi, terdapat tiga paksi koordinat, koordinat paksi-x ialah (x1, y1, z1), koordinat paksi-y ialah (x2, y2, z2), dan koordinat bagi paksi-z ialah (x3, y3, z). Terdapat formula langsung untuk mengira jarak antara mereka seperti berikut $$\sqrt{\lgroupx2-x1\rgroup^{2}+\lgroupy2-y1\rgroup^{2}+\lgroupz2-z1\rgroup^{2 } }$$Berikut ialah ilustrasi yang menunjukkan tiga paksi koordinat yang berbeza dan koordinatnya Kaedah yang digunakan di bawah adalah seperti berikut −Koordinat input (x1,.

Artikel ini dicetak semula daripada akaun awam WeChat "Hidup dalam Era Maklumat" Penulis hidup dalam era maklumat. Untuk mencetak semula artikel ini, sila hubungi akaun awam Living in the Information Age. Dalam pembelajaran mesin, konsep asas ialah cara menilai perbezaan antara dua sampel, supaya persamaan dan maklumat kategori antara kedua-dua sampel dapat dinilai. Ukuran untuk menilai persamaan ini ialah jarak antara dua sampel dalam ruang ciri. Terdapat banyak kaedah pengukuran berdasarkan ciri data yang berbeza. Secara umumnya, untuk dua sampel data x, y, takrifkan fungsi d(x, y) Jika ia ditakrifkan sebagai jarak antara dua sampel, maka d(x, y) perlu memenuhi sifat asas berikut : Bukan-). negatif: d(x, y)>=0 Identiti: d(x, y)=0 ⇔ x=y pasangan

Pada persidangan pembangun tahunannya, Apple memperkenalkan sistem pengendalian generasi seterusnya untuk menjanakan suite perantinya. Seperti biasa, iOS 17 berada di tengah-tengah semua perubahan besar, dengan ciri seperti mel suara langsung, transkripsi mesej, pelekat langsung, mod siap sedia, aktiviti langsung skrin penuh, widget interaktif dan banyak lagi. Salah satu ciri yang menonjol di antara penambahan baharu ini ialah Jarak Skrin. Ini ialah ciri mengutamakan kesihatan yang memfokuskan pada mencegah ketegangan mata dan rabun pada skrin iPhone anda. Dalam artikel ini, kami akan menerangkan apakah jarak skrin dan cara mendayakannya dalam iOS17. Apakah jarak skrin pada iOS17? Sebagai sebahagian daripada ciri kesihatan baharu yang diperkenalkan dalam iOS 17, Apple menawarkan ciri jarak skrin untuk membantu pengguna menjangka

Apakah ciri jarak skrin dalam kemas kini iOS17? Apple menyediakan fungsi jarak skrin pada iPhone untuk membantu pengguna mengelakkan keletihan mata dan risiko rabun. Ciri ini (tersedia pada iOS 17 atau lebih baru) akan menggunakan kamera TrueDepth iPhone (kamera yang sama yang turut membantu FaceID) untuk mengukur jarak antara muka dan telefon. Jika Jarak Skrin mengesan bahawa anda memegang iPhone anda lebih dekat daripada 12 inci atau 30 sentimeter untuk tempoh masa yang panjang, ia akan menggesa anda mengekalkan jarak dari skrin iPhone. Apabila peranti anda mengesan bahawa ia berada kurang daripada 12 inci dari muka anda, anda akan melihat mesej "iPhone terlalu dekat" pada skrin dan menasihatkan anda supaya menjaga jarak untuk melindungi penglihatan anda. Hanya jika anda meletakkan peranti lebih jauh

Apabila kita menggunakan platform ini, kita semua tahu bahawa setiap lokasi mempunyai koordinat Saya percaya bahawa pelajar yang telah mempelajari geografi akan mengetahui apakah koordinat longitud dan latitud Fungsi di atas boleh dikatakan sangat berkuasa lokasi anda dalam masa nyata, tetapi ia juga boleh memberitahu anda tentang longitud dan latitud semasa, maksudnya, kita semua boleh menyemak koordinat longitud dan latitud mana-mana lokasi pada peta lokasi khusus yang sepadan dengan lebih tepat, tetapi majoriti pengguna yang tidak tahu masih melihatnya, jadi untuk memberi anda pemahaman yang lebih baik mengenainya, mari sertai editor sekarang Lihatlah, saya percaya anda tidak akan terlepas itu, datang dan lihat.

Anda boleh menyemak latitud dan longitud pada Peta Google, tetapi bagaimana anda menyemak latitud dan longitud. Pengguna mengklik pada maklumat lokasi, dan kemudian klik untuk melihat lebih banyak, untuk melihat maklumat longitud dan latitud tertentu. Pengenalan kepada kaedah menyemak longitud dan latitud ini boleh memberitahu anda kandungan tertentu Berikut ialah kaedah terperinci, jadi sila lihat. Cara menyemak latitud dan longitud pada Peta Google A: Klik pada lokasi dan pilih untuk melihat maklumat terperinci. Pengenalan terperinci: Versi mudah alih: 1. Mula-mula, pergi ke peta kemajuan dan pilih lokasi yang anda mahu lihat. 2. Klik butang Lihat Semua di dalam. 3. Anda boleh melihat latitud dan longitud terperinci. Versi PC: 1. Mula-mula masukkan tapak web Peta Google. https://www.google.cn2 Klik kanan untuk melihat lokasi yang dikehendaki dan klik What's here.

Trend yang menarik telah muncul untuk teknologi UWB dalam pasaran aplikasi industri: jarak penghantaran stesen pangkalan semakin meningkat Adegan biasa ialah terowong atau lombong Ciri-ciri adegan ini ialah ruangnya adalah linear dan tidak banyak halangan di tengah stesen pangkalan UWB juga diletakkan dalam garisan lurus. Semakin jauh jarak kerja stesen pangkalan, semakin sedikit bilangan stesen pangkalan yang diperlukan untuk projek itu, dan semakin rendah kos projek Di bawah persaingan pasaran, jarak kerja stesen pangkalan UWB di pasaran semakin jauh jarak kerja stesen pangkalan telah meningkat daripada puluhan ribu pada hari-hari awal, berkembang kepada 100m, 200m, 500m, 1000m, 2000m atau lebih jauh lagi. Artikel ini tidak akan membincangkan logik perniagaan di sebalik ini terlalu banyak. Mengapa stesen pangkalan UWB berfungsi lebih jauh dan lebih jauh? Terdapat dua komponen utama, satu adalah antena, dan satu lagi

Bagaimana untuk menggunakan kod Java untuk memaparkan latitud dan longitud lokasi semasa pada Peta Baidu? Peta Baidu ialah aplikasi peta yang sangat popular yang sering digunakan semasa membangunkan aplikasi berkaitan geolokasi. Artikel ini akan memperkenalkan cara menggunakan kod Java untuk memaparkan longitud dan latitud lokasi semasa pada Peta Baidu. Pertama, kita perlu menyediakan akaun pembangun Baidu dan membuat aplikasi untuk mendapatkan kunci API. Selepas mendaftar akaun dan log masuk di tapak web pembangun Baidu, kami boleh membuat aplikasi dalam konsol dan mendapatkan kunci API untuk mengakses
