2011-12-27 9 views
5

Quiero comparar dos rutas para verificar si son iguales o no en mi aplicación de iPhone.Cómo comparar dos rutas usando apis de dirección de google o alguna otra aplicación para iPhone

Hay una persona X que quiere ir al punto A al punto B y otra persona quiere ir al punto A1 al punto B1.

Puedo obtener una ruta entre A a B usando esta dirección API de google.

http://maps.googleapis.com/maps/api/directions/xml?origin=Point a A address&destination=Point B address&sensor=false

misma manera que puedo conseguir ruta de A1 a B1.

pero la latitud y la longitud que recibo en xmls no coinciden (incluso un solo punto no coincide). Así que aquí está mi pregunta, ¿cómo puedo unir dos rutas que quiero saber es esta misma ruta o no?

enter image description here

Respuesta

1

Si el A1B1 ruta óptima es en realidad un subconjunto de la ruta AB yo esperaría que la start_location y end_locations para los pasos iguales para compartir las longitudes y latitudes similares, pero esto no es un requisito de la direcciones API. La mejor ruta de A a B podría pasar por A1 y B1, pero eso no significa que la mejor ruta de A1 a B1 compartirá exactamente los mismos pasos.

Lo que creo que quiere hacer es mirar los puntos de polilínea devueltos para los segmentos de ruta y ver si pasarían por A1 y B1 en el orden correcto. Puede expandir las cadenas de polilíneas codificadas en una lista de latitud y longitudes usando el algoritmo this.

+0

buena idea..do conoce alguna algo más sencillo para comparar ploylines .. porque los valores largos del lat que no coincida directamente cuando les decodificar .. alguna idea? – Saurabh

+0

Definitivamente buscaría una tolerancia, en lugar de una coincidencia exacta ==, quizás haga un simple (lat1-lat2) + (long1-long2) <= umbral, donde el umbral es un pequeño número que elige significar "lo suficientemente cerca" " – bamnet

Cuestiones relacionadas