code: def init(cls, eltype, data, kdims, vdims):
      from spatialpandas import GeoDataFrame
  
      if kdims is None:
          kdims = eltype.kdims
  
      if vdims is None:
          vdims = eltype.vdims
  
      if isinstance(data, cls.series_type()):
          data = data.to_frame()
  
      if "geopandas" in sys.modules:
          import geopandas as gpd
  
          if isinstance(data, gpd.GeoSeries):
              data = data.to_frame()
          if isinstance(data, gpd.GeoDataFrame):
              data = GeoDataFrame(data)
      if isinstance(data, list):
          if "shapely" in sys.modules:
              data = from_shapely(data)
          if isinstance(data, list):
              data = from_multi(eltype, data, kdims, vdims)
      elif isinstance(data, cls.array_type()):
          data = GeoDataFrame({"geometry": data})
      elif not isinstance(data, cls.frame_type()):
          raise ValueError(
              f"{cls.__name__} only support spatialpandas DataFrames."
          )
      elif "geometry" not in data:
          cls.geo_column(data)
  
      index_names = (
          data.index.names
          if isinstance(data, pd.DataFrame)
          else [data.index.name]
      )
      if index_names == [None]:
          index_names = ["index"]
  
      for kd in kdims + vdims:
          kd = dimension_name(kd)
          if kd in data.columns:
              continue
          if any(
              kd == ("index" if name is None else name)
              for name in index_names
          ):
              data = data.reset_index()
              break
  
      return data, {"kdims": kdims, "vdims": vdims}, {}
  
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 8 for calling the SpatialPandasInterface obj's underlying member method code with example usage: obj.init(cls, eltype, data, kdims, vdims) and returns: data,  dict,  dict