This is related to the a thread that was posted earlier in this forum.

What are some recommended frameworks for manipulating spatial data in C++?

您是否知道几何库提供基于泛型的编译时保护,以防止UCS和GCS坐标混合?例如,我正在寻找可以让我编写如下代码的东西:

Point2D<GCS> p1( 1.0, 1.0 );
Point2D<UCS> p2( 1.0, 1.0 );
std::cout << (p1 - p2) << std::endl; // compile-time error: mixing types!


我不需要混合其他UCS的保护,只需混合GCS和UCS。混合局部坐标系和全局坐标系是完全可以避免的错误,可以通过适当的记账方式消除,并且可以使用C ++强大的类型检查和对泛型的支持来简化此错误。我宁愿使用现有的库,也不愿重新发明轮子。

最佳答案

您可以编写将UCS转换为GCS的函数。然后,当它们都在GCS中时,您可以执行std::cout<<(p1-p2)<<"\n;

这样,将不会由于混合类型而导致编译器错误。

10-02 01:10