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 :

géoportail et base de donnée


Sujet :

IGN API Géoportail

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut géoportail et base de donnée
    Bonjour,
    Je suis étudiant et en ce moment je suis en stage.
    J'ai fait une première cartographie avec l'API géoportail et des coordonnées dans un fichier .kml mais cette fois on me demande d'utiliser une base de données situées dans un serveur de l'entreprise mais je ne sais pas du tout comment procéder et je n'ai rien trouvé qui me l'explique en cherchant sur google.
    Quelqu'un peut il m'aider s'il vous plait ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 128
    Points : 1 764
    Points
    1 764
    Par défaut API Google Maps
    la problématique sur l'api de Google est la même et il existe un exemple comment faire bien documenté http://code.google.com/apis/maps/art...hpsqlajax.html

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut géoportail et base de données
    Bonjour,
    Un grand merci pour ta réponse mga_geo
    Je vais utiliser ce que tu me donne pour avancer du coté de la base de données.
    J'ai une autre question, il semblerait qu'il faille un proxy puisque la base de données n'est pas stockée sur le même serveur que le site.
    Pour le moment j'utilise xampp pour travailler en local mais le proxy d'openlayers
    http://trac.openlayers.org/browser/t...ples/proxy.cgi
    J'ai quelques problèmes pour l'utiliser, à chaque test, il me retourne un message d'erreur:
    couldn't create child process: 720002: proxy.cgi
    Donc si quelqu'un à une idée, merci de me le dire.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 128
    Points : 1 764
    Points
    1 764
    Par défaut Proxy
    Si la requête "base de données" est effectuée par un script (php, ...) situé sur le même serveur que la page html, il n'y a pas besoin de proxy.
    Il faut juste que les interrogations sql soient autorisées à partir de ce serveur.
    Le script de proxy écrit en php et diffusé par Didier dans ce fil http://www.developpez.net/forums/d91...n/#post5181848
    fonctionne parfaitement (c'est mon environnement de tests).

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut api google map
    Super, j'ai fait comme ils disent dans le tuto que tu m'as passé et c'est super, tout marche comme il faut, je vais maintenant essayer de le basculer sous géoportail.
    Pour le proxy il me semble qu'on en aura besoin mais je ne suis pas encore sûre.
    Merci beaucoup pour ton aide, elle m'a été très précieuse.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut afficher les markers
    Il me reste un petit problème, sous googlemap j'arrive a faire ce que je souhaite mais sous geoportail je n'arrive pas à afficher les marqueurs, voici le code html de ma page:

    [I]<html>
    <head>
    <title>test API Geoportail</title>
    <meta http-equiv="X-UA-Compatible" content="IE=7"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <script type="text/javascript"
    src="http://api.ign.fr/geoportail/api?v=1.0-e&amp;key=clef&amp;instance=VISU&amp;includeEngine=true&amp;">
    </script>
    <script type="text/javascript">
    function initGeoportalMap() {
    geoportalLoadVISU("GeoportalVisuDiv", "normal");
    if (VISU) {
    VISU.addGeoportalLayer('ORTHOIMAGERY.ORTHOPHOTOS:WMSC',{visibility:true});
    VISU.addGeoportalLayer('GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC',{opacity:0.5, visibility:false});
    VISU.addGeoportalLayer('CADASTRALPARCELS.PARCELS',{visibility:true});
    var proj = new OpenLayers.Projection(VISU.getMap().projection);
    var geographic = new OpenLayers.Projection('EPSG:4326');
    var centre = new OpenLayers.LonLat(-122.341861, 47.614495).transform(geographic,proj);
    VISU.getMap().setCenter(centre,7);

    function GIcon(){
    var iconBlue = new GIcon();
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_black.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);
    }

    function load() {
    if (GBrowserIsCompatible()) {
    // Change this depending on the name of your PHP file
    GDownloadUrl("BDD.php", function(data) {
    var xml = GXml.parse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) {
    var name = markers[i].getAttribute("name");
    var address = markers[i].getAttribute("address");
    var type = markers[i].getAttribute("type");
    var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
    parseFloat(markers.getAttribute("lng")));
    var marker = createMarker(point, name, address, type);
    map.addOverlay(marker);
    }
    });
    }
    }

    function createMarker(point, name, address, type) {
    var marker = new GMarker(point, iconBlue);
    var html = "<b>" + name + "</b> <br/>" + address;
    GEvent.addListener(marker, 'click', function() {marker.openInfoWindowHtml(html);});
    return marker;
    }
    }
    }
    </script>
    </head>
    <body>
    <div id="GeoportalVisuDiv" style="width:1024px;height:768px;"></div>
    </body>
    </html>



    Si quelqu'un trouve ce qui cloche, en attendant je continu de chercher.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 128
    Points : 1 764
    Points
    1 764
    Par défaut
    Il ne faut pas utiliser les fonctions de l'API GoogleMaps (celles commençant par G) pour afficher des marqueurs dans l'API Geoportail!

  8. #8
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Voici la trame pour afficher des markers (au sens Google) avec l'API , trame à adapter (il y a plusieurs threads dans ce forum sur ce sujet) :

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>basic-markers.html</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico" />
        <script
            type="text/javascript"
            src="http://api.ign.fr/geoportail/api?v=1.0-e&amp;key=CLEF&amp;instance=viewer&amp;">
        <!--
          -->
        </script>
        <script type="text/javascript">
        <!--
        viewer= null;
        function initGeoportalMap() {
            OpenLayers.Lang.setCode('fr');
            if (typeof(geoportalLoadviewer)!='function') {
                OpenLayers.Console.error('Création de la carte échouée');
                return;
            }
            geoportalLoadviewer("viewerDiv","normal");
            if (!viewer) {
                OpenLayers.Console.error('Création de la carte échouée');
                return;
            }
            viewer.addGeoportalLayers();
            viewer.getMap().setCenterAtLonLat(4.25,45.78, 8);
            var markers= new OpenLayers.Layer.Markers("Repères");
            viewer.getMap().addLayer(markers);
            var size= new OpenLayers.Size(100,100);
            var offset= new OpenLayers.Pixel(-(size.w/2), -(size.h/2));//centered
            var icon = new OpenLayers.Icon('path/to/cross.gif',size,offset);
            var ll= new OpenLayers.LonLat(4.25,45.780);
            ll.transform(viewer.getMap().OpenLayers.Projection.CRS84, viewer.getMap().getProjection());
            markers.addMarker(new OpenLayers.Marker(ll,icon));
        }
          -->
        <style type="text/css">
        <!--
        h1 {
            text-align:center;
            font-size:0.75em;
            font-style: italic;
        }
        div#example_explain {
            margin:0px 0px 10px 0px;
            border: thin solid #595E61;
            padding:0;
            width:600px;
            position:relative;
            left:0px;
            top:0px;
            text-align:justify;
            font-size: 0.75em;
            font-style: italic;
            color: #595E61;
        }
          -->
        </style>
    </head>
    <body>
        <h1 id="example_title">Une carte avec un marker</h1>
        <div id="viewerDiv" style="width:600px; height:600px;"></div>
        <div id="example_explain">Positionnement d'un marqueur</div>
    </body>
    </html>

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut VISU
    J'avais fait cette page pour afficher des couches a partir de fichiers kml mais je voudrais passer par un fichier php comme avec la fonction GDownloadUrl.

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    <html>
    <head>
      	<title>API Geoportail test</title>
      	<meta http-equiv="X-UA-Compatible" content="IE=7"/>
      	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <!-- données personnelles permettant l'appel à l'API geoportail -->
      	<script	src="http://api.ign.fr/geoportail/api?v=1.0-e&amp;key=clef&amp;instance=VISU&amp;includeEngine=true&amp;"> </script>
    <!-- contenu javascript -->
     	<script type="text/javascript">
    // affichage de pop up
      	function showPopup(feature) {
            if (feature) {
                if (!feature.popup) {
                    var ll= feature.geometry.getBounds().getCenterLonLat();
                    var me= VISU.getMap().getExtent();
                    var inView= me.containsLonLat(ll,false);
                    if (!inView) {
                        ll= me.getCenterLonLat();
                    }
                    feature.popup= new OpenLayers.Popup.FramedCloud(
                        "chicken",
                        ll,
                        null,
                        "<div style='font-size:1.0em;line-height:1.5em;'><p style=''><b>" + feature.attributes.name + "</b><br/>" + feature.attributes.description + "</div>",
                        null,
                        false);
                }
                if (feature.popup) {
                    VISU.getMap().addPopup(feature.popup,true);
                }
            }
        }
    // dissimulation de pop up
      	function hidePopup(feature) {
            if (feature && feature.popup) {
                feature.popup.destroy();
                feature.popup= null;
            }
        }
    // affichage de la fenêtre Géoportail  	
        function initGeoportalMap() {
          	geoportalLoadVISU("GeoportalVisuDiv", "normal");
       
          	if (VISU) {
    // affichage actif de l'Ortho-imagerie
        	  	VISU.addGeoportalLayer('ORTHOIMAGERY.ORTHOPHOTOS:WMSC',{visibility:true});
    // affichage actif de la carte IGN avec une opacité de 30%
        	  	VISU.addGeoportalLayer('GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC',{opacity:0.3, visibility:true});
    // affichage non actif des parcelles cadastrales
        	  	VISU.addGeoportalLayer('CADASTRALPARCELS.PARCELS',{visibility:false});
    
        	  	var styleLycee = new OpenLayers.StyleMap({
    // affichage de l'image marker.png quand l'icone n'est pas séléctionnée
     	  	     	"default": new OpenLayers.Style({
         	  	    	externalGraphic: "marker.png",
     					pointRadius: 12 
     	  	        }),
    // affichage de l'image markerX.png quand l'icone est séléctionnée
      	            "select": new OpenLayers.Style({
       	  	           	externalGraphic: "markerX.png",
    					pointRadius: 12 
      	            })
       	  	    });
    // ajout d'une couche nommée région qui appel le fichier region.kml
    			VISU.getMap().addLayer(
        	    	"KML",
        	    	"Région",
        	    	"region.kml",
        	    	{
    // affichage actif par defaut
            	    	visibility : true,
            	    	styleMap : styleLycee
        	    	},
        	    	{
            	    	onSelect : showPopup,
            	    	onUnselect : hidePopup
        	    	}
        	   	);
    // ajout d'une couche nommée lycées qui appel le fichier lycees.kml
        	  	VISU.getMap().addLayer(
        	    	"KML",
        	    	"Lycées",
        	    	"lycee.kml",
        	    	{
    // affichage actif par defaut
            	    	visibility : true,
            	    	styleMap : styleLycee
        	    	},
        	    	{
            	    	onSelect : showPopup,
            	    	onUnselect : hidePopup
        	    	}
        	   	);
    			
        	  	var proj = new OpenLayers.Projection(VISU.getMap().projection);
    			var geographic = new OpenLayers.Projection('EPSG:4326');
    // centrage de la carte
    		  	var centre = new OpenLayers.LonLat(4.359,48.952).transform(geographic,proj);
    // séléction du niveau de zoom
          	  	VISU.getMap().setCenter(centre,7);
          	}   
        }
    	</script>
    </head>
    <body>
      <div id="GeoportalVisuDiv" style="width:1024px;height:768px;"></div>
    </body>
    </html>
    Est ce qu'il y aurait une solution ?

  10. #10
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par BDDGeoportail Voir le message
    Est ce qu'il y aurait une solution ?
    As-tu vraiment recherché sur ce forum car le nombre de discussion sur :

    * j'accède à une base de données géo-référencée;
    * pour chaque objet, un marker est construit
    * je le fais en PHP

    est relativement important !

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut fin
    Je me suis bien renseigné sur les autres forums mais j'aurais préféré faire d'une autre manière; finalement, n'ayant rien trouvé de mieux, j'ai appliqué ce qui était dit.

    Merci Beaucoup pour votre aide, mon projet est réussi

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

Discussions similaires

  1. Problème Base de données et CRecordSet
    Par LE CHAKAL dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2002, 11h59
  2. connexion base de donné
    Par saidi dans le forum MFC
    Réponses: 3
    Dernier message: 07/08/2002, 22h22
  3. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  4. Bases de données
    Par dev dans le forum C++Builder
    Réponses: 4
    Dernier message: 01/07/2002, 22h55
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18

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