Подтвердить что ты не робот

API Карт Google без ключа?

Как вы используете API Google Maps v3 без ключа? Я видел это в в этом примере, но не могу понять, что конкретно заставляет его не выходить из строя.

Изменить: в случае, если кто-то подскажет это, другие ответы на эту тему в StackOverflow устарели и больше не применимы.

4b9b3361

Ответ 1

В действительности ссылка, которую вы разместили http://www.birdtheme.org/useful/v3largemap.html, работает без ключа (в консоли есть только предупреждение). Похоже, Google добавляет несколько доменных имен, чтобы разрешить использование API без ключа.

Я попытался использовать API Google Maps v3 для отображения плиток OpenStreetMap, но на моем локальном хосте он выдает "Ошибка API Карт Google: MissingKeyMapError", пока он работает на этом сайте без ключа API: http://harrywood.co.uk/maps/examples/google-maps/apiv3.html

На большинстве веб-сайтов, которые не используют ключ API, есть ошибка, которая препятствует использованию Карт Google, но вы можете обойти эту цензуру.

Решение, если вы не владеете сервером с помощью API Карт Google без ключа:

Заблокировать HTTP-запрос, отправив ошибку с аддоном типа AdBlockPlus и правилом http://maps.googleapis.com/maps/api/js/AuthenticationService.Authenticate?*

Это даст вам доступ к API-интерфейсам API Карт Google, маркерам, всплыванию infoWindow... Но если вы хотите использовать API геокодирования, вы также должны remove your HTTP referer header с помощью аддона браузера, например "Изменить заголовки".

Решение для добавления на вашу веб-страницу, чтобы каждый посетитель мог получить доступ к API Карт Google без ключа:

Ниже представлен JavaScript-хак, который я создал для использования API Карт Google V3 без ключа и обходит сообщение об ошибке.

// 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);

Это даст вам доступ к API-интерфейсам API Карт Google, маркерам, всплыванию infoWindow... Для API геокодирования вам также необходимо удалить ваш HTTP-референт с метатегом HTML ниже.

<meta name="referrer" content="no-referrer"> <!-- don't send HTTP referer for privacy purpose and to use Google Maps Geocoding API without key -->

Ответ 2

Теперь требуется ключ. Раньше это не требовалось, и сайты, которые использовали API без ключа до 22 июня 2016 года, были grandfathered, чтобы позволить им продолжать работать.

См. эту запись в блоге для дополнительной информации (соответствующий текст ниже):

По состоянию на 22 июня 2016 года мы вносим следующие изменения в стандартный план API Карт Google:

  • Мы больше не поддерживаем доступ без ключа (любой запрос, который не включает ключ API). Будущие обновления продукта доступны только для запросов, сделанных с помощью ключа API. API-ключи позволяют нам обращаться к разработчикам по мере необходимости и помогать нам выявлять ошибочные реализации.
  • Мы внедрили простые 25 000 карт в день бесплатно для новых API Карт Google Maps, API статических карт и реализации API-интерфейса Street View. Сбивающий с толку 90-дневный льготный период для этих API-интерфейсов выходит на пенсию 12 октября 2016 года. С этим изменением разработчики могут прогнозировать план роста, в то время как медиа-сайты и некоммерческие организации США могут бесплатно запрашивать больше квот через наши специализированные программы поддержки.
  • Мы снизили максимальный лимит максимальной нагрузки на карту, который вы можете приобрести для API JavaScript Карт Google, API статических карт и API-интерфейса Street View Image от 1000 000 до 100 000 запросов на API. * Мы считаем, что разработчикам более высокого уровня лучше всего использовать Лицензия Premium Plan, которая включает техническую поддержку и соглашение об уровне обслуживания, а также с этим изменением, мы также создали согласованность между квотами стандартного плана по нашим картам и API-интерфейсам веб-сервисов.
  • Теперь мы учитываем клиентские запросы Google Maps JavaScript API на ежедневный лимит связанного API веб-сервисов. *

Новые политики будут немедленно применяться ко всем реализациям API Карт, созданным 22 июня 2016 года или позже.

Существующие приложения были grandfathered на основе их текущего использования, чтобы гарантировать, что они будут продолжать функционировать как сейчас, так и в будущем. Мы также будем активно связываться со всеми существующими ключевыми пользователями API, которые в зависимости от моделей роста использования могут пострадать в будущем. Если вы существующий пользователь, пожалуйста, найдите время, чтобы прочитать наше обновление политики для сводки стандартного плана, чтобы узнать, как каждая из этих изменений может повлиять на вашу реализацию.