You can download this code by clicking the button below.
This code is now available for download.
This function creates a random marker on a Folium map object, with the position determined by an initial position and a random distance.
Technology Stack : Folium
Code Type : Folium map customization
Code Difficulty : Intermediate
def randomize_marker_position(map_obj, initial_position, random_distance):
"""
This function adds a random marker to a Folium map object at a position
around the initial position by a given distance.
"""
from math import radians, sin, cos, sqrt, atan2
from folium import CircleMarker
# Convert initial position to radians
lat, lon = map_obj.get_latlng()
lat_rad = radians(lat)
lon_rad = radians(lon)
# Calculate new position based on random distance and bearing
bearing = random_distance / 1000 # Convert distance to kilometers
distance = random_distance
earth_radius_km = 6371 # Earth's radius in kilometers
# Calculate change in latitude and longitude
dlat = distance * cos(bearing)
dlon = distance * sin(bearing)
# New position
new_lat = lat + dlat / earth_radius_km
new_lon = lon + dlon / (earth_radius_km * cos(lat_rad))
# Create a new marker at the new position
new_marker = CircleMarker([new_lat, new_lon], radius=10, color='blue', fill=True, fill_color='blue')
map_obj.add_child(new_marker)
return map_obj