#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. Идеальный. Спасибо. Всегда что-то простое.