2010-01-30 3 views
5

¿Hay alguna manera de determinar si una dirección particular se encuentra a lo largo de una ruta dentro de x millas? ¿Hay soporte para esto en la API de Google Maps?¿Hay alguna manera de determinar si una dirección particular se encuentra a lo largo de una ruta dentro de x millas?

Tengo una base de datos de direcciones y estoy tratando de averiguar qué ubicaciones se encuentran a lo largo de una ruta determinada según lo determinado por la API de Google Maps.

Respuesta

1

Puede establecer la opción getPolyline, en el parámetro opcional , en la solicitud GDirections load. Esto te dará los datos de la polilínea para la ruta.

Una vez que tenga estos datos, puede iterar sobre cada punto de la polilínea y determinar la distancia a cada uno de sus propios puntos de datos (puede usar el método GLatLng distanceFrom para calcular la distancia).

Una vez que tenga la distancia más corta a su ruta para cada uno de sus puntos de datos, puede y puede calcular, basándose en cierta tolerancia, si el punto se encuentra en la ruta.

Editar:

A pesar de que está bien para llamar al método GLatLng distanceFrom repetidamente (que es sólo un método de utilidad para obtener la distancia entre dos puntos), me di cuenta de mi respuesta simplifica el problema. Para obtener una distancia precisa de la ruta, deberá determinar la distancia desde la polilínea entre los dos puntos más cercanos (no solo la distancia desde cada punto).

+0

Creo que te refieres a distanceFrom rather than getDistance. getDistance es un método de GDirections, y no desea hacer una llamada de GDirections para cada vértice en la polilínea porque sería muy lento y comería rápidamente en su cuota de GDirections. –

+0

No. Estoy hablando de * GLatLng * * getDistance * que es un método de utilidad para verificar la distancia entre dos puntos geográficos. – RedBlueThing

+0

Vaya ... Me acabo de dar cuenta de la causa de la confusión. Quise decir el método * distanceFrom * en GLatLng. – RedBlueThing

1

Bill Chadwick tiene el código "Distancia de punto a polilínea o polígono" en la parte inferior de this page, que podría ser útil.

Cuestiones relacionadas