私はこのコードを動作させました:
typedef model::point<double, 2, cs::spherical_equatorial<degree> > degree_point;
degree_point FlindersSE(-37.0, 144.0);
この:
quantity<plane_angle> Flinders = 0.375 * radians; //this works 0.375 radians
しかし、私は度分と秒を実行し、ラジアンに変換してから再び戻したいと思います。
ブーストシステムがどのように機能するかを理解するために1日を費やしました-例は地面に少し薄いので、誰かが簡単な例を示すことができるかどうか疑問に思っていました?
よろしくお願いします 8+)
編集
//quantity<degree_base_unit> FlindersSDeg2.value(-37.0);
//quantity< angle::arcminute_base_unit> FlindersSMin = 57.0;
//quantity< angle::arcsecond_base_unit> FlindersSSec = 3.72030;
宣言がどのように機能するかをよりよく理解する必要があると思います。:)
編集2:
どうもありがとうございました - おそらく私はブーストでそれを行う方法を探していましたが、その機能はありませんでした! ここでこの古いコードを見つけたからかもしれないと思いましたhttp://www.boost.org/doc/libs/1_47_0/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_1.cpp
void example_dms()
{
/*
Extension, other coordinate system:
// Construction with degree/minute/seconds
boost::geometry::dms<boost::geometry::east> d1(4, 53, 32.5);
// Explicit conversion to double.
std::cout << d1.as_value() << std::endl;
// Conversion to string, with optional strings
std::cout << d1.get_dms(" deg ", " min ", " sec") << std::endl;
// Combination with latitude/longitude and cardinal directions
{
using namespace boost::geometry;
point_ll<double, boost::geometry::cs::geographic<boost::geometry::degree> > canberra(
latitude<>(dms<south>(35, 18, 27)),
longitude<>(dms<east>(149, 7, 27.9)));
std::cout << canberra << std::endl;
}
*/
}