Вставить карту Google неправильно отображается до изменения размера веб-страницы

Я пытаюсь отобразить карту на своей веб-странице, чтобы получить от нее координаты. Он работает отлично, я могу перетащить маркер и получить координаты в полях ввода.

Но моя проблема возникает, когда я загружаю веб-страницу. Все хорошо отображается, кроме карты, здесь вы можете увидеть, как карта отображается:

Но если в этот момент я изменю размер веб-страницы, я имею в виду, если она была полноэкранной, поместите ее наполовину. Или сделайте его немного большим, большим или меньшим, если он был только частью экрана. Тогда вы увидите правильную карту:

(Это не то же самое место, я знаю. Я взял изображение от 2 перезагрузок)

Я создаю веб-страницу в HTML, но я называю это так, как если бы они были разными веб-страницами. Когда вы загружаете индекс, вы получаете кнопку с этим

href:<a href="#openMap">

И, показанная часть будет:

<div data-role="page"  id="openMap" data-theme="e">
<div data-role="header" data-id="fixedNav" data-position="fixed">
    blablabla
    <div data-role="content">
        <form action="">
            <div id="map_canvas" style="width:500px; height:300px"></div>
            blablabla

И все дивы, формы ... правильно закрыты. У меня есть много полей ввода и полей, которые я не поместил здесь.

Затем в моем скрипте Google Map у меня есть это:

var map;
function initializeNewMap() {
  var myLatlng = new google.maps.LatLng(43.462119485,-3.809954692009);

  var myOptions = {
     zoom: 14,
     center: myLatlng,
     mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

  var marker = new google.maps.Marker({
      draggable: true,
      position: myLatlng, 
      map: map,
      title: "Your location"
  });

}

Но я понятия не имею, почему мне нужно изменить размер. Это способ решить это?

РЕДАКТИРОВАТЬ: Я добавляю больше информации:

Я называю ту часть веб-страницы, на которой есть карта, следующим образом:

$(document).on("pageinit", '#openMap', function() {

Я пытался поставить

google.maps.event.trigger(map, 'resize');

только после этого но ничего не происходит.

РЕШЕНИЕ:

Я нашел решение в другом вопросе (Google Maps v3 загружается частично в верхнем левом углу, событие изменения размера не работаетПост Яна Девлина):

Как сказал один из пользователей, мне нужно изменить размер карты. Но только эта линия не сработала. Я добавил этот код в конце функции инициализации:

google.maps.event.addListenerOnce(map, 'idle', function() {
    google.maps.event.trigger(map, 'resize');
});

Поэтому он вызывается только после показа карты.

Ответы на вопрос(5)

Ваш ответ на вопрос