- if ( utm_tmp.zone == dem->utm_zone &&
- (ce->elev = vik_dem_get_east_north(dem, utm_tmp.easting, utm_tmp.northing)) != VIK_DEM_INVALID_ELEVATION )
- return TRUE;
+ lat = utm_tmp.northing;
+ lon = utm_tmp.easting;
+ } else
+ return FALSE;
+
+ switch (ce->method) {
+ case VIK_DEM_INTERPOL_NONE:
+ ce->elev = vik_dem_get_east_north(dem, lon, lat);
+ break;
+ case VIK_DEM_INTERPOL_SIMPLE:
+ ce->elev = vik_dem_get_simple_interpol(dem, lon, lat);
+ break;
+ case VIK_DEM_INTERPOL_BEST:
+ ce->elev = vik_dem_get_shepard_interpol(dem, lon, lat);
+ break;