GoogleMaps Api и C # - PullRequest
       18

GoogleMaps Api и C #

2 голосов
/ 11 июня 2011

У меня проблема с моей картой.Карта работала правильно около 5 месяцев назад.Теперь, когда я загружаю карту с моими координатами, карта загружается, но когда я начинаю просматривать карту, увеличивать масштаб и т. Д., Я получаю белый экран, как будто нет связи с картой ... Мне нужно снова загрузить карту, но снова эта проблема возникает,Около 5 месяцев назад я использовал этот скрипт, и все работало нормально ... просмотр, масштабирование, изменение типа карты, все без проблем.Я создал HTML-код в соответствии с веб-сайтом Google и поместил его в новый файл ресурсов:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<title>Google Maps JavaScript API v3 Example: Map Simple</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">



  function load(latitude,longitude,zoomik) {
    var myLatlng = new google.maps.LatLng(latitude,longitude);
    var myOptions = {
      zoom: zoomik,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }


    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var marker = new google.maps.Marker({
        position: myLatlng, 
        map: map,
        title:"Here!"});

  }

</script>
</head>
<body onload="load()">
  <div id="map_canvas"></div>
</body>
</html>

Код для моей кнопки:

  private void TestButton_Click(object sender, EventArgs e)
    {
        webBrowser1.Document.InvokeScript("load", new object[] { -34.397, 150.644, 8 });
    }

Экраны: Карта загружена правильно: enter image description here

После использования инструмента панорамирования или масштабирования: - пустой белый экран.enter image description here

Я использую Visual C # Express и элемент управления WebBrowser из winforms.

HTML-код работает правильно в Firefox (с использованием Aptana Studio) (масштабирование и панорамирование работают нормально)

Что еще этот код из примера Google API также не работает правильно:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css"        rel="stylesheet" type="text/css" />
<title>Google Maps JavaScript API v3 Example: Map Simple</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
 function initialize() {
    var myLatlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
     zoom: 8,
     center: myLatlng,
     mapTypeId: google.maps.MapTypeId.ROADMAP
   }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
   }
  </script>
  </head>
  <body onload="initialize()">
  <div id="map_canvas"></div>
  </body>
  </html>

Ответы [ 4 ]

1 голос
/ 12 июня 2011

Я понял это сам.

Неправильно было:

<div id="map_canvas"></div>

после изменения на:

<div id="map_canvas" style="width:500px; height:400px"></div>

карта работает как надо.

0 голосов
/ 11 июня 2011

Возможно, вы могли бы вместо этого загружать карты Google во Flash, а не в объекте WebBrowser?Следующая ссылка объясняет, как это сделать с помощью WPF, но это должно быть легко применимо к WinForms: http://code.google.com/intl/fr/apis/maps/articles/flashmapinwpf.html

0 голосов
/ 11 июня 2011

У меня была похожая проблема с Google Maps v3.Хотя моя проблема заключалась в том, что я нацелился на текущий API Карт Google v3, и они «устарели» для вызова set_map и ввели ту же функциональность, что и setMap.

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

Я предлагаю указать версию API Карт Google вместо использования текущей и посмотреть, исправляет ли это:

<script type="text/javascript" 
   src="http://maps.google.com/maps/api/js?v=3.3&sensor=false">
</script>

Редактировать: также, просматривая ваш пост снова, вы можете переместить логику для установки маркера и масштабирования карты из функции загрузки.Таким образом, когда вы нажимаете кнопку, вы не будете повторно инициализировать карту и параметры.На днях я видел в документации, что на карте теперь есть «чистые» опции для содержимого div, и загрузка карты дважды (загрузка тела, нажатие кнопки) может вызвать такое чистое поведение.Опять же, нацеливайтесь на предыдущую версию API, и она может работать.

0 голосов
/ 11 июня 2011

Когда у меня возникают проблемы с gMaps, первым делом я меняю ключ карты, вы пробовали это? Какие браузеры вы пробовали? Firefox, Chrome или IE?

...