Where to put mapping functionality

Hey guys. I've been trying to figure out where in my app this functionality should go, but I'm really not sure. Any suggestions?

1) A map can be created for a Neighbourhood or Property. 2) A map has zero or more markers. 3) A marker contains HTML formatted from a template, using a Property's attributes.

#1 means that the map functionality should be separate from Neighbourhoods and Properties, otherwise it won't be DRY. IMO, this suggests that I should create a map model, or put the mapping functionality in a module in lib/ .

#3 is related to views. The marker HTML template could go in a: -view helper. However, only views have access to view helpers, so the helper would only be accessible from the view. This would require putting business logic into the view. Ew. -partial. The Neighbourhood and Property controllers could then use #render_to_string to generate each marker's contents. I don't believe it's possible [without an ugly kludge, at least] to get a model to call #render_to_string .

My current line of thinking is: -Create a 'map' model. -Put the map marker HTML template in a partial. -The Neighbourhood and Property controllers create a map instance. -The Neighbourhood and Property controllers add map markers. -Addng map markers calls #render_to_string to generate a marker's contents.

However, I feel like the Neighbourhood and Property models should be creating the map instance and adding markers.

Any suggestions? I'm all ears! -Nick