Esta es la situación:Comprobar si el usuario está cerca de punto de control de ruta con GPS
Tengo un GPS ruta predeterminada que el usuario se ejecutará. La ruta tiene algunos puntos de control y el usuario debe pasar cerca de todos ellos (considérelos como un punto de control de un juego de carreras, que evita que el usuario tome accesos directos). Necesito asegurarme de que el usuario pase por todos los puntos de control. quiero para determinar un área que será considerada dentro de un radio de un punto de control, pero no quiero que sea sólo una zona radial, que debería ser un área teniendo en cuenta la forma de la trayectoria. ¿No lo entendiste? Yo tampoco. Mire esta imagen mal dibujada para comprenderla mejor:
Las líneas negras representan la ruta predeterminada, la bola azul es el punto de control y el polígono azul es el área deseada. La línea verde es un usuario más preciso, y la línea roja es un usuario menos preciso (un tipo borracho conduciendo tal vez? Jaja). Ambas líneas deben estar dentro del polígono, pero un usuario que omita totalmente la ruta no debería.
ya vi en algún lugar aquí una función para comprobar es el usuario se encuentra dentro de un polígono como este, pero necesito saber cómo calcular el polígono.
¿Alguna sugerencia?
EDIT:
estoy considerando el uso de la función distanceTo sencilla() para simplemente dibujar un círculo imaginario y comprobar si el usuario está ahí. Eso es bueno porque es tanto fácil de implementar y entender, y malo porque para asegurarse de que el usuario más erronic pasa whithin el puesto de control que iba a necesitar un gran radio, por lo que el usuario correcto entrar en la zona de control antes de lo esperado.
Y para que ustedes entiendan mejor la situación, esto es para una aplicación que se supone debe usarse en tráfico (automóvil o autobús), y los puntos de control deben ser puntos de referencia o puntos que dividen su ruta, por ejemplo, en algún lugar donde el atasco de tráfico comienza o se detiene.
¿Por qué necesita un polígono en lugar de usar el círculo interno? – SERPRO