Si planea hacerlo localmente, la distancia euclidiana es realmente lo mejor que puede hacer.
Pero la geografía rara vez es tan simple. Dos puntos cercanos en el mapa pueden estar separados por un valle o un río, mientras que las distancias aparentemente muy lejanas pueden estar mucho mejor conectadas. El tiempo necesario para viajar entre dos puntos es más importante que la distancia absoluta de vuelo de las aves entre ellos. Este tiempo no se puede encontrar localmente en la mayoría de las computadoras.
Use una API de mapa como el Servicio de matriz de distancia provisto por Google para encontrar la distancia y el tiempo de viaje entre dos puntos en el mapa. Debe haber API competidoras que pueda buscar.
- Cómo resolver un problema después de unos días si no pude encontrar la más mínima idea de cómo resolver ese problema
- Dado un número N y un flujo continuo de enteros de entrada, ¿podría encontrar dos números en el flujo cuya suma fuera el primer número N?
- ¿Cuál es el algoritmo detrás de la creación de una nueva fuente que solo muestra publicaciones de tus seguidores?
- ¿Cuáles son algunos patrones de diseño de C ++ para aplicaciones en tiempo real como el comercio algorítmico?
- Entonces, ¿es una estructura de datos un algoritmo que describe cómo organizar las cosas?
Si usa la API, algorítmicamente su problema es casi trivial: elegir el número más pequeño de una lista. Sin embargo, hacer llamadas a una API de Internet es extremadamente costoso (en cuanto al tiempo). Por lo tanto, use la distancia euclidiana para filtrar las coordenadas que están a una distancia inaceptable y realice llamadas a la API solo para los puntos restantes (debe ser inferior a 25 para DMS).
Si tiene muy pocos amigos dentro de la red, le sugiero que haga una llamada para todos ellos simultáneamente (en una llamada) porque sospecho que el retraso de la respuesta se ve más afectado por las condiciones de la red que por el número de cálculos (ping sobre rendimiento). Podría estar equivocado. Intente experimentar con esto usted mismo y encuentre el número óptimo de puntos para solicitar.