Плагин Google Планета Земля, встроенный в Blogger, создающий 2 карты

#kml #google-earth-plugin #kmz

#kml #google-earth-плагин #kmz

Вопрос:

Любопытная проблема при встраивании сетевой ссылки Google Earth в Blogger. Код, который я использую, как показано ниже, но я получаю два экземпляра GE на одной странице, один над другим. Они должны генерироваться отдельно, как если бы я вставлял границу в стиль divs на странице, это влияет только на один экземпляр.

 <div id="map3d" style="border: 4px solid silver; height: 768px; width: 1024px;"></div>
 

Однако, если я полностью удалю этот код со страницы. оба экземпляра исчезают.

Кроме этого, он работает так, как я хочу. (В конечном итоге)

Это код, который у меня есть в разделе head

 <!-- Earth -->
<script src="//www.google.com/jsapi?key=mykey"></script>
<script type="text/javascript">
  var ge;
  google.load("earth", "1", {"other_params":"sensor=false"});

  function init() {
     google.earth.createInstance('map3d', initCB, failureCB);
  }

  function initCB(instance) {
     ge = instance;
     ge.getWindow().setVisibility(true);
     ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);

     var href = 'http://urltomykmz';

     google.earth.fetchKml(ge, href, function(kmlObject) {
           if (kmlObject)
              ge.getFeatures().appendChild(kmlObject);
           if (kmlObject.getAbstractView() !== null)
              ge.getView().setAbstractView(kmlObject.getAbstractView());
     });
  }

  function failureCB(errorCode) {
  }

  google.setOnLoadCallback(init);
</script>
<!-- Earth -->
 

Благодарен всем, кто может указать, что вызывает второй экземпляр. Спасибо.

Комментарии:

1. Если вы проверите сгенерированный HTML, какой <div> код вы получите? Если вы измените id проблему, проблема не исчезнет?

2. 1-й экземпляр является правильным. Это подбирает стиль, введенный в теле страницы. Информация о Div отображается как «Width = 1020px Height = 776px #map3d Width = 1032px Height = 776px Width = 1024px Height = 768px Width = 1024px Height = 768px #_idlglue_pluginDiv___idlglue_plugin__99 Width = 1024px Height = 768px» 2-й экземпляр показывает только «Width =Высота 1024 пикселей = 768 пикселей #_idlglue_pluginDiv___idlglue_plugin__99» Нет #map3d

3. А как насчет второй? Может быть, Blogger меняет разметку?

4. Извините, я нажал return перед вводом информации о 2-й. Теперь отредактировано.

5. Именно это я и делал. 🙂 tinyurl.com/q59t9y3

Ответ №1:

Вы должны удалить либо вызов init() в вашем onload обработчике, либо вызов google.setOnLoadCallback(init) , иначе карта будет добавляться при каждом вызове init функции.

Комментарии:

1. Идеальный. Спасибо. Всегда что-то простое.