2013-02-04 126 views
2

我使用谷歌地球Web开发,但我现在面临一个奇怪的情况,这是从谷歌代码操场一个简单的代码,并将其加载3D模型成谷歌地球,如果我刷新页面它不会再加载模型, http://savedbythegoog.appspot.com/?id=7f8638b214605a2327af223c613a6ae13874416b加载/刷新3D模型

有没有什么办法来解决它。

我正面临着加载3D模型的Internet Explorer 8在32位XP机器上的问题,IE8不会在谷歌地球中加载3D模型,您可以检查给出的链接。我也在下面发布js代码。

请帮助

<!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"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8"/> 
<title>Google Earth API Sample</title> 
<script src="http://www.google.com/jsapi?key=ABQIAAAAuPsJpk3MBtDpJ4G8cqBnjRRaGTYH6UMl8mADNa0YKuWNNa8VNxQCzVBXTx2DYyXGsTOxpWhvIG7Djw" type="text/javascript"></script> 
<script type="text/javascript"> 
    function addSampleButton(caption, clickHandler) { 
    var btn = document.createElement('input'); 
    btn.type = 'button'; 
    btn.value = caption; 

    if (btn.attachEvent) 
     btn.attachEvent('onclick', clickHandler); 
    else 
     btn.addEventListener('click', clickHandler, false); 

    // add the button to the Sample UI 
    document.getElementById('sample-ui').appendChild(btn); 
    } 

    function addSampleUIHtml(html) { 
    document.getElementById('sample-ui').innerHTML += html; 
    } 
</script> 
<script type="text/javascript"> 
var ge; 

google.load("earth", "1"); 

function init() { 
    google.earth.createInstance('map3d', initCallback, failureCallback); 

// addSampleButton('Create a 3D Model!', buttonClick); 
} 

function initCallback(instance) { 
    ge = instance; 
    ge.getWindow().setVisibility(true); 

    // add a navigation control 
    ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO); 

    // add some layers 
    ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true); 
    ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true); 

    var la = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND); 
    la.setRange(100000); 
    ge.getView().setAbstractView(la); 

    create3dModel(); 

    document.getElementById('installed-plugin-version').innerHTML = 
    ge.getPluginVersion().toString(); 
} 

function failureCallback(errorCode) { 
} 

function create3dModel() { 
    // Create a 3D model, initialize it from a Collada file, and place it 
    // in the world. 

    var placemark = ge.createPlacemark(''); 
    placemark.setName('model'); 
    var model = ge.createModel(''); 
    ge.getFeatures().appendChild(placemark); 
    var loc = ge.createLocation(''); 
    model.setLocation(loc); 
    var link = ge.createLink(''); 

    // A textured model created in Sketchup and exported as Collada. 
    link.setHref('http://earth-api-samples.googlecode.com/svn/trunk/examples/' + 
       'static/splotchy_box.dae'); 
    model.setLink(link); 

    var la = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND); 
    loc.setLatitude(la.getLatitude()); 
    loc.setLongitude(la.getLongitude()); 

    placemark.setGeometry(model); 

    la.setRange(300); 
    la.setTilt(45); 
    ge.getView().setAbstractView(la); 
} 

function buttonClick() { 
    create3dModel(); 
} 

</script> 
    </head> 
    <body onload="init()" style="font-family: arial, sans-serif; font-size: 13px; border: 0;"> 
    <div id="sample-ui"></div> 
    <div id="map3d" style="width: 500px; height: 380px;"></div> 
    <br> 
    <div>Installed Plugin Version: <span id="installed-plugin-version" style="font-weight: bold;">Loading...</span></div> 
</body> 
</html> 

如果链接不起作用的代码复制并粘贴到一个文本文件,将其重命名为.html,然后执行它。

回答

0

即使我遇到了与collada模型和Internet Explorer相同的问题,我给出的代码在其他浏览器(如Chrome和Mozilla)中运行良好。

检出this link,但在这种情况下,它们正在加载kml文件,而不是直接将collada模型加载到使用javascript的浏览器中。