IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

Recherche du générateur


Sujet :

IGN API Géoportail

  1. #21
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Et comment fais-je ?
    1/ D'abord tu récupères les derniers codes sources de la fonction en dézippant les sources de l'api...
    2/ Dans ce forum, tu fais une recherche par exemple sur "LUSSuccess"...
    3/ Tu regardes les réponses soient de dgrichard soit de mga_geo (et surtout ses exemples en ligne)
    4/ Tu adaptes en fonction des changements qu'il y a eu depuis ces interventions de mga_geo en fonction des nouveaux codes sources de l'api

    Merci.

    _____________
    - Le site de l'Observatoire de Haute-Loire (obs43.fr)
    - Voir une vidéo de présentation (2 min.) de l'Observatoire de Haute-Loire

  2. #22
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Merci pour les pistes.

    J'ai trouvé des choses, mais je ne suis pas suffisamment à l'aise, mais je creuse, je creuse.

    Je regarde différents codes sources trouvés (par exemple,http://atlasnw.free.fr/geoportail/ex...recherche.html), je n'arrive pas à modifier le zoom dans ma fonction.
    Zeb'...

  3. #23
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Tu as la bonne référence .
    Donc les résultats de ta recherche se retrouve dans var ga= f.attributes.address; Regarde avec firebug sa structure....

    1/ A partir de là, tu peux les sélectionner suivant le département, la commune, etc. avec un if (ga.places[5].name == insee) par exemple
    2/ Ensuite tu peux connaitre leur nombre répondant à ta sélection
    3/ En fonction de ce nombre, par exemple: si =0 tu renvoie un message de défaut
    si =1 tu te centres directement dessus avec viewer.getMap().setCenter(....); avec ton zoom approprié
    Merci.

    _____________
    - Le site de l'Observatoire de Haute-Loire (obs43.fr)
    - Voir une vidéo de présentation (2 min.) de l'Observatoire de Haute-Loire

  4. #24
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Sauf que ce que j'ai appliqué (largement aidé par Jérémy) n'a rien à voir avec cela...
    Zeb'...

  5. #25
    Membre chevronné Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Points : 1 843
    Points
    1 843
    Par défaut
    Bonjour,

    je pense que la surcharge n'est pas forcément nécessaire : l'option setZoom devrait suffire. Par contre, il s'agit d'une fonction qui va retourner un niveau de zoom en fonction d'un feature passé en paramètre. Et là, les indications de cmail pourront servir pour récupérer les informations adéquates pour calculer le niveau de zoom. Je m'explique :

    par défaut, setZoom vaut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function(f) { return this.map.getZoom(); }
    elle retourne systématiquement le zoom courant de la carte.

    il faut donc écraser cette fonction par une que l'on va écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    var gazetteer= new Geoportal.Control.LocationUtilityService.GeoNames(
    	new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
    		'PositionOfInterest:OPENLS;Geocode',
    	{
    		formatOptions: {
    		}
    	}
    	),{
    	uiOptions:{title: 'gpControlLocationUtilityService.geonames.title'},
    	  setZoom: function(f) {
                console.log(f) ; // ça c'est pour pouvoir lire dans la console la structure de l'objet f qui porte un résultat de géocodage  
                // ici, on calcule le zoom adéquat
                var z= ... ;
                return z ;
              }
    	}
    );
    nv.addControls([gazetteer]);
    Si ça peut aider, on peut trouver le code de la fonction Geoportal.Control.LocationUtilityService.GeoNames.setZoomForBDNyme ici :

    http://api.ign.fr/geoportail/api/js/...ce/GeoNames.js

    Cette fonction est sensée retourner un niveau de zoom en fonction du type de localisant trouvé. Je ne sais pas si elle marche encore du fait qu'elle n'a pas été mise à jour en fonction des évolutions du service de Géocodage.

  6. #26
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Sauf que ce que j'ai appliqué (largement aidé par Jérémy) n'a rien à voir avec cela...
    Jeremy t'a aidé simplement sur des questions de mise en page (css).
    Là, tu veux plutôt agir sur le comportement de l'api... Il faut donc modifier les sources ou concevoir des actions appropriées. Sauf erreur de ma part, ou mauvaise compréhension de ton problème.
    Merci.

    _____________
    - Le site de l'Observatoire de Haute-Loire (obs43.fr)
    - Voir une vidéo de présentation (2 min.) de l'Observatoire de Haute-Loire

  7. #27
    Membre éclairé Avatar de jrenard
    Homme Profil pro
    Webdesigner / développeur front-end
    Inscrit en
    Septembre 2013
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webdesigner / développeur front-end
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 456
    Points : 894
    Points
    894
    Par défaut
    Citation Envoyé par cmail Voir le message
    Jeremy t'a aidé simplement sur des questions de mise en page (css).
    Là, tu veux plutôt agir sur le comportement de l'api... Il faut donc modifier les sources ou concevoir des actions appropriées. Sauf erreur de ma part, ou mauvaise compréhension de ton problème.
    Je suis entièrement d'accord avec cette réponse. Ce que l'on a pu voir ensemble sur la mise en page est quelque chose de différent de ton problème actuel.
    Développeur Web - Agglo La Rochelle
    Anciennement pôle technique Géoportail - IGN
    Twitter : @dje_renard

  8. #28
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Merci, merci...
    Impec, ça fonctionne.
    Ca donne donc ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    		var gazetteer= new Geoportal.Control.LocationUtilityService.Geocode(
    			new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
    				'StreetAddress:OPENLS;Geocode',
    			{
    				formatOptions: {
    				}
    			}
    			),{
    		    	uiOptions:{title: 'gpControlLocationUtilityService.geocode.title'},
    //				setZoom:Geoportal.Control.LocationUtilityService.Geocode.setZoomForBDNyme
    				setZoom:function(f) 
    					{
    					// ici, on calcule le zoom adéquat
    					var z = 11;
    					return z;
    					}
    			}
    Mais, ce que je voudrai bien comprendre, c'est pourquoi mettre "setZoom:11" ne fonctionne pas ?
    Zeb'...

  9. #29
    Membre chevronné Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Points : 1 843
    Points
    1 843
    Par défaut
    Citation Envoyé par Zebulon777 Voir le message
    Mais, ce que je voudrai bien comprendre, c'est pourquoi mettre "setZoom:11" ne fonctionne pas ?
    L'idée est qu'on puisse calculer dynamiquement le zoom en fonction des résultats (par exemple on ne veut pas mettre le même zoom si le résultat est une "Préfecture" ou un "Lieu-dit habité"). Du coup, on fait ça avec une fonction, ça offre plus de possibilités. Du coup, l'API attend une fonction et dans le code elle tente de faire quelquechose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
      this.setZoom(f) ;
    ...
    Si on a mis setZoom:11, ça va faire : "11(f)", ce qui ne passe pas très bien en termes de programmation.

    Sinon, il y a effectivement moyen d'assouplir l'API pour qu'elle teste le type de ce qu'on a mis pour le paramètre setZoom : si c'est une fonction, on l'invoque ; si c'est un nombre, on sait que c'est un zoom fixe qu'il faut appliquer... On pourrait le faire, mais ce n'est pas le cas pour l'instant.

  10. #30
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Et bien, en tout cas, merci à tous pour votre aide.
    Je vais pouvoir partir en vacances tranquille

    Le retour sera plus agité...
    Zeb'...

  11. #31
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Bonjour tout le monde,

    Je relance ce sujet car je suis confronté à quelques demandes que je n'arrive pas à solutionner.

    - J'utilise "gpControlLocationUtilityService.geocode.title" qui propose donc la rue, la ville et le code postal : est-ce qu'il y aurait moyen de ne faire afficher que la ville et le code postal ?
    - En cas de résultat positif, un petit cercle vert avec une croix indique l'emplacement de la ville recherchée ; est-ce qu'il y a un moyen de modifier dynamiquement cette image ?
    - En cas de résultat positif, est-ce qu'il y a un moyen de forcer l'affichage du nom de la ville ?

    Pour info, voici le code que j'utilise :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    var tbx5 = viewer.getMap().getControlsByClass('Geoportal.Control.ToolBox')[0];
    WCoRech = tbx5.id+'_search';
    var B_Recherche = new Geoportal.Control.Panel({
    	div:OpenLayers.Util.getElement(WCoRech)
    });
     
    var gazetteer= new Geoportal.Control.LocationUtilityService.Geocode(
    	new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
    		'StreetAddress:OPENLS;Geocode',
    	{
    		formatOptions: {
    		}
    	}
    	),{
    		uiOptions:{title: 'gpControlLocationUtilityService.geocode.title'},
    //				setZoom:Geoportal.Control.LocationUtilityService.Geocode.setZoomForBDNyme
    		setZoom:function(f) 
    			{
    			// ici, on calcule le zoom adéquat
    			var z = 11;
    			return z;
    			}
    	}
    );
    Zeb'...

  12. #32
    Membre éclairé Avatar de jrenard
    Homme Profil pro
    Webdesigner / développeur front-end
    Inscrit en
    Septembre 2013
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webdesigner / développeur front-end
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 456
    Points : 894
    Points
    894
    Par défaut
    Bonjour,

    Sur le premier point, il faut passer par une recherche par lieux plutôt que par adresse. Pour cela, remplacer la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'StreetAddress:OPENLS;Geocode',
    Par celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'PositionOfInterest:OPENLS;Geocode',
    Sur le deuxième point, on peut modifier l'image en pointant vers l'URL de l'image de marqueur que l'on souhaite afficher, en modifiant les paramètres du gazeeter à cet endroit là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {
    	formatOptions: {
    	}
    }
    Ajout des paramètres suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {
    	formatOptions: {
    	},
    	marker: /* entrer ici l'URL de l'image */ ,
    	radius: 25 // redéfinition de la taille de l'image (optionnel)
    }
    Quant à la troisième question, je n'ai pas trop compris où tu veux en venir...
    Développeur Web - Agglo La Rochelle
    Anciennement pôle technique Géoportail - IGN
    Twitter : @dje_renard

  13. #33
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Merci pour ta réponse Jérémy, malheureusement, ça ne fonctionne pas...


    1er essai :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    //Ajout du contrôle de recherche avec ADRESSE, VILLE, CODE POSTAL
    var Geocode= new Geoportal.Control.LocationUtilityService.Geocode(
    	new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
    //				'StreetAddress:OPENLS;Geocode',
    		'PositionOfInterest:OPENLS;Geocode',
    	{
    		formatOptions: {
    		}
    	}
    	),{
    		uiOptions:{title: 'gpControlLocationUtilityService.geocode.title'},
    //				setZoom:Geoportal.Control.LocationUtilityService.Geocode.setZoomForBDNyme
    		formatOptions: {
    				marker: "./Images/Recherche2_32x32.png",/* entrer ici l'URL de l'image */ 
    				radius: 25 // redéfinition de la taille de l'image (optionnel)				  
    		},
    		setZoom:function(f) 
    			{
    			var z = 11;// Initialisation du ZOOM en cas de résultat positif
    			return z;
    			}
    	}
    );
    nv.addControls([Geocode]);
    Résultats :
    - toujours la même fenêtre de rechercher contenant rue, ville et code postal et pas celle qui contient uniquement le nom de la ville.
    - mon propre marker ne s'affiche pas.

    2ème essai, je remplace entièrement le code du dessus par celui-ci :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    //Ajout du contrôle de recherche avec VILLE
    var GeoName = new Geoportal.Control.LocationUtilityService.GeoNames(
    new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
    	"PositionOfInterest:OPENLS;Geocode",//layer name
    	{
    	 maximumResponses:100,
    	  formatOptions: {
    	  }
    	}
    ),{
    	drawLocation:true,
    	setZoom: Geoportal.Control.LocationUtilityService.GeoNames.setZoomForBDNyme,
    	autoCompleteOptions: {}
      }
    );
    nv.addControls([GeoName]);
    Résultat : ne fonctionne pas du tout, ça plante, je n'arrive pas à trouver où, mais le bouton de recherche ne s'affiche même pas dans le cartouche !

    Dans le doute, si ça peut t'aider, voici la partie du code concerné :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    // Bouton RECHERCHE PAR NOM DE COMMUNES
    if (P_Pltf != "ACCUEIL") // ON DESACTIVE LA RECHERCHE SUR LA PAGE D'ACCUEIL
    {
    	var tbx5 = viewer.getMap().getControlsByClass('Geoportal.Control.ToolBox')[0];
    	WCoRech = tbx5.id+'_search';
    	var B_Recherche = new Geoportal.Control.Panel({
    		div:OpenLayers.Util.getElement(WCoRech)
    	});
     
      //Ajout du contrôle de recherche avec ADRESSE, VILLE, CODE POSTAL
    //		var Geocode= new Geoportal.Control.LocationUtilityService.Geocode(
    //			new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
    ////				'StreetAddress:OPENLS;Geocode',
    //				'PositionOfInterest:OPENLS;Geocode',
    //			{
    //				formatOptions: {
    //				}
    //			}
    //			),{
    //		    	uiOptions:{title: 'gpControlLocationUtilityService.geocode.title'},
    ////				setZoom:Geoportal.Control.LocationUtilityService.Geocode.setZoomForBDNyme
    //				formatOptions: {
    //						marker: "./Images/Recherche2_32x32.png"/* entrer ici l'URL de l'image */ ,
    //						radius: 25 // redéfinition de la taille de l'image (optionnel)				  
    //				},
    //				setZoom:function(f) 
    //					{
    //					var z = 11;// Initialisation du ZOOM en cas de résultat positif
    //					return z;
    //					}
    //			}
    //		);
    //		nv.addControls([Geocode]);
     
      //Ajout du contrôle de recherche avec VILLE
      var GeoName = new Geoportal.Control.LocationUtilityService.GeoNames(
    	new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
    		"PositionOfInterest:OPENLS;Geocode",//layer name
    		{
    		 maximumResponses:100,
    		  formatOptions: {
    		  }
    		}
    	),{
    		drawLocation:true,
    		setZoom: Geoportal.Control.LocationUtilityService.GeoNames.setZoomForBDNyme,
    		autoCompleteOptions: {}
    	  }
      );
      nv.addControls([GeoName]);
     
    	// Application d'un style au bouton
    	WIconeRech = "./Images/Recherche2.png";
    	var B_RechHTML = document.getElementsByClassName("gpControlLocationUtilityServiceGeocodeItemInactive")[0];
    //		var B_RechHTML = document.getElementsByClassName("gpControlLocationUtilityServiceGeoNamesItemInactive")[0];
    	B_RechHTML.style.background = 'none'; // Permet de ne pas afficher l'image avec le fond de type "bouton"
    	B_RechHTML.style.border = 'none'; // Permet de ne pas afficher l'image avec le fond de type "bouton"
    	B_RechHTML.style.backgroundImage = 'url("'+WIconeRech+'")';
    	B_RechHTML.style.width = "16px";
    	B_RechHTML.style.height = "16px";
    	B_RechHTML.style.position = "absolute";
    	B_RechHTML.style.left = XRech;//"104px";
    	B_RechHTML.style.top = YRech;//"5px";
    	B_RechHTML.style.cursor = "Pointer";
    };
    Non seulement, ça ne fonctionne pas, mais je ne vois pas pourquoi ça fonctionne pour le 1er essai (même si ce n'est pas la bonne fenêtre de recherche) et pourquoi ça plante avec la 2ème ???

    (Ps : je galère avec Firebug, car dés que j'utilise l'outil de débuggage, ça fait planter FF !!!)
    Zeb'...

  14. #34
    Membre éclairé Avatar de jrenard
    Homme Profil pro
    Webdesigner / développeur front-end
    Inscrit en
    Septembre 2013
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webdesigner / développeur front-end
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 456
    Points : 894
    Points
    894
    Par défaut
    Pour ton premier essai, ça ne fonctionne pas parce que tu n'as pas placé le code de ton marqueur au bon endroit. Tu as dupliqué le formatOptions à un endroit où il n'a aucune raison d'apparaître, et tu y as adjoint la définition de ton marqueur alors que ce n'est pas sa place non plus. Du coup, l'interprétation plante car elle trouve des paramètres qu'elle ne devrait pas rencontrer à ces endroits.
    J'ajoute que l'URl de l'image doit être une URL absolue et non relative, ce qui suppose que l'image est déjà hébergée sur Internet.

    Ton code devrait ressembler à ça :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    var tbx5 = viewer.getMap().getControlsByClass('Geoportal.Control.ToolBox')[0];
    WCoRech = tbx5.id+'_search';
    var B_Recherche = new Geoportal.Control.Panel({
    	div:OpenLayers.Util.getElement(WCoRech)
    });
     
    var gazetteer= new Geoportal.Control.LocationUtilityService.Geocode(
    	new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
    		'PositionOfInteret:OPENLS;Geocode',
    	{
    		formatOptions: {
    		},
    		marker: "http/UrlDeMonSite/Images/Recherche2_32x32.png",
    		radius: 25 // redéfinition de la taille de l'image (optionnel)
    	}
    	),{
    		uiOptions:{title: 'gpControlLocationUtilityService.geocode.title'},
    //				setZoom:Geoportal.Control.LocationUtilityService.Geocode.setZoomForBDNyme
    		setZoom:function(f) 
    			{
    			// ici, on calcule le zoom adéquat
    			var z = 11;
    			return z;
    			}
    	}
    );

    Pour ton deuxième essai, le problème se situe à mon avis à cette ligne là :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    setZoom: Geoportal.Control.LocationUtilityService.GeoNames.setZoomForBDNyme,
    puisque la valeur attendue par le paramètre setZoom est un entier et que tu lui donnes à la place une fonction, du coup l'interprétation plante, la suite du code n'est pas interprétée, et le bouton ne s'affiche pas.
    Développeur Web - Agglo La Rochelle
    Anciennement pôle technique Géoportail - IGN
    Twitter : @dje_renard

  15. #35
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Ouf, désolé d'avoir tarder à donner des nouvelles mais je ne suis pas à 100% sur ce projet.

    Donc Merci J pour cette réponse.

    voila ce que j'ai fait et qui ne fonctionne pas :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    var tbx5 = viewer.getMap().getControlsByClass('Geoportal.Control.ToolBox')[0];
    WCoRech = tbx5.id+'_search';
    var B_Recherche = new Geoportal.Control.Panel({
    	div:OpenLayers.Util.getElement(WCoRech)
    });
     
    //Ajout du contrôle de recherche avec VILLE
    var GeoName = new Geoportal.Control.LocationUtilityService.GeoNames(
    new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
    	"PositionOfInterest:OPENLS;Geocode",//layer name
    	{
    	 maximumResponses:100,
    	  formatOptions: {
    	  },
    		marker: "./Images/Recherche2_32x32.png",/* entrer ici l'URL de l'image */
    		radius: 25 // redéfinition de la taille de l'image (optionnel)				  
    	}
    ),{
    		uiOptions:{title: 'gpControlLocationUtilityService.geocode.title'},
    		setZoom:function(f) 
    			{
    			var z = 11;// Initialisation du ZOOM en cas de résultat positif
    			return z;
    			}
      }
    );
    nv.addControls([GeoName]);

    Le bouton qui permet de lancer la recherche ne s'affiche pas, il y a donc quelque chose qui ne lui plait pas quelque part, mais même avec Firebug, je ne trouve pas.
    Zeb'...

  16. #36
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Rhaaaaaaa quel idiot (j'assume, lol )

    A la fin de la petite partie de code que j'ai mis, j'ai oublié d'inverser le commentaire de 2 lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var B_RechHTML = document.getElementsByClassName("gpControlLocationUtilityServiceGeocodeItemInactive")[0];
    //var B_RechHTML = document.getElementsByClassName("gpControlLocationUtilityServiceGeoNamesItemInactive")[0];
    
    au lieu de :
    
    //var B_RechHTML = document.getElementsByClassName("gpControlLocationUtilityServiceGeocodeItemInactive")[0];
    var B_RechHTML = document.getElementsByClassName("gpControlLocationUtilityServiceGeoNamesItemInactive")[0];
    Et maintenant, ça fonctionne...

    Merci encore une fois pour ton aide précieuse.

    Maintenant que ça fonctionne, 1 petite question pour affiner le tout : lorsqu'on entre une ville, ça affiche une liste, dans laquelle on sélectionne précisément la recherche, comment afficher ce qui a été sélectionné à côté de la punaise qui s'affiche ?
    Zeb'...

  17. #37
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Je me permet de relancer le sujet pour la dernière question : lors d'une recherche, comment afficher (récupérer ?) le nom qui a été saisie et / ou le nom qui a été sélectionné dans la liste de sélection de la recherche ?

    Marchiiiiiii...
    Zeb'...

  18. #38
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Je relance car je n'ai toujours pas trouvé comment récupérer et afficher le nom qui a été saisie et / ou le nom qui a été sélectionné dans la liste de sélection de la recherche ?
    Zeb'...

Discussions similaires

  1. [Recherche Logiciel] Générateur de fonts texturées
    Par Rayek dans le forum Développement 2D, 3D et Jeux
    Réponses: 9
    Dernier message: 05/08/2008, 11h33
  2. Recherche un générateur de code C#.net
    Par sobjp2025 dans le forum C#
    Réponses: 4
    Dernier message: 02/06/2008, 15h00
  3. [Outil] Recherche générateur de SQL - Freeware
    Par fandor88 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 10/07/2006, 10h43
  4. Recherche Générateur de vue et table wyswyg
    Par kisitomomotene dans le forum Oracle
    Réponses: 6
    Dernier message: 13/06/2006, 12h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo