In this case, 길에다 토하면 and 길에서 토하면 are very similar. But, there is a difference.

에다(가) means same as 에, so 길에다 토하다 means throwing up 'on' the street, so you throw up and then the vomit 'arrives' at the street. And 길에서 토하다 means that, the 'behavior' of throwing up is 'achieved' at the street, so it is saying that the place of the behavior is the street.

So, if you throw up in the cup at the street, it can be written 길에서 토하다, because no matter where your vomit arrives at, like in the cup or anything, you are still throwing up at the street, so 길에서 토하다 works. But we can say 길에다 토하다 doesn't work, you threw up in the cup, not on the street. So in this case, you can write 길에서 컵에다 토하다, which means 'throw up in the cup at the street'. Your behavior of throwing up is achieved at the street but the destination of vomit is your cup, not the street.

So 길에다 토하다 implies 길에서 토하다. If you throw up on the street, it means you throw up at the street, but the converse does not hold, because of the counterexample of throwing up in a cup, tissue, etc.