Ich habe Breiten- und Längengrad und möchte einen anderen Breitengrad in 50 Meilen Entfernung finden. Wie geht das? Irgendeine Formel oder benutzerdefinierte Funktion, um das in PHP zu bekommen?Breiten- und Längengrad im Umkreis von 50 Meilen mit Bezug auf bestimmte Breiten- und Längengrade
Antwort
In PHP könnten Sie es tun, indem Sie die Datensätze abrufen und die folgende Formel verwenden. Aber ich möchte, dass Sie Abfrage verwenden, um dieses Problem zu lösen. Es ist effizienter.
function getNearestUsers($givenLat,$givenLng)
{
$res = [];
$recs = getAllTheRecordsFromDb();
foreach($recs as $r)
{
$distance = sqrt(POW((69.1 * ($r['lat'] - $givenLat)),2) + POW((69.1 * ($givenLng - $r['lng']) * cos($r['lat']/57.3)),2));
if($distance<=50) //50 miles
{
//some code
}
}
}
Angenommen, Sie haben eine Benutzertabelle mit userId, Längen- und Breitengrad. Im Folgenden finden Sie eine SQL-Abfrage, um Benutzer im Radius von 50 Meilen von der angegebenen Breite und Länge zu erhalten.
SELECT userId, latitude, longitude, SQRT(
POW(69.1 * (latitude - [givenLat]), 2) +
POW(69.1 * ([givenLng] - longitude) * COS(latitude/57.3), 2)) AS distance
FROM TableName HAVING distance < 50 ORDER BY distance;
Sie könnten mehr Antwort erhalten aus Bezugnahme den unten stehenden Link: latitude/longitude find nearest latitude/longitude - complex sql or complex calculation
Diese Abfragemethode ist die Basis auf der Google Map Store Locator api.
Bitte lesen Sie diese Seite:
Lassen Sie sagen, Sie haben eine Variable von lat und lang $ lat; $ lng;
Nehmen wir an, dass diese Variable ihre Koordinaten hat.
In Ihrer Anfrage tun:
SELECT id, lat, lng (3959 * acos (cos (Radiant ($ lat)) * cos (Radiant (lat)) * cos (Radiant (lng) - Radiant ($ lng)) + sin (Radiant ($ lat)) * sin (Radiant (lat)))) AS-Abstand FROM-Marker HAVING-Abstand < = 50 ORDER BY Abstand;
Das Ergebnis gibt die ID-, Lat- und lng-Koordinaten zurück, die kleiner oder gleich 50 Meilen sind.
P.S Die 3959 ist die Einheit, die die Meilen zurückgibt.
- 1. Breiten- und Längengrad von MKPolyline
- 2. Biased Breiten- und Längengrad
- 3. Breiten- und Längengrad basierend auf Postleitzahl
- 4. Finde den nächsten Breiten- und Längengrad
- 5. Breiten- und Längengrad aus XY ermitteln
- 6. Breiten-/Längengrad
- 7. Bildschirmkoordinaten für Breiten- und Längengrad
- 8. Breiten- und Längengrad von Adresse in Android
- 9. Breiten- und Längengrad gemäß Angabe in Merkblatt
- 10. Quelle event merkwürdig Breiten- und Längengrad
- 11. Beispiel Breiten- und Längengrad Koordinaten für Datenbank
- 12. Breiten- und Längengrad Sonderzeichen in Erlang/Mnesia
- 13. android Breiten- und Längengrad gibt 0.
- 14. JSON Breiten- und Längengrad in Android-Karte
- 15. Breiten- und Längengrad eines Ortes finden
- 16. ziehbare Marker gmaps.js Breiten- und Längengrad
- 17. Breiten- und Längengrad wird nicht angezeigt
- 18. Breiten- und Längengrad in ECEF Koordinatensystem konvertieren
- 19. Konvertieren einer Adresse in Breiten- und Längengrad
- 20. Finden Sie den nächsten Breiten- und Längengrad
- 21. Wie bekomme ich Breiten- und Längengrad?
- 22. R twitter Breiten- und Längengrad anzeigen NA
- 23. Berechnen von MAX und MIN Breiten- und Längengrad mit Abstand von der Position - Ziel C
- 24. Breiten-/Längengrad für Städte suchen
- 25. Breiten- und Längengrad von der Adresse mit Mapbox erhalten
- 26. Verwirrung in Bezug auf das Erhalten von Breiten- und Längengrad von Aktivität zu Fragment
- 27. Abrufen von Breiten- und Längengrad für Gebiete außerhalb der USA
- 28. Cordova Geolocation gibt NAN für Breiten- und Längengrade zurück
- 29. Wie bekomme ich Breiten- und Längengrad mit Python
- 30. Wie analysiere ich Breiten- und Längengrade für Google Maps?
in einem Wort, nein. PHP hat keine eingebauten Funktionen für diese Art von Dingen. – RamRaider