code: def filter_map(min_price, max_price, boroughs):
      filtered_df = df[
          (df["neighbourhood_group"].isin(boroughs))
          & (df["price"] > min_price)
          & (df["price"] < max_price)
      ]
      names = filtered_df["name"].tolist()
      prices = filtered_df["price"].tolist()
      text_list = [(names[i], prices[i]) for i in range(0, len(names))]
      fig = go.Figure(
          go.Scattermapbox(
              customdata=text_list,
              lat=filtered_df["latitude"].tolist(),
              lon=filtered_df["longitude"].tolist(),
              mode="markers",
              marker=go.scattermapbox.Marker(size=6),
              hoverinfo="text",
              hovertemplate="<b>Name</b>: %{customdata[0]}<br><b>Price</b>: $%{customdata[1]}",
          )
      )
  
      fig.update_layout(
          mapbox_style="open-street-map",
          hovermode="closest",
          mapbox=dict(
              bearing=0,
              center=go.layout.mapbox.Center(lat=40.67, lon=-73.90),
              pitch=0,
              zoom=9,
          ),
      )
  
      return fig
  
label_desc: Use image node_id 1 for calling a global function with example usage: filter_map(min_price, max_price, boroughs) and returns: fig