示例#1
0
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
示例#2
0
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_)
示例#3
0
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)
示例#4
0
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
示例#6
0
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
示例#8
0
    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)