* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* $Id$
**************************************************************************/
set_bucket(dlon, dlat);
}
+SGBucket::SGBucket(const SGGeod& geod) {
+ set_bucket(geod);
+}
// create an impossible bucket if false
SGBucket::SGBucket(const bool is_good) {
}
-// default destructor
-SGBucket::~SGBucket() {
-}
-
-
// Set the bucket params for the specified lat and lon
void SGBucket::set_bucket( double *lonlat ) {
set_bucket( lonlat[0], lonlat[1] );
} else if ( span <= 1.0 ) {
x = (int)((dlon - lon) / span);
} else {
- if ( (dlon >= 0) || (fabs(diff) < SG_EPSILON) ) {
+ if ( dlon >= 0 ) {
lon = (int)( (int)(lon / span) * span);
} else {
// cout << " lon = " << lon
}
+void SGBucket::set_bucket(const SGGeod& geod)
+{
+ set_bucket(geod.getLongitudeDeg(), geod.getLatitudeDeg());
+}
+
// Build the path name for this bucket
string SGBucket::gen_base_path() const {
// long int index;
double clat_rad = clat * SGD_DEGREES_TO_RADIANS;
double cos_lat = cos( clat_rad );
double local_radius = cos_lat * SG_EQUATORIAL_RADIUS_M;
- double local_perimeter = 2.0 * local_radius * SGD_PI;
+ double local_perimeter = local_radius * SGD_2PI;
double degree_width = local_perimeter / 360.0;
return sg_bucket_span( get_center_lat() ) * degree_width;
// return height of the tile in meters
double SGBucket::get_height_m() const {
- double perimeter = 2.0 * SG_EQUATORIAL_RADIUS_M * SGD_PI;
+ double perimeter = SG_EQUATORIAL_RADIUS_M * SGD_2PI;
double degree_height = perimeter / 360.0;
return SG_BUCKET_SPAN * degree_height;