Destination

Takes a Point and calculates the location of a destination point given a distance in degrees, radians, miles, or kilometers and bearing in degrees.

Example

import json
from turfpy.measurement import destination
from geojson import Point, Feature

origin = Feature(geometry=Point([-75.343, 39.984]))
distance = 50
bearing = 90
options = {'units': 'mi'}
print(json.dumps(destination(origin,distance,bearing,options), indent=2, sort_keys=True))
{
  "geometry": {
    "coordinates": [
      -74.398588,
      39.980168
    ],
    "type": "Point"
  },
  "properties": {},
  "type": "Feature"
}

Interactive Example

from turfpy.measurement import destination
from geojson import Point, Feature
from ipyleaflet import Map, GeoJSON, WidgetControl, LayersControl, CircleMarker
from ipywidgets import HTML

origin = Feature(geometry=Point([-75.343, 39.984]))
distance = 50
bearing = 90
options = {"units": "mi"}

m = Map(center=[39.98304755619415, -74.67888951301576], zoom=9)


geo_json = GeoJSON(name="Start Point", data=origin)

centre_coord = destination(origin, distance, bearing, options)["geometry"][
    "coordinates"
]
circle_marker = CircleMarker(name="End Point")
circle_marker.location = (centre_coord[1], centre_coord[0])
circle_marker.radius = 10
circle_marker.color = "red"


m.add_layer(geo_json)
m.add_layer(circle_marker)

html = HTML()
html.layout.margin = "0px 20px 10px 20px"
html.value = """
        <h4>Point which is at 90 degrees bearing and 50 miles in that direction</h4>
    """

control = WidgetControl(widget=html, position="topright")
m.add_control(control)

control = LayersControl(position="topright")
m.add_control(control)

m