Red de conocimiento informático - Material del sitio web - Determinar si un punto está en una carretera mediante la coincidencia de mapas

Determinar si un punto está en una carretera mediante la coincidencia de mapas

Obtenga las coordenadas GPS en tiempo real, luego encuentre el rango según las coordenadas plegadas y determine qué tan lejos está el punto del punto plegado.

Parece que no hay nada más que hacer, para ordenar primero se debe calcular la distancia O(N) una por una, la complejidad de la clasificación es al menos O(NlogN), la complejidad del tiempo total es O (NlogN).

Obtenido de: /xsmxxl/article/details/78434185?spm=1001.2014.3001.5502.

/qq_25800311/article/details/82917726.

Antecedentes: Por ejemplo, Didi ofrecerá a los pasajeros diferentes tratamientos y precios de viaje según las diferentes áreas donde se encuentren. Si la ciudad está más congestionada, el precio será mayor. El acceso al alcance del servicio solo está limitado a un rango determinado. Principio: Encuentre los puntos de intersección de los rayos rectos horizontales emitidos desde el punto a la derecha y a cada lado del polígono. Cuando el número de puntos de intersección es impar, está dentro. Pero debemos prestar atención a varios casos especiales: 1. El punto está en una arista o en un vértice 2. El punto está en la línea de extensión de una arista 3. El rayo horizontal que parte del punto corta al polígono en el vértice; .

Código fuente: Clase de punto: clase contenedora para vértices de polígonos, como coordenadas (166.3,18.4). Clase de línea: envuelve el polígono correspondiente a cada borde de la clase, como {(166.3,18.4), (166.9,19)}. Clase MapUtil: clase de procesamiento de datos públicos de mapas.