встроенная карта Google просто серый - PullRequest
1 голос
/ 17 ноября 2009

Я встроил карту Google на своей странице. В IE8 часть карты отображается, а остальная часть карты - серая. В Firefox вся карта просто серая. Мой код такой:

<script type="text/javascript">

             function initialize() {
                 if (GBrowserIsCompatible()) {
                     var map = new GMap2(document.getElementById("map_canvas"));
                     map.setCenter(new GLatLng(37.4419, -122.1419), 13);
                     map.setUIToDefault();
                 }
             }

             window.setTimeout(function() {
                 initialize();
             }, 750);

             window.onunload = GUnload;
</script>

<div id='map_canvas' style="float:left; width:481px; height:450px; border-style:solid; border-width:2px; border-left:none; border-color:#5793C9">

Пример кода Google, из которого я скопировал этот код, использует <body onload> и выгрузку, но у меня нет доступа к ним, поскольку мое тело определено на главной странице. Я думаю, это, вероятно, причина. Как я могу это исправить?

изменить, чтобы добавить: мой test.html делает то же самое. Все содержимое test.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps JavaScript API Example: Simple Map</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=KEYABCDE"
            type="text/javascript"></script>
    <script type="text/javascript">

    function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(37.4419, -122.1419), 13);
        map.setUIToDefault();
      }
    }

    </script>
  </head>
  <body onload="initialize()" onunload="GUnload()">
    <div id="map_canvas" style="width: 500px; height: 300px"></div>
  </body>
</html>

Ответы [ 3 ]

1 голос
/ 17 ноября 2009

750 миллисекунд может быть недостаточно для полной загрузки DOM.

Вместо:

window.setTimeout(function() {
  initialize();
}, 750);

попробуйте использовать:

window.onload = initialize;
0 голосов
/ 26 июля 2013

Если у вас есть эта проблема в Firefox, вы можете установить img CSS (каскадные таблицы стилей) для контейнера вашей карты следующим образом:

.gmap img {
  max-width: none;
}

Очевидно, это "недокументированная функция на FF"

Я нашел вот этот пост: https://drupal.org/node/1298800

Я не использую Drupal, но это исправило мою проблему в Firefox ..

С уважением Ким

0 голосов
/ 10 октября 2012

Убедитесь, что ваши значения по умолчанию являются разумными. Вы центрируете карту на существующей точке? Похоже, что вы ... Вы даете ему приемлемый уровень масштабирования? Существует ли уровень масштабирования 13?

...