Google Maps API не возвращает пин-маркеры - PullRequest
0 голосов
/ 11 июня 2019

API Карт Google после работы в течение нескольких лет начал работать хаотично около месяца назад.

Код все прекрасно работает с моей машины разработки (мой localHost), во всех браузерах, никаких проблем.

Но на производственном сервере при звонке из домена https (сервер, обратный прокси через nginx, используя Cloudflare) я обнаружил следующее поведение:

a.В Chrome и Safari он просто возвращает карту initMap по умолчанию, не найденный результат или маркер (пин-код).

b.Firefox, все отлично работает.

c.То есть, он работает только при обновлении страницы, а не при переходе от страницы к странице.

Из всего, что я пробовал:

  1. Очистка всех файлов cookie и файлов из кеша браузера.
  2. Изменение настроек в Cloudflare (различные настройки кэширования и скорости).

Основной код выглядит следующим образом (развертывается через freemarker, поэтому игнорируйте эти части. Код работает, как я описал выше.

function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: {lat: 53.3280182, lng: -6.3743767}
});
var geocoder = new google.maps.Geocoder();
google.maps.event.addDomListener(window, 'load', function() {
geocodeAddress(geocoder, map);
});
}

function geocodeAddress(geocoder, resultsMap) {
var address = "${clientLocation}";
geocoder.geocode({'address': address}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
  resultsMap.setCenter(results[0].geometry.location);
  var marker = new google.maps.Marker({
    map: resultsMap,
    position: results[0].geometry.location
  });
} 
});
}

src="https://maps.googleapis.com/maps/api/js?key=xxxx&callback=initMap"
    async defer>

РЕДАКТИРОВАТЬ: В ответ на комментарий ниже:

  1. У меня действительно был следующий код во время тестирования (он был удален для производства), и ничего не возвращалось . (Извините, я должен был это упомянуть.)

    alert ('Геокод не был успешным по следующей причине:' + status);

  2. Я тоже ничего не получал в консоли Java.Однако на основании полезного комментария, сделанного ниже, я изменил уровень предупреждения на «подробный» и увидел следующую ошибку.

    [Нарушение] Добавил непассивный слушатель событийк блокирующему прокрутку событию «touchmove»Пометьте обработчик событий как пассивный, чтобы сделать страницу более отзывчивой.См https://www.chromestatus.com/feature/5745543795965952

1 Ответ

0 голосов
/ 13 июня 2019

Согласно приведенным выше комментариям, я обнаружил проблему, как только изменил отчет об ошибках в консоли Chrome Java на «подробный».

Проблема была с 'Rocket Loader' на Cloudflare.

Как только я выключил это, проблема разрешилась.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...