In [3]:
%matplotlib inline

#from __future__ import print_function
from ipyleaflet import (
    Map,
    Marker,
    TileLayer, ImageOverlay,
    Polyline, Polygon, Rectangle, Circle, CircleMarker,
    GeoJSON,
    DrawControl
)


def add_rectangle_perimeter(m,  long_min, long_max, lat_min, lat_max):
    
    print("perimeter: long_min>=%f, long_max<=%f, lat_min>=%f, lat_max<=%f" % (long_min, long_max, lat_min, lat_max))  
    
    rectangle = {"type": "Feature", \
            #"properties": {"operator": operateur}, \
            "geometry": { "type" : "Polygon", \
            "coordinates": [[[long_min, lat_min],[long_min, lat_max],[long_max, lat_max],[long_max, lat_min],[long_min, lat_min]]]
        } }

    my_style = {
        "color": 'black', # color of the polygone outline
        "weight": 1, # weight of the polygone outline
        "opacity": 0.5, # opacity of the polygone outline       
        "fillColor": 'grey', # color inside the polygon
        "fillOpacity": 0, # opacity inside the polygon
        "stroke-dasharray":'5, 10'
    };
    g = GeoJSON(data=rectangle, style=my_style)
    m.add_layer(g)


# draw a rectangle around Lannion (well... more or less)
# https://tools.wmflabs.org/geohack/geohack.php?pagename=Lannion&params=48.7333_N_3.4542_W_type:city(19733)_region:FR-BRE    
# 48.7333, -3.4542
long_min = -3.5
long_max = -3.4
lat_min = 48.7
lat_max = 48.8

zoom = 11

map_center = [(lat_max + lat_min)/2, (long_min + long_max)/2 ]

m = Map(center=map_center, zoom=zoom)

add_rectangle_perimeter(m,  long_min, long_max, lat_min, lat_max)
m


perimeter: long_min>=-3.500000, long_max<=-3.400000, lat_min>=48.700000, lat_max<=48.800000

In [ ]: