views:

23

answers:

0

I have a project that returns geocoded results within 20 miles of the user. I want these results grouped on the map by zip code, then within the info window show the individual results. The code posted below works, but for some reason it only displays the 1.png rather than looking at the results and using the correct .png icon associated with the number. When I look at the infowindows, it displays the correct png like "/images/2.png" or "/images/5.png" but the actual image is always 1.

@ziptickets = Ticket.find(:all, 
                       :origin => coords, 
                       :select => 'DISTINCT zip, lat, lng',
                       :within => @user.distance_to_travel,
                       :conditions => "status_id = 1") 
for t in @ziptickets
  zips = Ticket.find(:all, :conditions => ["zip = ?", t.zip])
  currentzip = t.zip.to_s
  tixinzip = zips.size.to_s
  imagelocation = "/images/" + tixinzip + ".png"
  shadowlocation = "/images/" + tixinzip + "s.png"
  @map.icon_global_init(GIcon.new(:image => imagelocation,
      :shadow => shadowlocation,
      :shadow_size => GSize.new(60,40),
      :icon_anchor => GPoint.new(20,20),
      :info_window_anchor => GPoint.new(9,2)), "test")
  newicon = Variable.new("test")
  new_marker = GMarker.new([t.lat, t.lng], :icon => newicon, :title => imagelocation, :info_window => currentzip)
  @map.overlay_init(new_marker)
end

I tried changing the last part of the mapicon from:

      :info_window_anchor => GPoint.new(9,2)), "test")
      newicon = Variable.new("test")

to:

      :info_window_anchor => GPoint.new(9,2)), currentzip)
      newicon = Variable.new(currentzip)

but the strangest thing is that any string that has numbers in it causes the map to fail to render in the view and just show a blank screen... same if I replace it with

      :info_window_anchor => GPoint.new(9,2)), "123")
      newicon = Variable.new("123")

Any advice would be helpful... also it runs a bit slower than my previous code which just set up 4 standard icons and used them outside of the loop so any hints as to speed up execution would be appreciated greatly.

Thanks!

EDIT:

I figured out that whatever you name the variable for Variable.new() and in the new icon is very very picky, no spaces or variables with numbers. Can someone help explain why this is so?