Heim Web-Frontend js-Tutorial 根据经纬度计算地球上两点之间的距离js实现代码_javascript技巧

根据经纬度计算地球上两点之间的距离js实现代码_javascript技巧

May 16, 2016 pm 05:40 PM
经纬度 距离

利用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));
}

这个公式计算出的结果要比第一个好一些,当然,最后结果的经度实际上还取决于传入的坐标的精度。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

C-Programm zur Berechnung des Abstands zwischen drei Punkten im 3D-Raum C-Programm zur Berechnung des Abstands zwischen drei Punkten im 3D-Raum Aug 29, 2023 pm 12:41 PM

Bei einer dreidimensionalen Ebene und damit drei Koordinaten besteht die Aufgabe darin, den Abstand zwischen den angegebenen Punkten zu ermitteln und das Ergebnis anzuzeigen. Auf der dreidimensionalen Ebene gibt es drei Koordinatenachsen, die Koordinaten der x-Achse sind (x1, y1, z1), die Koordinaten der y-Achse sind (x2, y2, z2) und die Koordinaten der Die Z-Achse ist (x3, y3, z). Es gibt eine direkte Formel zur Berechnung des Abstands zwischen ihnen wie folgt: $$\sqrt{\lgroupx2-x1\rgroup^{2}+\lgroupy2-y1\rgroup^{2}+\lgroupz2-z1\rgroup^{2 } }$$Das Folgende ist eine Abbildung, die drei verschiedene Koordinatenachsen und ihre Koordinaten zeigt. Die unten verwendete Methode ist wie folgt: − Eingabekoordinaten (x1,

Numerischer Abstand basierend auf maschinellem Lernen: der Abstand zwischen Punkten im Raum Numerischer Abstand basierend auf maschinellem Lernen: der Abstand zwischen Punkten im Raum Apr 11, 2023 pm 11:40 PM

Dieser Artikel ist ein Nachdruck aus dem öffentlichen WeChat-Konto „Leben im Informationszeitalter“. Der Autor lebt im Informationszeitalter. Um diesen Artikel erneut zu drucken, wenden Sie sich bitte an das öffentliche Konto Living in the Information Age. Beim maschinellen Lernen besteht ein Grundkonzept darin, den Unterschied zwischen zwei Stichproben zu beurteilen, sodass die Ähnlichkeit und Kategorieinformationen zwischen den beiden Stichproben ausgewertet werden können. Das Maß zur Beurteilung dieser Ähnlichkeit ist der Abstand zwischen zwei Stichproben im Merkmalsraum. Es gibt viele Messmethoden, die auf unterschiedlichen Dateneigenschaften basieren. Im Allgemeinen definieren Sie für zwei Datenproben x, y eine Funktion d (x, y). Wenn sie als Abstand zwischen den beiden Proben definiert ist, muss d (x, y) die folgenden Grundeigenschaften erfüllen: Nicht- Negativität: d(x, y)>=0 Identität: d(x, y)=0 ⇔ x=y Paar

So aktivieren und verwenden Sie den Bildschirmabstand unter iOS 17 So aktivieren und verwenden Sie den Bildschirmabstand unter iOS 17 Jun 29, 2023 pm 01:37 PM

Auf seiner jährlichen Entwicklerkonferenz stellte Apple die nächste Generation von Betriebssystemen für seine Gerätepalette vor. Wie üblich steht iOS 17 im Mittelpunkt aller wichtigen Änderungen, mit Funktionen wie Live-Voicemail, Nachrichtentranskription, Live-Stickern, Standby-Modus, Live-Aktivitäten im Vollbildmodus, interaktiven Widgets und mehr. Eines der herausragenden Features dieser neuen Ergänzungen ist Screen Distance. Dies ist eine gesundheitsorientierte Funktion, die darauf abzielt, Augenbelastung und Kurzsichtigkeit auf Ihrem iPhone-Bildschirm zu verhindern. In diesem Artikel erklären wir, was der Bildschirmabstand ist und wie man ihn in iOS17 aktiviert. Wie groß ist der Bildschirmabstand unter iOS17? Als Teil der neuen Gesundheitsfunktionen, die in iOS 17 eingeführt wurden, bietet Apple eine Bildschirmabstandsfunktion an, um Benutzern die Vorhersage zu erleichtern

iOS 17: So aktivieren und verwenden Sie den Bildschirmabstand auf dem iPhone iOS 17: So aktivieren und verwenden Sie den Bildschirmabstand auf dem iPhone Sep 21, 2023 pm 02:25 PM

Was ist die Bildschirmabstandsfunktion im iOS17-Update? Apple bietet auf dem iPhone eine Bildschirmabstandsfunktion an, um Benutzern dabei zu helfen, Ermüdungserscheinungen der Augen und dem Risiko einer Kurzsichtigkeit vorzubeugen. Die Funktion (verfügbar ab iOS 17) nutzt die TrueDepth-Kamera des iPhones (die gleiche Kamera, die auch FaceID unterstützt), um den Abstand zwischen dem Gesicht und dem Telefon zu messen. Wenn Screen Distance erkennt, dass Sie Ihr iPhone über einen längeren Zeitraum näher als 12 Zoll oder 30 Zentimeter halten, werden Sie aufgefordert, Abstand zum iPhone-Bildschirm zu halten. Wenn Ihr Gerät erkennt, dass es weniger als 12 Zoll von Ihrem Gesicht entfernt ist, wird auf dem Bildschirm die Meldung „iPhone zu nah“ angezeigt und Sie werden aufgefordert, Abstand zu halten, um Ihre Sicht zu schützen. Nur wenn Sie das Gerät weiter platzieren

So zeigen Sie Längen- und Breitengrade auf Baidu Maps an. So zeigen Sie Längen- und Breitengrade an So zeigen Sie Längen- und Breitengrade auf Baidu Maps an. So zeigen Sie Längen- und Breitengrade an Mar 12, 2024 pm 12:10 PM

Wenn wir diese Plattform verwenden, wissen wir alle, dass jeder Ort Koordinaten hat. Ich glaube, dass Studenten, die Geographie studiert haben, die Längen- und Breitengradkoordinaten kennen Es kann Ihnen aber auch die aktuellen Längen- und Breitengrade anzeigen. Das heißt, wir können alle die Längen- und Breitengradkoordinaten jedes beliebigen Ortes auf der Karte überprüfen Die entsprechenden spezifischen Standorte sind genauer, aber die Mehrheit der Benutzer, die es nicht wissen, sehen es sich immer noch an. Um Ihnen ein besseres Verständnis zu vermitteln, treten wir jetzt dem Herausgeber bei. Schauen Sie mal rein, ich glaube, Sie werden es nicht verpassen Kommen Sie vorbei und schauen Sie sich das an.

So überprüfen Sie den Breiten- und Längengrad auf Google Maps So überprüfen Sie den Breiten- und Längengrad auf Google Maps Mar 24, 2024 pm 05:31 PM

Sie können den Breiten- und Längengrad auf Google Maps überprüfen, aber wie überprüfen Sie den Breiten- und Längengrad? Benutzer klicken auf die Informationen zu einem Standort und dann auf „Mehr anzeigen“, um die spezifischen Längen- und Breitengradinformationen anzuzeigen. Diese Einführung in die Methode zur Überprüfung von Längen- und Breitengraden kann Ihnen den spezifischen Inhalt erklären. Im Folgenden finden Sie die detaillierte Methode. Schauen Sie sich also um. So überprüfen Sie den Breiten- und Längengrad auf Google Maps A: Klicken Sie auf den Standort und wählen Sie aus, um detaillierte Informationen anzuzeigen. Ausführliche Einführung: Mobile Version: 1. Gehen Sie zunächst zur Fortschrittskarte und wählen Sie einen Ort aus, den Sie anzeigen möchten. 2. Klicken Sie im Inneren auf die Schaltfläche „Alle anzeigen“. 3. Sie können den detaillierten Breiten- und Längengrad sehen. PC-Version: 1. Rufen Sie zunächst die Google Maps-Website auf. https://www.google.cn2. Klicken Sie mit der rechten Maustaste, um den gewünschten Standort anzuzeigen, und klicken Sie auf Was ist hier?

Der Grund, warum der Arbeitsabstand von UWB-Basisstationen weiter zunimmt – IOTE Internet of Things Exhibition Der Grund, warum der Arbeitsabstand von UWB-Basisstationen weiter zunimmt – IOTE Internet of Things Exhibition Nov 27, 2023 pm 01:21 PM

Für die UWB-Technologie hat sich auf dem Industrieanwendungsmarkt ein interessanter Trend herauskristallisiert: Die Übertragungsentfernung von Basisstationen nimmt allmählich zu. Eine typische Szene ist ein Tunnel oder eine Mine. Das Merkmal dieser Szene ist, dass der Raum linear ist und es nicht viele gibt Hindernisse in der Mitte sind ebenfalls in geraden Linien angeordnet. Je größer der Arbeitsabstand der Basisstation, desto geringer ist die Anzahl der für das Projekt erforderlichen Basisstationen und desto geringer sind die Projektkosten. Im Marktwettbewerb wird der Arbeitsabstand der UWB-Basisstationen auf dem Markt immer größer Der Arbeitsabstand der Basisstation hat sich von Zehntausenden in der Anfangszeit auf 100 m, 200 m, 500 m, 1000 m, 2000 m oder sogar noch weiter erhöht. In diesem Artikel wird nicht zu viel auf die Geschäftslogik dahinter eingegangen. Warum funktionieren UWB-Basisstationen immer weiter entfernt? Es gibt zwei Schlüsselkomponenten: die Antenne und die andere

Wie verwende ich Java-Code, um den Breiten- und Längengrad des aktuellen Standorts auf der Baidu-Karte anzuzeigen? Wie verwende ich Java-Code, um den Breiten- und Längengrad des aktuellen Standorts auf der Baidu-Karte anzuzeigen? Aug 06, 2023 pm 08:48 PM

Wie verwende ich Java-Code, um den Breiten- und Längengrad des aktuellen Standorts auf der Baidu-Karte anzuzeigen? Baidu Maps ist eine sehr beliebte Kartenanwendung, die häufig bei der Entwicklung von Geolokalisierungsanwendungen verwendet wird. In diesem Artikel wird erläutert, wie Sie mithilfe von Java-Code den Längen- und Breitengrad des aktuellen Standorts auf der Baidu-Karte anzeigen. Zuerst müssen wir ein Baidu-Entwicklerkonto vorbereiten und eine Anwendung erstellen, um den API-Schlüssel zu erhalten. Nachdem wir ein Konto registriert und uns auf der Baidu-Entwickler-Website angemeldet haben, können wir eine Anwendung in der Konsole erstellen und einen API-Schlüssel für den Zugriff erhalten

See all articles