Tengo una base de datos de puntos de latitud/longitud enviados por el usuario y estoy tratando de agrupar puntos de 'cierre'. 'Cerrar' es relativo, pero por ahora parece ~ 500 pies.¿Cómo agrupar los puntos de latitud/longitud que están 'cercanos' entre sí?
Al principio me pareció que podía agrupar por filas que tienen la misma latitud/longitud para los primeros 3 lugares decimales (aproximadamente una caja de 300x300, entendiendo que cambia a medida que se aleja del ecuador).
Sin embargo, ese método parece ser bastante deficiente. 'Cercanía' no puede ser significativamente diferente de la distancia que representa cada lugar decimal. No tiene en cuenta que dos ubicaciones pueden tener diferentes dígitos en la tercera (o cualquier) posición decimal, pero aún estar dentro de la distancia que representa el lugar (33.1239
y 33.1240
).
También he reflexionado sobre la situación en la que el Punto A y el Punto C están ambos "cerca" del Punto B (pero no entre sí) - ¿deberían estar agrupados? Si es así, ¿qué sucede cuando el Punto D está "cerca" del punto C (y no hay otros puntos)? ¿Debería agruparse también? Ciertamente, debo determinar el comportamiento deseado, pero ¿cómo se implementará?
¿Alguien puede indicarme la dirección correcta de cómo se puede hacer esto y qué métodos/enfoques diferentes se pueden utilizar?
Me siento un poco como si me falta algo obvio.
Actualmente los datos son una base de datos MySQL, utilizada por una aplicación PHP; sin embargo, estoy abierto a otros métodos de almacenamiento si son una parte clave para lograr esto. aquí.
tal vez un poco de información aquí: http://en.wikipedia.org/wiki/Geodatabase –
no. nadie puede indicarle la dirección correcta a menos que usted explique cuál es su objetivo. ¿Por qué quieres agrupar los puntos? – Unreason
@Unreason: con un poco más de detalle, los puntos representan las ubicaciones marcadas por los usuarios, la suposición es que si varios usuarios han marcado la ubicación que están cerca unos de otros, solo debe contar como una ubicación.Sin embargo, el objetivo declarado de agrupar el punto lat/long que están dentro de ~ 500 pies uno del otro parece bastante específico, y ya ha generado respuestas informativas. –