2017-12-10 2 views
0

내 현재 위치에서 나와 가까이있는 휴대 전화에서 위치 정보를 가져 와서 내 친구를 찾고 싶습니다. 예를 들어 아래 코드에는 var 도시가 있습니다. 3,4 명이 넘는 친구들을 넣어서 할 수 있습니까? 아니면이 작업을 수행하여 다른 변경 사항을 적용 할 수 있습니까? 가능한가?내 현재 위치에서 가장 가까운 친구 찾기

// Get User's Coordinate from their Browser 
window.onload = function() { 
    // HTML5/W3C Geolocation 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(UserLocation); 
    } 
    // Default to Washington, DC 
    else 
     NearestCity(38.8951, -77.0367); 
} 

// Callback function for asynchronous call to HTML5 geolocation 
function UserLocation(position) { 
    NearestCity(position.coords.latitude, position.coords.longitude); 
} 


// Convert Degress to Radians 
function Deg2Rad(deg) { 
    return deg * Math.PI/180; 
} 

function PythagorasEquirectangular(lat1, lon1, lat2, lon2) { 
    lat1 = Deg2Rad(lat1); 
    lat2 = Deg2Rad(lat2); 
    lon1 = Deg2Rad(lon1); 
    lon2 = Deg2Rad(lon2); 
    var R = 6371; // km 
    var x = (lon2 - lon1) * Math.cos((lat1 + lat2)/2); 
    var y = (lat2 - lat1); 
    var d = Math.sqrt(x * x + y * y) * R; 
    return d; 
} 

var lat = 20; // user's latitude 
var lon = 40; // user's longitude 

var cities = [ 
     ["city1", 10, 50, "blah"], 
     ["city2", 40, 60, "blah"], 
     ["city3", 25, 10, "blah"], 
      ["city4", 5, 80, "blah"] 
]; 

function NearestCity(latitude, longitude) { 
    var mindif = 99999; 
    var closest; 

    for (index = 0; index < cities.length; ++index) { 
     var dif = PythagorasEquirectangular(latitude, longitude, cities[index] 
     [1], cities[index][2]); 
     if (dif < mindif) { 
      closest = index; 
      mindif = dif; 
     } 
    } 

    // echo the nearest city 
    alert(cities[closest]); 
} 

답변

1

나는 중포 기지에서하고 지리적 기반으로 쿼리를 가지고 있으며, 쉬운 방법으로 당신이 원하는 것을 할 수있는 그 목적을 위해 GeoFire을 사용하는 것이 좋습니다

관련 문제