Pregunta

Estoy escribiendo una aplicación de mapeo que estoy escribiendo en python y necesito obtener el centroide lat / lon de N puntos. Digamos que tengo dos ubicaciones

a.lat = 101
a.lon = 230

b.lat = 146
b.lon = 200

Obtener el centro de dos puntos es bastante fácil usando una fórmula euclidiana. Me gustaría para poder hacerlo por más de dos puntos.

Básicamente, estoy buscando hacer algo como http://a.placebetween.us/ donde uno puede ingresar múltiples direcciones y encontrar un lugar que sea equidistante para todos.

¿Fue útil?

Solución

Eche un vistazo al documento pdf vinculado a continuación. Explica cómo aplicar el algoritmo de figura plana que Bill the Lizard menciona , pero en la superficie de una esfera.

miniatura del póster y algunos detalles http://img51.imageshack.us/img51/ 4093 / centroidspostersummary.jpg
Fuente: http://www.jennessent.com/arcgis/shapes_poster.htm < br> También hay un PDF de tamaño completo de 25 MB disponible para descargar.
El crédito va a mixdev para encontrar el enlace a la fuente original y, por supuesto, a Jenness Enterprises para que la información esté disponible. Nota: de ninguna manera estoy afiliado con el autor de este material.

Otros consejos

Agregando a la respuesta de Andrew Rollings.

También deberá asegurarse de que si tiene puntos a cada lado de la línea de longitud 0/360 que está midiendo en & "; dirección correcta &";

Is the center of (0,359) and (0, 1) at (0,0) or (0,180)?

Si está promediando ángulos y tiene que lidiar con ellos cruzando el 0/360, entonces es más seguro sumar el pecado y el cos de cada valor y luego Promedio = atan2 (suma de senos, suma de cosenos)
(tenga cuidado con el orden de los argumentos en su función atan2)

La matemática es bastante simple si los puntos forman una figura plana . Sin embargo, no hay garantía de que un conjunto de latitudes y longitudes sean tan simples, por lo que primero puede ser necesario encontrar el casco convexo de los puntos.

EDITAR: Como eJames , debe hacer correcciones para la superficie de una esfera. Mi culpa por asumir (sin pensar) que esto se entendió. +1 a él.

El siguiente PDF tiene un poco más de detalle que el póster de Jenness Enterprises. También maneja la conversión en ambas direcciones y para un esferoide (como la Tierra) en lugar de una esfera perfecta.

Conversión entre coordenadas de latitud, longitud y altura cartesianas y elipsoidales 3-D

Promedio separado de las latitudes y longitudes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top