Tengo una cierta región geográfica definida por la parte inferior izquierda y superior derecha de coordenadas. ¿Cómo puedo dividir la región en las áreas de 20x20km. Me refiero a que en practial la forma de la tierra no es plana, es redondo. El cuadro delimitador es sólo una aproximación. Ni siquiera es rectangular en sentido real. Es sólo una suposición. Digamos que el bottomleft de coordenadas está dada por x1,y1 y la topright de coordenadas está dada por x2,y2, la longitud de x1 a x2 en y1 es diferente que el de la longitud entre x1 a x2 en y2. ¿Cómo puedo superar este problema
En realidad, tengo que crear un espacio meshgrid para esta región el uso de matlab de la función meshgrid. De modo que las redes de área 20x20km.
meshgrid(x1:deltaY:x2,y1:deltaX:y2)
Como se puede ver que sólo puede tener un deltaX y uno deltaY. Quiero elegir deltaX y deltaY tal que los incrementos de crear cuadrícula de tamaño 20x20km. Sin embargo, este deltaX y deltaY se supone que para variar, dependiendo de la ubicación. Alguna sugerencia?
Me refiero a que permite decir deltaX=del1. A continuación, la distancia entre los puntos (x1,y1) a (x1,y1+del1) es de 20 km. Pero cuando me mida la distancia entre los puntos (x2,y1) a (x2, y1_del1) la distancia es de < 20km. La función meshgrid de arriba, crea una malla. Pero las distancias no son consistentes. Alguna idea de cómo solucionar este problema?
Para encontrar el punto p(1,0)
deg = km2deg(20)
deg =
0.1799
>> reckon(25,-120,0.1799,-18)
ans =
25.1711 -120.0614
Función para calcular la distancia entre dos puntos
function [ distance ] = calculateDistance( latitude1,longitude1,latitude2,longitude2 )
radius = 6371;
dLat = degtorad(latitude2-latitude1);
dLon = degtorad(longitude2-longitude1);
a = sin(dLat/2) * sin(dLat/2) + cos(degtorad(latitude1)) * cos(degtorad(latitude2)) * sin(dLon/2) * sin(dLon/2);
c = 2 * atan2(sqrt(a), sqrt(1-a));
distance = radius * c;
end
Refiriéndose a whuber sugerencias
syms p(1,1).lat p(1,1).lon
solve ( calculateDistance(p(0,1).lat,p(0,1).lon,p(1,1).lat,p(1,1).lon), calculateDistance(p(1,0).lat,p(1,0).lon,p(1,1).lat,p(1,1).lon))