Not completely sure. I already cleaned it up a lot by moving it from WMSSource to FeatureLine.

Well, a `render.as_url()` doesn't sound too bad. I'd then also think about outputting html from that method so the popup.html can be cleaned up. 

I'm not going to do any more refactoring now. I've openend #22