1234567891011121314151617181920212223242526272829303132333435 |
- #include <grass/gis.h>
- double distance(double east, double west)
- {
- double incr;
- double meters;
- double e1, e2;
- /* calculate the distance from east edge to west edge at north==0.0
- * for lat-lon this will be along equator. For other databases the
- * north value will make no difference
- *
- * Note, must do lat-lon in 3 pieces, otherwise distance "line" may
- * go the wrong way around the globe
- */
- G_begin_distance_calculations();
- if (east < west) {
- double temp;
- temp = east;
- east = west;
- west = temp;
- }
- incr = (east - west) / 3.0;
- e1 = west + incr;
- e2 = e1 + incr;
- meters = G_distance(west, 0.0, e1, 0.0) +
- G_distance(e1, 0.0, e2, 0.0) + G_distance(e2, 0.0, east, 0.0);
- return meters;
- }
|