Google Map не загружается должным образом каждый раз

0

Иногда карта Google не загружается должным образом и не позволяет вставить маркер:

Изображение 174551

Это мой код для создания карты:

var companyCreateMap;
var companyCreateMapInitialZoom = 7;                 

function companyLoadInitialMap()
{
  companyCreateGeocoder = new google.maps.Geocoder();

  var companyCreateInitialLocation = new google.maps.LatLng(companyCreateMapInitialCenterLat, companyCreateMapInitialCenterLng);

  var companyCreateMapOptions = {
    center: companyCreateInitialLocation,
    zoom: companyCreateMapInitialZoom,
    mapTypeId: google.maps.MapTypeId.ROADMAP
}

companyCreateMap = new google.maps.Map(document.getElementById(companyCreateMapCanvas), companyCreateMapOptions);

google.maps.event.addListener(companyCreateMap, 'click', updateMarkerCoordenatesOnClick);

companyCreateGetUserLocation();
}

function companyCreateGetUserLocation()
{
  if (navigator.geolocation)
  {
    browserSupportFlag = true;

    navigator.geolocation.getCurrentPosition(function (companyCreatePosition)
    {
        var companyCreateCenterLocation = new google.maps.LatLng(companyCreatePosition.coords.latitude, companyCreatePosition.coords.longitude);

        companyCreateMap.setCenter(companyCreateCenterLocation);
        companyCreateMap.setZoom(17);
        companyCreateMarker = new google.maps.Marker({ position: companyCreateCenterLocation, map: companyCreateMap, animation: google.maps.Animation.DROP     });
    },
    function (error)
    {
        // User did not accept to give location
        //handleNoGeolocation(browserSupportFlag, error);
    });
}
    // Browser doesn't support Geolocation
else
{
    browserSupportFlag = false;
    //handleNoGeolocation(browserSupportFlag);
}
}

Это происходит не каждый раз, только время от времени, и я не получаю ошибок в консоли.

Есть идеи?

  • 0
    Это мелочь, но я бы явно объявил, что companyCreateMap является глобальным.
  • 0
    Привет, спасибо, но это уже глобально. Я обновил код с ним.
Показать ещё 2 комментария
Теги:
google-maps-api-3

1 ответ

5
Лучший ответ

Вам нужно вызвать изменение размера карты, когда завершение затухания завершено.

$('#map-canvas').fadeIn(200, function() {

    // Trigger a map resize
    google.maps.event.trigger(map, 'resize');
});

JSFiddle demo

  • 0
    Большой! Большое спасибо. Решение, которое я нашел, чтобы избежать отображения карты: ни один контейнер на самом деле не является решением, но ваше действительно великолепно. Обычно это решение используется в моей ситуации?
  • 0
    Да, это именно тот путь, когда вы изменяете размер / показываете элемент холста карты.
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню