Hi Gugg, Chances are you aren't converted it to JSON correctly. The outputted JSON has to look like this: "picture":"/assets/dayhome.png","width":32,"height":37,"lat":53.5402,"lng":-113.628
Here's snippet of the code I'm using (use it in your controller): def gmap_prepare_homes(homes) homes.to_gmaps4rails do |home, marker| marker.title home.name marker.picture({ :picture => "/assets/dayhome.png", :width => 32, :height => 37 }) end end I don't actually use the built in method gmaps4rails_marker_picture which might be outputting the strings (and it looks like it does, here: http://rubydoc.info/gems/gmaps4rails/0.7.5/Gmaps4rails/ActsAsGmappable/InstanceMethods ) If the numbers are in quotes you're going to have a bad time :(. Ry On Monday, April 2, 2012 7:27:01 AM UTC-6, gugguson wrote: > > Hello Ryan. > > I'm also using the Rails plugin and have exactly the same problem with > custom markers being cutoff. > > I'm defining the markers in the model as the example code is and this is > what I have: > > def gmaps4rails_marker_picture > { > "width" => 32, > "height" => 37, > "picture" => "/images/" + case > when !self.customer_id > "unknown.png" > when self.customer.customer_type == 2 > "fillingstation2.png" > else > "company.png" > end > } > end > > I had the numbers in quotes as you but removed them and I get it with > quotes in the html. In your code you had stars instead but that isn't > working. Am I misanderstanding something? > > Johann > > On Wednesday, March 21, 2012 9:31:50 PM UTC, Ryan Jones wrote: >> >> Hey Chad, >> >> I had the exact same problem (I'm doing it with a ruby on rails gem, but >> the output was the same). This is the code I was using: >> >> marker.picture({ :picture => "/assets/home.png", >> :width => "32", >> :height => "37" >> }) >> >> gmaps JSON: >> "picture":"/assets/home.png","width":"32","height":"37","lat":53.5402,"lng":-113.628 >> >> This ended up with the markers cut in half, and/or missing chunks due to >> canvas (I noticed it the most when I zoomed out), it didn't matter if >> optimized was true or false. I changed the code to this: >> >> marker.picture({ :picture => "/assets/home.png", >> :width => *32,* >> :height => *37* >> }) >> >> gmaps JSON: >> "picture":"/assets/dayhome.png","width":32,"height":37,"lat":53.5402,"lng":-113.628 >> >> Once I removed the quotes and allowed js to treat it as a number >> everything worked perfect. And just for the record, I had to define the >> width and the height of the pin, otherwise it would default to the google >> maps pin size and cut off some of my marker. >> >> I noticed if I shrunk down my pin to the same size as the google pin it >> worked just fine and I didn't end up with the canvas chunks. There must be >> some oddities and/or defaults happening behind the scenes when a width and >> height is passed in as a string. >> >> Hopefully it saves you some grief in the future :)! >> >> Thanks, >> Ry >> >> PS. First google groups post, I've attached some example pictures, >> hopefully they come through. >> >> On Thursday, February 16, 2012 11:09:18 AM UTC-7, Chadwick Meyer wrote: >>> >>> I recently discovered that the custom markers on my maps were being >>> hidden behind the Google Maps tiles. You can clearly see the edge of >>> the grid where the markers are being cut off. >>> >>> https://skitch.com/gutensite/8n8n5/find-parking-park-circa-mobile-app-for-peer-to-peer-shared-parking >>> >>> (original page, that is now fixed: http://www.parkcirca.com/Parking ) >>> >>> I am using Google's latest Google Maps API Version: 3.8 >>> >>> To my surprise not many have complained about this recently (I looked >>> extensively). I discovered that this is caused by the new Canvas tiles >>> that are used to optimize the page. If you inspect elements, you can >>> see that the markers are actually tile layers. If I turn off >>> 'optimized' (see code below) the markers display correctly! >>> >>> var point = new google.maps.Marker({ >>> 'position': position, >>> 'map': this.options.map.construct, >>> 'icon': marker_data.custom_icon, >>> 'title': marker_data.title, >>> 'optimized': false >>> }); >>> >>> What is interesting is that if you use the default markers, the tiles >>> do NOT hide the default markers (code below). >>> >>> https://skitch.com/gutensite/8n8g3/find-parking-park-circa-mobile-app-for-peer-to-peer-shared-parking >>> >>> >>> var point = new google.maps.Marker({ >>> 'position': position, >>> 'map': this.options.map.construct, >>> 'title': marker_data.title >>> }); >>> >>> But the reason for this, is because somehow Google seems to be adding >>> creating the canvases differently for their default markers. When a >>> marker overlaps a tile they make sure that part of it shows up on each >>> adjacent canvas tile. >>> >>> https://skitch.com/gutensite/8n88g/find-parking-park-circa-mobile-app-for-peer-to-peer-shared-parking >>> >>> >>> I inspected the elements and deleted certain tiles, and you can see >>> that the other half of the default marker still is shows up on the >>> adjacent tile. >>> >>> https://skitch.com/gutensite/8n8e8/find-parking-park-circa-mobile-app-for-peer-to-peer-shared-parking >>> >>> >>> So I guess the question is, am I doing something wrong that is causing >>> Google Maps API to treat my custom markers inferior? Or is this a bug >>> in the API that no one has reported yet? >>> >>> >>> -- You received this message because you are subscribed to the Google Groups "Google Maps JavaScript API v3" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-maps-js-api-v3/-/SNUEB9BWIhQJ. To post to this group, send email to google-maps-js-api-v3@googlegroups.com. To unsubscribe from this group, send email to google-maps-js-api-v3+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-maps-js-api-v3?hl=en.