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:
And here is the same map with POI's removed entirely:
If you want to remove the pin from Google Maps, simply right click on it and select "Remove this destination." Poof, it's gone.
Click the marker to reveal the editing options. Click the "Delete" link in the lower-left corner of the dialog box.
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.
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With