code: def from_multi(eltype, data, kdims, vdims):
      """Converts list formats into spatialpandas.GeoDataFrame.
  
      Args:
          eltype: Element type to convert
          data: The original data
          kdims: The declared key dimensions
          vdims: The declared value dimensions
  
      Returns:
          A GeoDataFrame containing in the list based format.
      """
      from spatialpandas import GeoDataFrame
  
      xname, yname = (kd.name for kd in kdims[:2])
  
      new_data, types, geom_types = [], [], []
      for d in data:
          types.append(type(d))
          new_dict = to_geom_dict(
              eltype, d, kdims, vdims, SpatialPandasInterface
          )
          if (
              "geom_type" in new_dict
              and new_dict["geom_type"] not in geom_types
          ):
              geom_types.append(new_dict["geom_type"])
          new_data.append(new_dict)
          if not isinstance(new_data[-1], dict):
              types[-1] = type(new_data[-1])
      if len(set(types)) > 1:
          raise DataError("Mixed types not supported")
      if new_data and types[0] is GeoDataFrame:
          data = pd.concat(new_data)
      else:
          columns = [
              d.name for d in kdims + vdims if d not in (xname, yname)
          ]
          if len(geom_types) == 1:
              geom = geom_types[0]
          else:
              geom = SpatialPandasInterface.geom_type(eltype)
          data = to_spatialpandas(new_data, xname, yname, columns, geom)
      return data
  
imports: import sys
  from collections import defaultdict
  import numpy
  import pandas
  from ..dimension import dimension_name
  from ..util import isscalar, unique_array, unique_iterator
  from .interface import DataError, Interface
  from .multipath import MultiInterface, ensure_ring
  from .pandas import PandasInterface
label_desc: Use image node_id 9 for calling a global function with example usage: from_multi(eltype, data, kdims, vdims) and returns: data