Plotting geodesic (great circle) lines

4551
6
09-08-2014 04:14 AM
SharonBullimore
New Contributor

Hi

Please can anyone give me advice on how to plot geodesic (great circle) lines?

I'm aware I could use GeometryEngine::geodesicDensifyGeometry() to get points on a geodesic line between two predefined locations, but what I need to do is to plot a line using a starting location, angle of bearing and line length. I think perhaps GeometricEngine::createGeodesicSector() could do this for me but I'm not sure how to set all the parameters. I'd appreciate it if anyone who has experience doing this could give me some hints.

Thanks very much,

Sharon

0 Kudos
6 Replies
SharonBullimore
New Contributor

In fact I've now played with GeometricEngine::createGeodesicSector() a bit more and it doesn't seem like it will do what I want, so I'd be grateful for any suggestions anyone has.

0 Kudos
SharonBullimore
New Contributor

I've now realised why I was unable to do what I wanted. I was trying to plot a geodesic line corresponding to a specified bearing but actually this doesn't make sense because geodesic lines are not the same as lines of constant bearing (loxodromes). I think what I actually need to do is to plot a geodesic which has a given angle of bearing at a given point - i.e. to answer the question 'if I receive a signal from a given direction, where might it have come from?'. Does anyone know how to do that?

0 Kudos
JeanneTrieu
Occasional Contributor

Hi Sharon,

In the ArcGIS Runtime SDK for Qt, there are a few samples that uses different geodesic functionalities and in the code snippet, it provides some description on how to use it. You just need to go to the Qt sample app and look under Geometry for more information. Let me know if it is sufficient.

Regards,

Jen Trieu - Product Eng.

0 Kudos
SharonBullimore
New Contributor

Hi Jeanne

Thanks very much for your reply. I've seen the Qt sample app and the Geometry examples but I don't think they do what I need. I've been reading up on this a bit so I'll add some more info here in case it helps anyone else trying to solve the same problem. There's a useful Wikipedia page here:

Geodesics on an ellipsoid - Wikipedia, the free encyclopedia‌.

It looks like there are two different problems which are typically solved:

- the direct geodesic problem: given a start point, the azimuth at that point and a geodesic distance, find the corresponding end point;

- the inverse geodesic problem: given start and end points, find the geodesic distance between them and the azimuths at those points.

I'm trying to solve the direct geodesic problem and I think maybe the methods in the ArcGIS Runtime SDK for Qt only solve the inverse problem. However, I may well have missed something here so I'd appreciate you letting me know if there is a method that solves the direct problem that I haven't seen yet.

Thanks very much,

Sharon

0 Kudos
JeanneTrieu
Occasional Contributor

Hi Sharon,

Sorry for the late reply:

These are the parameters that you can set. As you can see you are giving the center of the ellipse as well as the length of the two axis of your ellipse. You should also give the max distance between the vertices which will determine how well defined your ellipse will be.  I am not sure that I fully understand how you would like to give the start and end point for the ellipse since an ellipse is usually defined by its center and its two axis.

Can you draw me a diagram so I can better assist you?

    /*!
      \brief Constructor accepting all parameters.

      \param[in] center The center point.
      \param[in] spatialReference The spatial reference.
      \param[in] semiAxis1Length The length of one axis, either the semi-major
        or semi-minor axis.
      \param[in] semiAxis2Length The length of the other axis.
      \param[in] axisDirection The direction of the longer axis (in degrees).
      \param[in] maxSegmentLength The maximum distance between vertices used to construct  
        the ellipse.
      \param[in] geometryType Output geometry type. The default is
        Geometry::GT_Polygon.
      \param[in] unit The linear units of the semiAxis1 and semiAxis2 lengths.
        The default is EsriRuntimeQt::LinearUnit::METER.
     */
    GeodesicEllipseParameters (const Point& center,
                               const SpatialReference& spatialReference,
                               const double& semiAxis1Length,
                               const double& semiAxis2Length,
                               const double& axisDirection,
                               const double& maxSegmentLength,
                               const Geometry::GeometryType& geometryType = Geometry::GT_Polygon,
                               const Unit& unit = LinearUnit(LinearUnit::METER));

thanks,

Jen Trieu | Product Eng.

0 Kudos
SharonBullimore
New Contributor

Hi Jeanne

Thank you very much for your reply. Sorry that I didn't get back to you before. I didn't get an email notification, so I didn't realise you had replied. Unfortunately I don't think the geodesic ellipse method will do what I want, but I appreciate you taking the time to respond.

Best wishes,

Sharon

0 Kudos