docs: def build_geometry_by_stop(
      feed: "Feed",
      stop_ids: Optional[List[str]] = None,
      *,
      use_utm: bool = False,
  ) -> Dict:
      """
      Return a dictionary with the structure
      stop_id -> Shapely Point with coordinates of the stop.
  
      Parameters
      ----------
      feed : Feed
      use_utm : boolean
          If ``True``, then return each point in UTM coordinates
          appropriate to the region; otherwise use the default WGS84
          coordinates
      stop_ids : list
          Stop IDs (strings) from ``feed.stops`` to restrict output to
  
      Returns
      -------
      dictionary
          Each key is a stop ID and each value is a Shapely Point with
          coordinates of the stop
  
      Notes
      -----
      Assume the following feed attributes are not ``None``:
  
      - ``feed.stops``
  
      """
      d = {}
      stops = feed.stops.copy()
      if stop_ids is not None:
          stops = stops[stops["stop_id"].isin(stop_ids)]
  
      stops = stops[stops.stop_lat.notna() & stops.stop_lon.notna()]
  
      if use_utm:
          for stop, group in stops.groupby("stop_id"):
              lat, lon = group[["stop_lat", "stop_lon"]].values[0]
              d[stop] = sg.Point(utm.from_latlon(lat, lon)[:2])
      else:
          for stop, group in stops.groupby("stop_id"):
              lat, lon = group[["stop_lat", "stop_lon"]].values[0]
              d[stop] = sg.Point([lon, lat])
      return d