turf.destination
What is turf.destination?
turf.destination computes the endpoint reached by travelling a given distance on a given bearing (great-circle) from a start Point. It uses the geodesic "direct problem" solution on the WGS84 sphere, so it works globally and in all units Turf supports.
turf.destination(origin, distance, bearing, options?) → Feature<Point>Options include:
units—'kilometers'(default),'meters','miles','nauticalmiles','radians','degrees'properties— object assigned to the output point'sproperties
When would you use turf.destination?
Use turf.destination for any "project a point by distance and bearing" scenario — dropping radar rings around an airport, placing icons at a fixed offset from a marker, generating synthetic geocoding results for tests, or building navigation demos where a vehicle moves on a heading. It is paired often with turf.bearing to round-trip a calculation and with turf.distance to validate outputs.
In server-side code, it is useful for generating point clouds around a seed (e.g. sampling around an event location) or for creating regular grids of bearings for field-of-view analysis.
undefinedFAQs
Is the bearing measured from true north?
Yes. Bearings in turf.destination are measured clockwise from true north, matching turf.bearing output. Use degrees from -180 to 180 or 0 to 360 — both are accepted.
Great circle or rhumb line?
turf.destination follows a great-circle path. For constant-heading (rhumb-line) projection, use turf.rhumbDestination. The difference matters most at long distances and high latitudes.
How do I install just destination?
npm install @turf/destination. It is a small module built on @turf/helpers and @turf/invariant, safe to include on the client side.
Can I compute a circle of points around an origin?
Yes — loop bearings from 0 to 360 calling turf.destination for each, or simply use turf.circle which wraps this pattern with a configurable number of steps and returns a closed polygon.