Creo que todo esto tiene más de matemáticas que de JS. Lo primero que hay que hacer es darse cuenta de que como la Tierra es una esfera, la distancia entre dos coordenadas hay que calcularla con esta fórmula:
Código:
Distancia = 2πr * nº / 360º
Esta es la fórmula para calcular la longitud de un arco. Aquí tienes que sustituir n por la diferencia de las dos latitudes y longitudes. Después, usas la otra fórmula para comprobar si está a más o menos de 2km.
Ejemplo práctico: Yo me encuentro en (45,45), y el otro punto está en (45.1, 45.3).
La distancia en longitud es de 0.1º, y en la latitud es de 0.3º, así que calculamos la distancia real:
Código:
2πr * 0.1º / 360º = πr / 1800
2πr * 0.3º / 360º = πr / 600
Así que la distancia real entre los dos puntos es de:
Código:
sqrt((πr / 1800)^2 + (πr / 600)^2)
Y ya sólo queda comprobar que esa distancia sea menor que 2. Ahora falta transformar todo esto en JS, pero no sé si JS será capaz de trabajar con estas cantidades con tantos decimales adecuadamente.
Saludos (:
PD: r es el radio de la Tierra medido en km.