¿Cuál es el algoritmo de seguimiento de la ubicación más cercana a algunos amigos que se encuentran en una región de cuadrícula?

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.

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.

Use Only GPS, debe tener la misma aplicación instalada para todos sus amigos … Para que U pueda rastrear

More Interesting

¿Puedes ser bueno en la programación pero malo en los algoritmos?

Cómo seleccionar aleatoriamente elementos únicos de una lista desplegable

¿Es posible determinar el valor máximo de puntos que se puede otorgar para una sola palabra Scrabble?

¿Cuál es el algoritmo que utilizan los ferrocarriles indios para la confirmación de un boleto de espera? ¿Cuál es la mejor manera de confirmar un boleto cuando hay una gran lista de espera?

¿Cuál es tu recurso favorito para aprender sobre programación competitiva?

¿Cuáles son algunos ejemplos de colas de prioridad en Java?

Cómo contar inversiones divididas con el algoritmo de clasificación de fusión

Dada una lista de enlaces con punteros derechos, cada elemento de la lista tiene un enlace descendente que contiene otra lista de enlaces con punteros descendentes, de modo que cada lista derecha y abajo están ordenadas. ¿Cuál es la forma más rápida de aplanar la lista de enlaces de forma ordenada?

¿Los programadores diseñan algoritmos o simplemente los toman de Internet?

¿Cuáles son algunos algoritmos conocidos para encontrar una coincidencia perfecta en un gráfico bipartito?

Cómo reducir la programación dinámica a programación lineal

Lingüística computacional: ¿Cuál es la mejor manera de encontrar coincidencias aproximadas de cadenas (duplicados difusos) entre un conjunto de N cadenas?

Cómo usar un algoritmo para resolver problemas de la vida real

¿Qué 'palabras' debo saber para resolver problemas de programación o problemas matemáticos relacionados?

¿Qué algoritmo es fácil de aprender pero aún tiene una gran importancia?