def add_marker_icon(mymap, lat, lon, color, type_icon, icon_text, icon_color, tooltip, add, add_distance=False, dist=''): ''' Adds or returns a marker based on some parameters Args: mymap(Folium map) lat(float): Latitude for marker lon(float): Longitude for marker color(str): color code for marker (used in case type_icon is 'fa') type_icon(str): 'fa' to used fontawesome, 'custom' to used a picture. icon_text(str): type of fontawesome or location for picture icon_color(str): color of symbol in marker if type_icon is 'fa'. tooltip(str): text to add to marker add(boolean): True if marker directly added to map. False just to return marker (for later group adding) add_distance(boolean): by default False, meaning no distance added to tooltip. True means distance is added to tooltip dist(float): distance to be added to tooltip if add_distance is True Returns: marker(Folium Marker): if add is False ''' if type_icon == 'fa': icon = Icon( color=color, prefix="fa", icon=icon_text, icon_color=icon_color, ) elif type_icon == 'custom': #https://ocefpaf.github.io/python4oceanographers/blog/2015/11/02/icons/ icon = folium.features.CustomIcon(icon_text, icon_size=(50, 50)) else: pass loc = [lat, lon] if add_distance: tooltip = f'{tooltip}\n {dist} km' else: pass marker = Marker(location=loc, icon=icon, tooltip=tooltip) if add: marker.add_to(mymap) else: return marker
class GeoMarker: def __init__(self, geo: GeoPoint, popup_path: str, *args, **kwargs): self.geo = geo weather = Jinja2Processor(popup_path, casts=geo.get_weather()).content self.marker = Marker(location=[self.geo.latitude, self.geo.longitude], popup=Popup(weather), *args, **kwargs) def mark(self, map_: Map) -> None: self.marker.add_to(map_)
def final_location(coordinates_, map_lnd): """ Places the final location on the map Args: coordinates_ (list): coordinates of the final location map_lnd (folium.Map): the map where the data has to be placed. """ icono = Icon(color="white", prefix="fa", icon="trophy", icon_color="black") loc = {"location": coordinates_, "tooltip": "Gaming Company"} marker_company = Marker(**loc, icon=icono) marker_company.add_to(map_lnd)
def bicycling(origin, destination, alternative="bicycling"): """ Recoge las cordenadas y dibuja el mapa con direcciones (en bici) """ coordenadas = waypoints(origin=origin, destination=destination, alternative="bicycling") stopsdest = db.bicimad.find({ "coordinates": { "$geoWithin": { "$centerSphere": [[coordenadas[2]["lng"], coordenadas[2]["lat"]], 0.00007885743614075527] } } }).limit(1) stopsorig = db.bicimad.find({ "coordinates": { "$geoWithin": { "$centerSphere": [[coordenadas[1]["lng"], coordenadas[1]["lat"]], 0.00007885743614075527] } } }).limit(1) wpsneardest = [] wpsnearorig = [] for i in stopsdest: wpsneardest.append(i) for i in stopsorig: wpsnearorig.append(i) wpsneardest = wpsneardest[0]["coordinates"] wpsnearorig = wpsnearorig[0]["coordinates"] mapa = Map(location=[coordenadas[2]["lat"], coordenadas[2]["lng"]], zoom_start=14) chincheta2 = Marker( location=[coordenadas[1]["lat"], coordenadas[1]["lng"]], tooltip="origen", popup="o") chinchetad = Marker( location=[coordenadas[2]["lat"], coordenadas[2]["lng"]], tooltip="destino", popup="d") bicimador = Marker(location=[wpsnearorig[1], wpsnearorig[0]], tooltip="orbici", popup="bo", icon=Icon(icon='heart', color='#f7b5f5')) bicimaddest = Marker(location=[wpsneardest[1], wpsneardest[0]], tooltip="destbici", popup="bd", icon=Icon(icon="heart", color="#f7b5f5")) chincheta2.add_to(mapa) chinchetad.add_to(mapa) bicimador.add_to(mapa) bicimaddest.add_to(mapa) PolyLine(coordenadas[3], color="red", weight=2.5, opacity=1).add_to(mapa) return mapa
def add_market(x, y, q, z): for i, row in pd.DataFrame(y).iterrows(): parque = Marker(location=[ row['location']['coordinates'][1], row['location']['coordinates'][0] ], tooltip=row['name'], icon=Icon(color=z, prefix="fa", icon=q, icon_color="black")) parque.add_to(x) return x
def walk(origin, destination, alternative): """ Recoge las cordenadas y dibuja el mapa con direcciones (andando) """ coordenadas = hi_google(origin, destination, alternative) distancia = coordenadas[0] mapa = Map(location=[coordenadas[2]["lat"], coordenadas[2]["lng"]], zoom_start=14) chincheta2 = Marker( location=[coordenadas[1]["lat"], coordenadas[1]["lng"]], tooltip="origen", popup="o") chinchetad = Marker( location=[coordenadas[2]["lat"], coordenadas[2]["lng"]], tooltip="destino", popup="d") chincheta2.add_to(mapa) chinchetad.add_to(mapa) PolyLine(coordenadas[3], color="red", weight=2.5, opacity=1).add_to(mapa) return mapa
def get_the_map(closer_places, the_place, tags): final_map = Map(location=the_place, zoom_start=15) counter = 0 for coordinates in closer_places: loc = coordinates icon = Icon(color="green", prefix="fa", icon="flag", icon_color="black", tooltip=tags[counter]) counter += 1 marker = Marker(location=loc, icon=icon) marker.add_to(final_map) loc = the_place icon_2 = Icon(color="red", prefix="fa", icon="space-shuttle", icon_color="black", tooltip="The place") marker = Marker(location=loc, icon=icon_2) marker.add_to(final_map) return final_map
def marker(self, **kwargs): add_to = kwargs.pop('add_to', True) marker = Marker([self.lat, self.lon], **kwargs) if add_to: marker.add_to(self.maps)