QString KSUtils::getDSSURL( const dms &ra, const dms &dec, float width, float height, const QString & type) { const QString URLprefix( "http://archive.stsci.edu/cgi-bin/dss_search?v=poss2ukstu_blue" ); QString URLsuffix = QString( "&e=J2000&f=%1&c=none&fov=NONE" ).arg(type); const double dss_default_size = Options::defaultDSSImageSize(); char decsgn = ( dec.Degrees() < 0.0 ) ? '-' : '+'; int dd = abs( dec.degree() ); int dm = abs( dec.arcmin() ); int ds = abs( dec.arcsec() ); // Infinite and NaN sizes are replaced by the default size if( !qIsFinite( height ) ) height = dss_default_size; if( !qIsFinite( width ) ) width = dss_default_size; // Negative / zero sizes are replaced by the default size if( height <= 0.0 ) height = dss_default_size; if( width <= 0.0 ) width = dss_default_size; // DSS accepts images that are no larger than 75 arcminutes if( height > 75.0 ) height = 75.0; if( width > 75.0 ) width = 75.0; QString RAString, DecString, SizeString; DecString = DecString.sprintf( "&d=%c%02d+%02d+%02d", decsgn, dd, dm, ds ); RAString = RAString.sprintf( "&r=%02d+%02d+%02d", ra.hour(), ra.minute(), ra.second() ); SizeString = SizeString.sprintf( "&h=%02.1f&w=%02.1f", height, width ); return ( URLprefix + RAString + DecString + SizeString + URLsuffix ); }
void dmsBox::showInDegrees (dms d) { double seconds = d.arcsec() + d.marcsec()/1000.; setDMS( QString().sprintf( "%02d %02d %05.2f", d.degree(), d.arcmin(), seconds ) ); }