Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- https://stackoverflow.com/questions/38148097/google-maps-api-without-key/38809129#38809129
- Indeed the link you posted http://www.birdtheme.org/useful/v3largemap.html works without key (there is just a warning in the console).
- It looks like Google is whitelisting some domain names to allow the use of API without key.
- I tried to use the Google Maps API v3 to display OpenStreetMap tiles but it produces a "Google Maps API error: MissingKeyMapError" on my localhost while it is working on this site without API key: http://harrywood.co.uk/maps/examples/google-maps/apiv3.html
- On most websites that don't use an API key, there is an error that prevent the use of Google Maps but you can bypass this censorship.
- **Solution if you don't own the server using Google Maps API without key:**
- Block the HTTP request sending the error with an addon like AdBlockPlus and the rule `http://maps.googleapis.com/maps/api/js/AuthenticationService.Authenticate?*`
- This will give you access to Google Maps API tiles, markers, infoWindow popup...
- But if you want to use the Geocoding API, you also have to `remove your HTTP referer header` with a browser addon like "Modify Headers".
- **Solution to add in your web page so every visitors can access Google Maps API without key:**
- Below is a JavaScript hack I created to use Google Maps API V3 without key and bypass the error message.
- // hack Google Maps to bypass API v3 key (needed since 22 June 2016 http://googlegeodevelopers.blogspot.com.es/2016/06/building-for-scale-updates-to-google.html)
- var target = document.head;
- var observer = new MutationObserver(function(mutations) {
- for (var i = 0; mutations[i]; ++i) { // notify when script to hack is added in HTML head
- if (mutations[i].addedNodes[0].nodeName == "SCRIPT" && mutations[i].addedNodes[0].src.match(/\/AuthenticationService.Authenticate?/g)) {
- var str = mutations[i].addedNodes[0].src.match(/[?&]callback=.*[&$]/g);
- if (str) {
- if (str[0][str[0].length - 1] == '&') {
- str = str[0].substring(10, str[0].length - 1);
- } else {
- str = str[0].substring(10);
- }
- var split = str.split(".");
- var object = split[0];
- var method = split[1];
- window[object][method] = null; // remove censorship message function _xdc_._jmzdv6 (AJAX callback name "_jmzdv6" differs depending on URL)
- //window[object] = {}; // when we removed the complete object _xdc_, Google Maps tiles did not load when we moved the map with the mouse (no problem with OpenStreetMap)
- }
- observer.disconnect();
- }
- }
- });
- var config = { attributes: true, childList: true, characterData: true }
- observer.observe(target, config);
- This will give you access to Google Maps API tiles, markers, infoWindow popup...
- For the Geocoding API, you also have to remove your HTTP referer with the HTML meta tag below.
- <meta name="referrer" content="no-referrer"> <!-- don't send HTTP referer for privacy purpose and to use Google Maps Geocoding API without key -->
Add Comment
Please, Sign In to add comment