Tengo un conjunto de puntos en una ciudad, cada uno con un radio de distancia máximo de 0,5 - 1,5 millas. A partir de este conjunto de puntos, me gustaría crear un pequeño número de "puntos de encuentro", es decir, ubicaciones que estén en el centro de un conjunto de puntos sin violar la restricción de <= distancia máxima raidus). Aquellos puntos alejados de los demás tendrán un punto de encuentro de 1.
Mi primer intento consistió en amortiguar cada punto y encontrar la intersección con el mayor número de solapamientos, pero resultó muy costoso desde el punto de vista computacional porque comparé cada nueva intersección con todas las demás intersecciones cercanas para determinar los puntos alcanzables dentro del área.
Mi segundo intento fue llenar cada búfer con posibles puntos de encuentro cada 100 metros y ejecutar un cálculo de la distancia en cada uno para determinar qué puntos podrían alcanzar, pero de nuevo, computacionalmente caro y propenso a perder casos de borde.
Ahora estoy pensando en crear un centroide de todos los puntos donde al menos 1 punto está dentro de radius(p1)+radius(p2)
de todos los demás puntos, que funcionaría tal cual, si todos tuvieran el mismo radio. Como los radios varían, he pensado que podría ajustar el centroide acercándolo a la media de los puntos que no alcanza hasta que encaje o no.
¿Estoy complicando demasiado esto? Parece que debería haber una solución más elegante, pero no se me ocurre. Cualquier indicación en la dirección correcta sería muy bienvenida.