فهرست منبع

v.distance: fix geodesic distance

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@61861 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Metz 10 سال پیش
والد
کامیت
65e7bf86d3
1فایلهای تغییر یافته به همراه18 افزوده شده و 0 حذف شده
  1. 18 0
      vector/v.distance/main.c

+ 18 - 0
vector/v.distance/main.c

@@ -363,6 +363,24 @@ int main(int argc, char *argv[])
 
 	dx = fbox.E - fbox.W;
 	dy = fbox.N - fbox.S;
+
+	if (geodesic) {
+	    double d;
+	    
+	    G_begin_distance_calculations();
+	    dx = G_distance(fbox.W, fbox.S, fbox.E, fbox.S);
+	    d = G_distance(fbox.W, fbox.N, fbox.E, fbox.N);
+	    
+	    if (dx < d)
+		dx = d;
+
+	    dy = G_distance(fbox.W, fbox.S, fbox.W, fbox.N);
+	    d = G_distance(fbox.E, fbox.S, fbox.E, fbox.N);
+	    
+	    if (dy < d)
+		dy = d;
+	}
+
 	if (Vect_is_3d(&From))
 	    dz = fbox.T - fbox.B;
 	else