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 :

Utilisation du service de geocoding hors carte


Sujet :

IGN API Géoportail

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Utilisation du service de geocoding hors carte
    Bonjour,

    Est-il possible d'utiliser l'api de geocoding de l'IGN (Geoportal.Layer.OpenLS.Core.LocationUtilityService) javascript, sans pour autant utiliser la carte IGN ?

    J'ai testé plusieurs solutions, dont celle-ci :

    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
    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
    window.onload= function() {
    					alert('start');
    					
    					gnSuccess= function(request) { alert('ok'); }
    					gnFailure= function(request) { alert('ko'); }
    					
    					var geocodeLayer = new Geoportal.Layer.OpenLS.Core.LocationUtilityService(
    						'StreetAddress:OPENLS;Geocode',//layer name
    						{
    							maximumResponses:100,
    							formatOptions: {
    							},
    							// define your own picto instead of default:
    							marker:"http://maps.gstatic.com/intl/fr_fr/mapfiles/ms/icons/blue-dot.png"
    						}
    					);
    					
    					// Retrieve street, city and postal code :
    					var v= OpenLayers.String.trim("3 rue montgrand, marseille");
    					if (v=='') { return false; }
    					var scp= v.split(',');
    					// last one is city
    					// before-last is postal code if more than 2 fields
    					// all other fields are joined for street
    					if (scp.length<=1) { return false; }
    					var city= OpenLayers.String.trim(scp.pop());
    					if (city=='') { return false; }
    					var pc= '';
    					if (scp[scp.length-1].match(/[0-9]{5}/)) {
    						pc= OpenLayers.String.trim(scp.pop());
    					}
    					v= OpenLayers.String.trim(scp.join(','));
    					var s= new Geoportal.OLS.Street();
    					s.name= v;
    					var sa= new Geoportal.OLS.StreetAddress();
    					sa.addStreet(s);
    					var a= new Geoportal.OLS.Address(this.countryCode);
    					a.streetAddress= sa;
    					var p= new Geoportal.OLS.Place({
    						'classification':'Municipality',
    						'name':city
    					});
    					a.addPlace(p);
    					a.postalCode= new Geoportal.OLS.PostalCode({'name':pc});
    					
    					//send request to OpenLS service :
    					geocodeLayer.GEOCODE(
    						[a],
    						{
    							onSuccess: gnSuccess,
    							onFailure: gnFailure
    						});
    					a.destroy()
    					a= null;
    				
    				
    				
    				};
    Mais j'obtiens une erreur :
    Uncaught TypeError: Cannot read property 'version' of null Geoportal.js:138
    Merci pour vos lumières sur le sujet.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 442
    Points : 502
    Points
    502
    Par défaut
    Il est possible d'utiliser le service de géocodage du Géoportail en dehors de l'une des API du Géoportail (en JavaScript, en Flash ou 3D).
    Attention, les conditions d'utilisation indiquent que tout géocodage d'une adresse doit s'accompagner d'un déplacement sur la carte et d'un appel au service de consultation d'images du Géoportail (WMS ou WMTS). Par ailleurs, il n'est pas possible de conserver en mémoire le résultat du géocodage. Ces deux dernières restrictions ne s'appliquent pas dans le cas d'un accès professionnel (pour mission de service public ou en payant à la transaction).

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci pour cette réponse. Je suis effectivement dans le cas d'une mission de service public.

    Par quel biais peut-on utiliser ce service en js ? Peut-on utiliser la classe Geoportal.Layer.OpenLS.Core.LocationUtilityService ? Y'a-t-il une autre classe ou méthode pour utiliser ce service ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 442
    Points : 502
    Points
    502
    Par défaut
    Est-ce que la page http://api.ign.fr/documentation-technique-api t'aide suffisamment?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Est-ce que tu parles de la partie "Moteurs de recherche (expert)" ?

    Effectivement j'ai réussi à l'utiliser en JS avec Jquery. Par contre ce qui m’embête c'est qu'il faut discuter via XML. Ne peut-on pas utiliser les classes JS de l'API pour éviter de construire / parser le XML "manuellement" ?

  6. #6
    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,

    Effectivement j'ai réussi à l'utiliser en JS avec Jquery. Par contre ce qui m’embête c'est qu'il faut discuter via XML. Ne peut-on pas utiliser les classes JS de l'API pour éviter de construire / parser le XML "manuellement" ?
    Oui on peut, à l'aide du parser : Geoportal.Format.XLS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    var parser= new Geoportal.Format.XLS() ;
    var resp= parser.read(doc) ; // doc est le document XML retourné
    console.log(resp) ;

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci à vous pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utiliser un service de windows
    Par anisj1m dans le forum Windows
    Réponses: 3
    Dernier message: 21/02/2007, 15h22
  2. Réponses: 5
    Dernier message: 26/10/2006, 09h23
  3. Utiliser un service web dans une page ASP
    Par REMACC1 dans le forum ASP
    Réponses: 2
    Dernier message: 30/08/2006, 10h17
  4. utilisation integration services MSSS05
    Par Cape31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/05/2006, 17h37
  5. Réponses: 1
    Dernier message: 25/11/2005, 22h30

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