2012-09-11 3 views
1

Je ne peux pas comprendre pourquoi, par exemple, je tente de reproduire quelque chose de basique comme cet exemple https://google-developers.appspot.com/earth/documentation/samples/fetchkml_example par moi-même, je ne peux pas le faire fonctionner. J'utilise ma clé que j'ai utilisée pour mon API Google Maps, donc je pense que cette partie devrait être bonne, mais en ce qui concerne KML, je n'arrive pas à la faire fonctionner, qu'elle soit récupérée ou analysée . J'ai mis mon fichier KML ici https://sites.google.com/site/shahinkmlexamples/experiment/kml_example.kml, et mon code est ci-dessous avec mon propre numéro de clé ne figure pasChargement de KML dans Google Earth?

<html> 
<head> 
    <title>fetchkml_dom_example.html</title> 
    <script src="//www.google.com/jsapi?key=MYKEY#"></script> 
    <script type="text/javascript"> 
     var ge; 
     google.load("earth", "1"); 

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

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

     var href = 'https://sites.google.com/' + 'site/shahinkmlexamples/experiment/kml_example.kml'; 

     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> 

</head> 
<body> 

    <div id="map3d" style="border: 1px solid silver; height: 400px; width: 600px;"></div> 

</body> 
</html> 

donc je sais la solution se doit d'être simple, mais je ne peux pas le comprendre. Merci

Répondre

0

Lorsque vous le charger à partir d'un fichier local (par exemple en utilisant notepad ++ et le chargement de ce fichier dans Chrome), vous devez ajouter un protocole à la balise de script:

<script src="//www.google.com/jsapi?key=MYKEY#"></script> 

Devient:

<script src="https://www.google.com/jsapi?key=MYKEY#"></script> 

Sans ce changement, votre page est à la recherche du fichier dans votre système de fichiers local.

Il est laissé de côté dans les exemples afin que votre navigateur puisse charger la version HTTPS si votre page est HTTPS, et la version HTTP si votre page est HTTP. Cela empêche les avertissements de sécurité dans le navigateur.

+0

Vous avez raison, c'était ça, je ne sais pas comment j'ai raté ça. Merci. –

+0

Pas de soucis! Si vous pouviez cliquer sur la coche pour accepter la réponse, elle apparaitra pour tous ceux qui ont les mêmes problèmes à l'avenir :) –

0

Je ne sais pas quel est votre problème. J'ai mis votre code dans un éditeur en ligne - http://www.onlinehtmleditor.net/ un simple copier-coller et cela a bien fonctionné.

En outre, en ce qui concerne la clé API. Pour Google Earth, vous n'en avez plus besoin. Il suffit d'utiliser l'appel javascript générique ci-dessous

+0

Merci pour le site, oui, il semble y avoir du travail là-dessus, mais quand j'utilise notepad ++, puis le charger dans google Chrome, rien ne se charge. Je ne peux pas comprendre la cause de cela. Les documents utilisant des documents non-KML fonctionnent cependant. –

+0

Je ne suis pas sûr que GE fonctionne bien sur un localhost. Essayez de l'héberger sur Internet et voyez si cela fonctionne. – lifeIsGood

+0

GE fonctionne très bien depuis localhost - vous ne pouvez pas récupérer un fichier kml avec un chemin tel que C: \ path \ to \ file.kml'. 'fetchKml (..)' a besoin d'une URL. – Matt

Questions connexes