deplacer un marker googlemap en survolant un lien

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

mddif
Nouveau WRInaute
 
Messages: 3
Inscription: Lun Oct 22, 2007 0:17

deplacer un marker googlemap en survolant un lien

Message le Mar Oct 23, 2007 23:22

je ne suis pas expert en java script ni en google map
et je galère un peu avec le script qui suit....
le but est de placer un "marker" en passant au dessus d'un premier lien web, puis de déplacer ce marker sur la carte en passant au dessus d'un autre lien...
j'ai résolu provisoirement mon problème en detruisant les "markers" qui apparaissent après une delai de 5 secondes.
j'ai aussi testé un on mouseover avec un removeMarker. je n'ai pas compris pourquoi le remove marker ne fonctionne pas.

<!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" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>GeoLoc 2</title>
<script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAAb3shBnsOX_hLgYAXaD3_RxSbyYI2FynueqXjGT8-bVC_7UdwWxTZxd-peKRyoiOTNOO3SYAxz6XM9A" type="text/javascript"></script>
<script type="text/javascript">

var map = null;
var marker=null;
var geocoder = null;
var zoom = 10;

function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(48.9, 2.3), 10);
map.addControl(new GLargeMapControl());
geocoder = new GClientGeocoder();
showAddress('Schiltigheim, France');
}
}
function placeMarker(point){
map.setCenter(point);
var marker = new GMarker(point); map.addOverlay(marker);
window.setTimeout(function() { map.removeOverlay(marker) }, 5000);
}
function movMarker(){};
function removeMarker(){ map.removeOverlay(marker) }

function showAddress(address){
if (geocoder) {
geocoder.getLatLng (
address,
function(point) {
if (!point) { alert(address + " not found"); } else { placeMarker(point); }
} ) } }
</script>
</head>

<body onload="initialize()" onunload="GUnload()">

<div id="map_canvas" style="width: 500px; height: 300px"></div>
<script language="javascript">
showAddress('93 rue d\'Alsace, Schiltigheim, France');
</script>
<a href="" onmouseover="showAddress('Schiltigheim, France'); ">Schiltigheim</a> -
<a href="" onmouseover="showAddress('eschau, France');">Eschau </a> -
<a href="" onmouseover="showAddress('oberhausbergen, France');">Oberhausbergen</a> -
<a href="" onmouseover="removeMarker(marker);">remove marker</a> -
<br />

</body>
</html>

Il me manque probablement 3 virgule de code pour que ça marche
en attendant je sèche lamentablement
Merci pour une petite aide...
marc Delepière


NxtGen
WRInaute passionné
WRInaute passionné
 
Messages: 731
Inscription: Mar Oct 24, 2006 4:35

Message le Mer Oct 24, 2007 2:20

j'ai pas trop compris ce que tu voulais faire mais un simple

Code: Tout sélectionner
<a href="" onmouseover="removeMarker(marker); showAddress('Schiltigheim, France');">Schiltigheim</a>


ne fonctionnerait pas ?

mddif
Nouveau WRInaute
 
Messages: 3
Inscription: Lun Oct 22, 2007 0:17

Message le Mer Oct 24, 2007 12:28

Si bien sur, mais la fonction removeMarker(marker) appelée par le code
Code: Tout sélectionner
<a href="" onmouseover="removeMarker(marker); showAddress('Schiltigheim, France');">Schiltigheim</a>
ou simplement par le code
Code: Tout sélectionner
<a href="" onmouseover="removeMarker(marker);">remove marker</a>
ne fonctionne pas si je l'appelle dans le corps de la page (entre les balises body)
En fait il y aurait 2 facons de faire chaque fois que l'on survole le nom d'une ville :
1- effacer le marker directement dans la fonction showAddress() avant d'installer un nouveau marker sur la carte en ajoutant un removeOverlay(marker) au début de la fonction.
2- ou faire comme tu l'indiques : effacer le marker extérieurement avant d'appeler showaddress()

Dans les 2 cas je ne parviens pas à effacer le marker...
Dans le cas 2 c'est pire encore parce que le nouveaux marker à installer ne s'affiche pas au passage au dessus d'un nom de ville.

Le soucis est que je ne parviens donc pas à pointer (adresser) un marker dèjà existant pour l'effacer.
Par contre la fonction d'effacement fonctionne très bien par
Code: Tout sélectionner
function placeMarker(point){
      map.setCenter(point);
      var marker = new GMarker(point); map.addOverlay(marker);
      window.setTimeout(function() { map.removeOverlay(marker) }, 5000);
   }

Dance ce cas le marker est bien adressé (interne à la fonction de création)" mais cet effacement avec temporisation n'est qu'un pis aller pour éviter l'accumulation de markers sur la carte en survolant les noms de villes.
on pourrait
- soit effacer un ancien marker pour en créér ubn nouveau
- soit deplacer le marker existant et le centre de la carte pour le repositionner sur la carte à l'emplacement de la ville dont on survolle le nom. encore faut-il parvenir à adresser un marker déjà existant

Le but est de faire une localisation dynamique de nom de ville en passant au dessus des liens.

mddif
Nouveau WRInaute
 
Messages: 3
Inscription: Lun Oct 22, 2007 0:17

Message le Mer Oct 24, 2007 13:13

dans le même ordre d'idée la fonction
Code: Tout sélectionner
<script language="javascript">
showAddress('93 rue d\'Alsace, Schiltigheim, France');
</script>
appelée dans le code, apres le <div> qui encapsule la carte et avant les balises <a href> en fin, de code ne fonctionne pas non plus.

pourquoi ?


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

  • Test de redirection
    Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
  • Calcul du taux de liens profonds
    Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.
  • Transformer des simples citations de votre site en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités