Algoritmo eficiente para calcular áreas en el mapa geográfico con la mayor densidad de puntos

Digamos que tengo un mapa geográfico, donde los puntos están representados por latitud \ longitud. Tengo varios puntos en este mapa, y los puntos se pueden agregar \ eliminar \ mover en cualquier momento.

o que necesito es obtener los "puntos más calientes", las áreas que incluyen la mayor cantidad de puntos divididos por área, o en otras palabras, las áreas con la mayor densidad de puntos.

Necesito una estructura de datos eficiente y también un algoritmo que vuelva a calcular los puntos más calientes en cualquier cambio. La complejidad computacional y la complejidad de la memoria deben ser mínimas, porque el número de puntos podría ser muy alto.

Deseo conocer y mantener una lista de los lugares más populares en orden descendente: primero el área más concurrida y luego las áreas menos concurridas. Está bien tener una lista de tamaño limitado, por ejemplo, los 100 lugares más populares.

Por supuesto, para evitar el 100% de densidad en un punto aislado, hay un área mínima (definida como una constante).

La definición de "área" aquí es cualquier área perceptible en el mapa que contiene puntos. Podría ser todo el mapa, pero el algoritmo no debería verlo como un punto caliente, por supuesto =)

Gracias por delante! Si necesita alguna aclaración, dígalo ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta