提问人:selpak 提问时间:11/10/2023 最后编辑:selpak 更新时间:11/10/2023 访问量:14
osgEarth::CircleNode 半径和 SRS 关系
osgEarth::CircleNode Radius and SRS Relation
问:
我想在地图中显示一个 CircleNode。但是当我实际测量它时,我看到的半径是不对的。
osg::ref_ptr<CircleNode> circle = new CircleNode();
circle->setPosition(center); // center has the same srs as the map
circle->setRadius(Distance(2000, Units::METERS));
...
当我创建一条线时,它显示了正确的距离
auto centerPoint = m_Center.transform(m_Center.getSRS()->getGeographicSRS());
double outLon;
double outLat;
GeoMath::destination(osgEarth::deg2rad(centerPoint.y()),
osgEarth::deg2rad(centerPoint.x()), osgEarth::deg2rad(angle),
radius.as(Units::METERS), outLat, outLon); // move 2km
centerPoint.x() = osgEarth::rad2deg(outLon);
centerPoint.y() = osgEarth::rad2deg(outLat);
const auto endPoint = wgsCenterPoint.transform(m_Center.getSRS());
...
在下图中,红色圆圈的半径为2公里。
地图剖面是
+proj=webmerc +a=6378137 +b=6378137 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +单位=m +nadgrids=@null +towgs84=0,0,0,0,0,0,0 +no_defs
地图源为 http://[abc].tile.openstreetmap.org/{z}/{x}/{y}.png (spherical-mercator)
我错过了什么?
谢谢
编辑
似乎 CircleNode 没有将 SRS 传递给 GeometryFactory。
答: 暂无答案
评论