2011-08-19 52 views
14

Actualmente estoy tratando de desarrollar un algoritmo para calcular qué ubicaciones conocidas están más cerca de la ubicación conocida actual.Algoritmo para calcular la ubicación más cercana en función de la longitud y la latitud

Tengo una lista de decir 100 ubicaciones conocidas (lo que significa que tengo longitudes y latitudes). De estos 100 escojo una ubicación, y después de elegir esa ubicación quiero una lista para mostrar, por ejemplo, las 8 ubicaciones más cercanas conocidas.

¿Cómo sería una solución posible para esto?

Editar

yo no busco la forma de calcular las distancias. Estoy buscando cómo calcular qué ubicaciones conocidas se encuentran más cerca de la ubicación actual.

Ejemplo:

Diga la lista contiene 100 localidades de las salas de cine. Estoy en el teatro 5, y quiero averiguar qué hay otras salas de cine en la lista. No la distancia, sino su ubicación.

+0

Por ubicación ¿te refieres a lat/lon? – ScruffyDuck

Respuesta

16

Hay un Distance Matrix API. Esta API le permite calcular distancias entre algunas posiciones determinadas.

Usted puede hacer esto también por su cuenta con un haversine formula

+0

Gracias por los enlaces, podría ser útil más adelante, pero en este momento no estoy buscando cómo calcular distancias, estoy buscando cómo encontrar qué ubicación están más cerca de la actual. Por ejemplo, estoy en el cine "Mi teatro" y me interesa saber qué hay cerca de otros teatros. No las distancias a ellos, sino sus ubicaciones. – diceler

+0

Pero sigue siendo una solución para ti;) Tienes que obtener tu punto "Mi teatro" y todas las otras 100 ubicaciones. Luego calcule las 100 distancias y elija la más pequeña. Para encontrar el punto más cercano (la distancia más pequeña), debe conocer todas las distancias. – hsz

+1

En algún momento tendrás que decidir si la _distancia_ de la ubicación actual a x está más allá de tu umbral ... – PLane

1

primera idea: si los "100 lugares conocidos" siguen siendo prácticamente los mismos, se podría dividir los lugares conocidos a grupos más pequeños y mantener la estructura. Entonces solo juega con el grupo más cercano.

More mathematical approaches here

+0

gracias por la sugerencia. Haré grupos pequeños y usaré una ubicación por grupo para calcular la ubicación más cercana inicial. – netsmertia

1

tratar de implementar el algoritmo de árbol k-d con la búsqueda del vecino más cercano.

Cuestiones relacionadas