Bonjour.
Methode pour contourner le bug dans google earth:
Problème:
[edit]
Lorsque l'on passe en Google Earth , les marqueurs,les boutons de controle disparraissent.
[/edit]
Si la mini carte est chargée avant de basculer dans google earth, une erreur se produit, la minicarte n'étant pas reconnue par google earth, et les layout ne sont pas chargés.(marqueurs,polyline,controles..).
d' ou l'idée de charger la mini carte après avoir été dans google earth.
Procédure:
Code à rajouter dans le template map.tpl avant la fonction onload()
var controleMiniCarte ; function ajoutControle(newZoom ){ if (newZoom < 5) return ; var vt1=typeof(controleMiniCarte) ; if (vt1=="undefined" ) { controleMiniCarte = new google.maps.OverviewMapControl(new google.maps.Size(300,200)); // controleMiniCarte.setMapType(G_PHYSICAL_MAP); map.addControl(controleMiniCarte); } }
Remplacer les lignes suivantes
try {
// the overview must be added after setting map center
var ovcontrol = new GOverviewMapControl(new GSize(165,165));
map.addControl(ovcontrol);
}
avec:
try { // the overview must be added after setting map center // var ovcontrol = new GOverviewMapControl(new GSize(165,165)); // map.addControl(ovcontrol); GEvent.addListener(map, "zoomend", function() { var newZoom = map.getZoom(); ajoutControle(newZoom); } ); }
On peut maintenant utiliser G_SATELLITE_3D_MAP (earth) pour afficher les marqueurs.
ensuite revenir en plan, relief... et ensuite modifier le zoom et passer a une echelle < 5 pour afficher la mini-carte.
@Gotcha
Gotcha a écrit:
Si personne ne trouve j'ai déjà contourné le problème ^^
Quel a été ta solution ? par curiosité.
A+
Dernière modification par cljosse (2010-03-06 18:36:16)
Hors ligne
Suite:
Procédure dans picture_map_content.tpl
Code à rajouter avant la fonction onload()
var controleMiniCarte ; function ajoutControle(newZoom ){ if (newZoom < 5) return ; var vt1=typeof(controleMiniCarte) ; if (vt1=="undefined" ) { controleMiniCarte = new google.maps.OverviewMapControl(new google.maps.Size(300,200)); // controleMiniCarte.setMapType(G_PHYSICAL_MAP); map.addControl(controleMiniCarte); } }
remplacer:
try {
// the overview must be added after setting map center
var ovcontrol = new GOverviewMapControl(new GSize(165,165));
map.addControl(ovcontrol);
var ov_map = ovcontrol.getOverviewMap();
GEvent.addListener(map, 'maptypechanged', function(){
ov_map.setMapType(G_NORMAL_MAP);
});
}
try { // the overview must be added after setting map center //var ovcontrol = new GOverviewMapControl(new GSize(165,165)); //map.addControl(ovcontrol); GEvent.addListener(map, "zoomend", function() { var newZoom = map.getZoom(); ajoutControle(newZoom); } ); GEvent.addListener(map, 'maptypechanged', function(){ if (typeof(controleMiniCarte)!="undefined" ) { var ov_map = controleMiniCarte.getOverviewMap(); ov_map.setMapType(G_NORMAL_MAP); } }); }
A+
[edit] Ajout d'un test sur controleMiniCarte [edit]
Dernière modification par cljosse (2010-03-06 18:36:34)
Hors ligne
cljosse a écrit:
@Gotcha
Gotcha a écrit:
Si personne ne trouve j'ai déjà contourné le problème ^^
Quel a été ta solution ? par curiosité.
Au lieu d'afficher la carte dans une page additionnelle, la carte sera la page additionnelle toute entière.
Exactement à la manière de l'icône sur la page d'accueil.
Je vais mettre ça en pratique tout de suite tien ;-)
[EDIT]
Voilà, j'ai ajouté, par le biais de Addtional_Page (j'aurais pu le faire autrement aussi !) une page additionnel qui pointe directement vers map.php
Le plus simple, pur voir le fonctionnement, c'est de se diriger sur ma galerie et de cliquer sur le lien "Géographie map".
L'astuce est simple mais peut élégante.
Le champs "titre" est écrit de cette manière :
<a href="map.php">Géographie map</a>
Comme ça, sur ma galerie j'ai l'icône sur la partie centrale + le lien dans le menu bar ^^
[/EDIT]
*****************
Par contre, si tes explications pour contourner ton [i]bug[i] sont toujours aussi claires, je n'en n'ai pas compris la source du problème ^^
Comprends que pour inscrire une solution dans le wiki, il faut que je comprenne le problème initial pour expliquer la solution :-)
Hors ligne
Problème :
Quant on clique sur le bouton EARTH, les marqueurs disparraissent.
A+
Hors ligne
Je n'ai suivi que ce message : [Forum, post 135469 by cljosse in topic 10697] [Plugin] RV Maps & Earth
et déjà, à la place de la fonction load() je trouve Onload()...
Est-ce bien la même chose.
J'ai donc coller le patch juste au au dessus.
Mais ça ne fonctionne pas mieux.
:-(
Hors ligne
C'est bien onload qu'il fallait lire.
J'avais oublier l'appel de la fonction ajoutControle ,
dans le try Bien commenter les 2 lignes:
//var ovcontrol = new GOverviewMapControl(new GSize(165,165));
//map.addControl(ovcontrol);
note:
j'ai modifier les codes de ce matin.
[Forum, post 135469 by cljosse in topic 10697] [Plugin] RV Maps & Earth
A+
Hors ligne
Je reprends donc ton code donnée [Forum, post 135469 by cljosse in topic 10697] [Plugin] RV Maps & Earth mais pas mieux :-(
On est bien d'accord, je pars de la carte qui se trouve sue la page d'accueil de la galerie, de la je clique sur "Earth" et je suis sencé obtenir mes repères... ?
Hors ligne
Gotcha a écrit:
Je reprends donc ton code donnée [Forum, post 135469 by cljosse in topic 10697] [Plugin] RV Maps & Earth mais pas mieux :-(
On est bien d'accord, je pars de la carte qui se trouve sue la page d'accueil de la galerie, de la je clique sur "Earth" et je suis sencé obtenir mes repères... ?
Attention:
Il y a bien deux templates, map.tpl et picture_map_content.tpl
Si tu fais appel à map.php sur ta page d'acceuil .
Il faut modifié le map.tpl.
Lien : http://fr.piwigo.org/forum/viewtopic.ph … 68#p135468
Si tu clique sur l'icone dans dans picture
il faut modifie picture_map_content.tpl
[Forum, post 135469 by cljosse in topic 10697] [Plugin] RV Maps & Earth
:-)
Dernière modification par cljosse (2010-03-06 18:01:17)
Hors ligne
okééééé
Donc en fait, il fait presque indiquer de modifier les deux fichiers. Sinon, on va avoir droit à des réflexions comme quoi la solution ne fonctionne pas partout ^^
Hors ligne
Gotcha a écrit:
okééééé
Donc en fait, il fait presque indiquer de modifier les deux fichiers. Sinon, on va avoir droit à des réflexions comme quoi la solution ne fonctionne pas partout ^^
C'est exact,
Petite modif
supprimer :
controleMiniCarte.setMapType(G_PHYSICAL_MAP);
dans la fonction ajoutControle (dans les deux fichiers)
Elle provoque une erreur en debug.
[edit] j'ai modifié les 2 posts[/edit]
Dernière modification par cljosse (2010-03-06 18:37:21)
Hors ligne
Grrr Encore un bug
dans picture_map_content.tpl
Ajouter:
var map;
avant l'appel de la fonction ajouteControl(
et modifier
var map = new ....
en
map = new
dans onLoad()
Hors ligne
Merci cljosse !
Map.tpl fonctionne parfaitement !
En revanche je n'ai pas la carte avec picture_map_content.tpl lorsque je fait les 2 dernière modif ! "var map;" et "map=new"
Hors ligne
mtgt a écrit:
Merci cljosse !
Map.tpl fonctionne parfaitement !
En revanche je n'ai pas la carte avec picture_map_content.tpl lorsque je fait les 2 dernière modif ! "var map;" et "map=new"
Bonjour.
dans picture_map_content.tpl
On déclare la variable "map" de façon explicite en dehors de onLoad().
var map; var controleMiniCarte ; function ajoutControle(newZoom ){
Maintenant que la variable map est définie, on supprime sa déclaration de la fonction onLoad()
en supprimant le mot "var" dans la ligne:
var map = new GMap2(document.getElementById("map"),{mapTypes: [G_SATELLITE_MAP,G_HYBRID_MAP,G_NORMAL_MAP,G_PHYSICAL_MAP,G_SATELLITE_3D_MAP]});
map = new GMap2(document.getElementById("map"),{mapTypes: [G_SATELLITE_MAP,G_HYBRID_MAP,G_NORMAL_MAP,G_PHYSICAL_MAP,G_SATELLITE_3D_MAP]});
A+
Hors ligne
Impeccable ça fonctionne !
Merci cljosse :)
J'ai encore un petit message d'erreur dût à la mise en place de streetview je suppose.
Lorsque je clique sur le marker, j'ai une nouvelle fenêtre qui s'ouvre avec l'icone "Warning" et "600" Marqué à coté.
J'ai cherché dans le code, je n'ai vu aucun 600 ???
Hors ligne
@cljosse : peux-tu me faire un un message complet sur la modification de map.tpl et picture_map_content.tpl .
Merci :-)
Hors ligne