Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I remove just the popup bubbles of POI's in Google Maps API v3?

So I'm working on a new web app that has a big focus on maps. Using Google Maps API v3 and really happy with it but noticed that the points of interest (POI's) have automatically bubbles with more details and a link to the Google Places page. I don't want these. Here is my code:

map = new google.maps.Map(document.getElementById("map"), {     center:new google.maps.LatLng(default_latitude,default_longitude),     zoom:11,     mapTypeId:google.maps.MapTypeId.ROADMAP,     mapTypeControl:false,     panControl:false }); 

I know you can remove the POI's entirely. Here is my code for that:

map = new google.maps.Map(document.getElementById("map"),{     center:new google.maps.LatLng(default_latitude,default_longitude),     zoom:11,     mapTypeId:google.maps.MapTypeId.ROADMAP,     mapTypeControl:false,     panControl:false,     styles:[{         featureType:"poi",         elementType:"labels",         stylers:[{             visibility:"off"         }]     }] }); 

This removes everything entirely and I still would like to see the labels as I think they bring value but just think the bubbles are too much of a distraction.

For reference here is the bubble I want to remove:

Example

And here is the same map with POI's removed entirely:

Example

like image 288
Andrew G. Johnson Avatar asked Oct 31 '11 04:10

Andrew G. Johnson


People also ask

How do I get rid of blue markers on Google Maps?

If you want to remove the pin from Google Maps, simply right click on it and select "Remove this destination." Poof, it's gone.

How do you remove map markers?

Click the marker to reveal the editing options. Click the "Delete" link in the lower-left corner of the dialog box.

Can you customize Google Maps API?

The Google Maps APIs now support you in creating beautiful styled maps for your Android and iOS apps as well as your website using the same JSON style object.


1 Answers

Editor's note: this answer was applicable until version 3.23. Since version 3.24 released in 2016, you can use clickableIcons map option. See xomena's answer.

Version ~3.12 fix. Demo

Here is a new patch that works again. I have tested it with version 3.14.

Now we gonna patch set() instead of open().

function fixInfoWindow() {     // Here we redefine the set() method.     // If it is called for map option, we hide the InfoWindow, if "noSuppress"       // option is not true. As Google Maps does not know about this option,       // its InfoWindows will not be opened.      var set = google.maps.InfoWindow.prototype.set;      google.maps.InfoWindow.prototype.set = function (key, val) {         if (key === 'map' && ! this.get('noSuppress')) {             console.warn('This InfoWindow is suppressed.');             console.log('To enable it, set "noSuppress" option to true.');             return;         }          set.apply(this, arguments);     } } 

What you have to do is set option noSuppress to true for your own InfoWindow's in order to open them, for example:

var popup = new google.maps.InfoWindow({     content: 'Bang!',     noSuppress: true });  popup.setPosition(new google.maps.LatLng(-34.397, 150.644));  popup.open(map); 

or:

var popup = new google.maps.InfoWindow({     content: 'Bang!', });  popup.set('noSuppress', true); popup.setPosition(new google.maps.LatLng(-34.397, 150.644));  popup.open(map); 
like image 118
jsmarkus Avatar answered Oct 03 '22 01:10

jsmarkus