Mart 14

JS ve SQL ile iki nokta arasındaki mesafeyi ölçme

Günümüzde bir çok mobil uygulama ve web sitesi tablet, akıllı telefon ve gps desteği olan masaüstü yada dizüstü bilgisayarların lokasyon bilgilerini alabilmekte. uygulamalarda HTML5 Geolocation kütüphanesi kullanılmakta.

Uygulamalarda GPS koordinatlarını almak için


<!DOCTYPE html>
<html><body>
<p>Kordinatlar için tıklayın.</p>
<button onclick="lokasyonuBul()">Burayı tıkla</button>
<p id="lokasyonBilgi"></p>
<script>
var x = document.getElementById("lokasyonBilgi");
function lokasyonuBul() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else { 
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude;
}
</script>
</body></html>

SQL ile iki nokta arası kuş uçuşu mesafeyi hesaplamak için:


CREATE FUNCTION MesafeKacMetre(
@Latitude1 float,
@Longitude1 float,
@Latitude2 float,
@Longitude2 float
)
RETURNS float
AS 
BEGIN
-- CONSTANTS
DECLARE @EarthRadiusInMeter float;
--SET @EarthRadiusInMiles = 3963.1
SET @EarthRadiusInMeter = 3963.1 * 1609.344
DECLARE @PI  float;
SET @PI = PI();
-- RADIANS conversion
DECLARE @lat1Radians float;
DECLARE @long1Radians float;
DECLARE @lat2Radians float;
DECLARE @long2Radians float;
SET @lat1Radians = @Latitude1 * @PI / 180;
SET @long1Radians = @Longitude1 * @PI / 180;
SET @lat2Radians = @Latitude2 * @PI / 180;
SET @long2Radians = @Longitude2 * @PI / 180;
RETURN Acos(
Cos(@lat1Radians) * Cos(@long1Radians) * Cos(@lat2Radians) * Cos(@long2Radians) +
Cos(@lat1Radians) * Sin(@long1Radians) * Cos(@lat2Radians) * Sin(@long2Radians) +
Sin(@lat1Radians) * Sin(@lat2Radians)
) * @EarthRadiusInMeter;
END
 
select dbo.MesafeKacMetre( 29.0904, 41.0944, 29.0778, 41.0970 )


Copyright 2021. All rights reserved.

Posted 14.03.2017 by baris in category "Uygulama