Computes a coordinate given a distance along a vector that is defined by a starting coordinate and an azimuth (Angle with respect to the North).
.NET Syntax
Java Syntax
PHP Syntax
Example (PHP)
See MgCoordinateSystemMeasure::GetAzimuth Method (MgCoordinate*, MgCoordinate*) for the code creating $azimuth12 and $azimuth21. See MgCoordinateSystemMeasure::GetDistance Method (MgCoordinate*, MgCoordinate*) for the code computing the distance between the coordinates. The longitude and latitude of $coord12 is the same as the longitude and latitutde of $coord2, and the longitude and latitude of $coord21 is the same as the longitude and latitude of $coord1.
$geometryFactory = new MgGeometryFactory(); $x1 = -74.806394; $y1 = 40.714169; $coord1 = $geometryFactory->CreateCoordinateXY($x1, $y1); $coord12 = $coordSysMeasure->GetCoordinate($coord1, $azimuth12, $distance); $x2 = -71.061342; $y2 = 42.355892; $coord2 = $geometryFactory->CreateCoordinateXY($x2, $y2); $coord21 = $coordSysMeasure->GetCoordinate($coord2, $azimuth21, $distance);
Example (C#)
using OSGeo.MapGuide; private MgCoordinateSystemMeasure geogCSMeasure; private MgGeometryFactory geometryFactory; private MgCoordinate geogCSXYCoord; private MgCoordinate geogCSX1Y1Coord; private double geogCSX = -160.101421317; private double geogCSY = 22.0234263273; private double geogCSX1 = -159.721535121256; private double geogCSY1 = 24.0028259520524; private double geogCSAzimuth = 10.0; private double geogCSDistance = 2.0; private double tolerance = 0.001; private Boolean isEquivalent; geometryFactory = new MgGeometryFactory(); geogCSXYCoord = geometryFactory.CreateCoordinateXY(geogCSX, geogCSY); geogCSX1Y1Coord = geogCSMeasure.GetCoordinate(geogCSXYCoord, geogCSAzimuth, geogCSDistance); // the X and Y values of geogCSX1Y1Coord are equal to geogCSX1 and geogCSY1 isEquivalent = Math.Abs(geogCSX1 - geogCSX1Y1Coord.GetX()) < tolerance && Math.Abs(geogCSY1 - geogCSX1Y1Coord.GetY()) < tolerance;
Implements MgMeasure.
|