code: def _MergeEntities(self, a, b):
      
      distance = transitfeed.ApproximateDistanceBetweenStops(a, b)
      if distance > self.largest_stop_distance:
        raise MergeError("Stops are too far apart: %.1fm "
                         "(largest_stop_distance is %.1fm)." %
                         (distance, self.largest_stop_distance))
      scheme = {'stop_id': self._MergeIdentical,
                'stop_name': self._MergeIdenticalCaseInsensitive,
                'zone_id': self._MergeIdentical,
                'location_type': self._MergeIdentical}
      return self._SchemedMerge(scheme, a, b)
docs: Merges two stops.
  
      For the stops to be merged, they must have:
        - the same stop_id
        - the same stop_name (case insensitive)
        - the same zone_id
        - locations less than largest_stop_distance apart
      The other attributes can have arbitary changes. The merged attributes are
      taken from the new stop.
  
      Args:
        a: The first stop.
        b: The second stop.
  
      Returns:
        The merged stop.
  
      Raises:
        MergeError: The stops could not be merged.