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

APIs Google Discussion :

Transparence fichier KML [Google Maps]


Sujet :

APIs Google

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut Transparence fichier KML
    Hello !

    J'ai un fichier kml qui contient des polygones à afficher sur une carte google maps, et j'aimerai pouvoir ajouter un slider permettant de régler l'opacité des polygones.

    En faisant quelques recherches j'ai cru comprendre qu'il n'est pas possible de modifier dynamiquement la transparence du kml via les outils fournis par Google, mais je n'ai pas trouvé de solution à mon problème.
    Est il possible d'imaginer transformer le kml en image (.png ?) pour ensuite pouvoir modifier sa propriété css opacity ?

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonsoir,
    si à partir des points kml tu réalises des polygones, au sens googlegoogle.maps.Polygon, tu peux jouer sur l'option strokeOpacity.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Non je ne crée pas de polygones au sens "google", ils sont définis dans le kml.

    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
    <Placemark>
             <name><![CDATA[COMMERCIALISE]]></name>
             <Snippet maxLines="2"></Snippet>
             <description><![CDATA[]]></description>
             <styleUrl>#COMMERCIALISE</styleUrl>
             <Polygon>
               <extrude>0</extrude>
               <altitudeMode>clampedToGround</altitudeMode>
               <outerBoundaryIs>
               <LinearRing>
                 <coordinates>
                   3.4373377080563,46.091079560964,0
                   3.4378974772501,46.092169923969,0
                   3.4371186217146,46.092340392815,0
                   3.4373116695894,46.092730244007,0
                   3.4373797525577,46.092873902942,0
                   3.4374628359702,46.093026693521,0
                   3.4377304384477,46.093586942573,0
                   3.4374341311959,46.093735183763,0
                   3.43710386712,46.093079673229,0
                   3.4367561378268,46.093175839032,0
                   3.4364114244255,46.092537992179,0
                   3.4360354767031,46.091820040221,0
                   3.4354360351408,46.091923806031,0
                   3.4350653256973,46.091170750365,0
                   3.4350680398346,46.091158353489,0
                   3.4356719069733,46.091127738531,0
                   3.4360728790764,46.091101157152,0
                   3.4373377080563,46.091079560964,0
                 </coordinates>
               </LinearRing>
               </outerBoundaryIs>
             </Polygon>
           </Placemark>
           <Placemark>
    Et ensuite tout ce que je fais c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var kml = new google.maps.KmlLayer('test.kml');
    kml.setMap(map);
    Mais s'il y a une autre méthode, je suis preneur

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    récupérer le points, via une lecture standard d'un fichier XML, et créer ton objet polygone.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Merci effectivement j'ai fait comme ça. Je mets le code si ça peut servir à quelqu'un. J'ai utilisé JQuery pour parser le xml et le slider.

    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
     
    $.ajax({
    		type: "GET",
    		url: "zones.xml",
    		dataType: "xml",
    		complete : function(data, status) {
     
    			var xmlDoc = data.responseXML;
     
    			$(xmlDoc).find("Placemark").each(function()
    			{
    				coordinates = $(this).find('coordinates').text();
    				coords = coordinates.split(',0');
    				var coordsArray = []; // tableau des coordonées
     
    				for (j=0;j<coords.length-1;j++)
    				{
    					coord = coords[j].split(',');
    					y = coord[0].split(',');
    					x = coord[1].split(',');
    					point = new google.maps.LatLng(x,y);
    					coordsArray.push(point);
    				} 
     
    				zone = new google.maps.Polygon({
    					paths: coordsArray,
    					strokeColor: "#000000",
    					strokeOpacity: 1,
    					strokeWeight: 0.5,
    					fillColor: "#FF0000",
    					fillOpacity: 0.7
    				  });
     
    				gzones.push(zone);
    				zone.setMap(map);
    			});
    		}});
     
                   //Creation d'un slider jquery pour regler l'opacité
    		$("#slider").slider({min:0,max:100,value:70, change:function(event,ui){
    			opacity=$("#slider").slider('value')/100;
    			for (var i=0; i<gzones.length; i++) {
    				gzones[i].setOptions({fillOpacity: opacity,strokeOpacity:opacity});
    			}
    		}});
    Maintenant le dernier soucis est que l'affichage de la carte est très lent sur IE, alors que c'est quasi immédiat sous FF ou Chrome. Il a du mal avec le "parsage" du xml on dirait.

    A noter aussi que j'ai du modifier l'extension du fichier zones.kml en zones.xml, sinon IE ne voulait pas en entendre parler alors qu'encore une fois ça ne posait pas de soucis à FF ou Chrome.

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

Discussions similaires

  1. fichier kml à partir d'Excel pour Google Earth
    Par lucy22 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/02/2013, 15h25
  2. combo box en javascript _ fichiers KML
    Par Jijudu dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/11/2008, 18h43
  3. Construction d'un fichier kml
    Par maxime8687 dans le forum MATLAB
    Réponses: 6
    Dernier message: 22/02/2008, 15h27
  4. Réponses: 2
    Dernier message: 26/04/2007, 18h17

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