J'essaye de construire une vue google earth montrant les villes, mais je suis resté avec le parser kml geoxml3. J'ai un javascript qui construit une carte google en montrant d'abord les emplacements que je veux. Cela fonctionne bien. J'appelle la fonction d'un script php en lui fournissant une adresse et une référence de fichier kml à partir de la base de données. La fonction construit la carte, définit un drapeau 'map_finished' comme un drapeau de contrôle quand tout s'est bien passé et appelle la fonction de construction google earth view.Problème pour passer un fichier kml à Google Earth en utilisant la classe geoxml3 et la classe ProjectedOverlay
// Get maps and earth from google
google.load('maps', '2.s', {'other_params': 'sensor=true'});
google.load('earth', '1');
//Google Earth Initializer
function initObjectEarth() {
// Check if Google Earth plugin is installed
if(gm_loaded) {
this.ge_plugin_installed = google.earth.isInstalled();
if(this.ge_plugin_installed) {
google.earth.createInstance('inmap', geSuccessCallback, geFailureCallback);
ge_loaded = true;
} else {
alert('Your Browser has not yet installed the Google Earth plugin.
We recommend installing it to use all features!');
return false;
}
}
}
// Success handler
function geSuccessCallback(object) {
this.ge = object;
this.ge.getWindow().setVisibility(true);
this.kmlParser = new geoXML3.parser();
}
// Error handler
function geFailureCallback(object) {
alert('Error: ' + object);
}
L'analyseur geoxml utilise la classe ProjectedOverlay. Les deux bibliothèques sont chargées dans la tête du document. Lorsque l'analyseur est instancié, il demande une instance ProjectedOverlay. Cette classe jette une
Error: **google.maps is undefined**
erreur dans Firebug pour la déclaration suivante
ProjectedOverlay.prototype = new google.maps.OverlayView();
Dans mon fichier script, je l'ai déclaré vars y compris
var gm //for google map
var ge //for google earth
g est fixé dans la fonction qui construit le Google Map.
Je me demande comment résoudre ce problème. J'ai essayé le getProjection() chose que j'ai trouvé dans le Web ainsi que
ProjectedOverlay.prototype = new google.maps.OverlayView().prototype;
sans succès. Ce sujet est absolument nouveau pour moi et je n'arrive pas à comprendre comment le résoudre ni à partir de la documentation de OverlayView ni de google search.
Qu'est-ce que j'ai oublié ou mal fait?