Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 01 February 2013 12:58

sorexal
Juste Inscrit !
Date d'inscription: 1 Feb 2013
Messages: 1

Centrer et zoomer sur un polygone d'un kml, api google maps, javascrip

Bonjour,
Je suis débutant en informatique et je me suis attelé a l'api googlemaps.
Je voudrais zoomer sur un polygone en fonction de sa taille alors que ces informations sont dans un kml.
Pour l'instant je n'ai que trouver un moyen de faire: zoomer sur mon curseur lorsqu'il se situe dans un polygone mais la valeur du zoom est fixe et la taille des polygone varie assez.

google.maps.event.addListener(kmlLayer3, 'click', function(kmlEvent) {
        var text = kmlEvent.featureData.description;
            map.panTo(kmlEvent.latLng);
        map.setZoom(14);
        showInDiv(text);

    });   

Je ne sais pas si j'ai été clair mais merci de me répondre.

Dernière modification par sorexal (Fri 01 February 2013 16:26)

Hors ligne

 

#2 Fri 01 February 2013 17:54

gvellut
Participant actif
Lieu: Annecy
Date d'inscription: 13 Apr 2006
Messages: 112
Site web

Re: Centrer et zoomer sur un polygone d'un kml, api google maps, javascrip

Ce n'est pas possible avec l'API d'après la doc : https://developers.google.com/maps/docu … ureDetails . En fait le KML est lu sur un serveur de Google qui s'occupe du rendu. Du coup le navigateur ne charge pas le KML original. Cela permet de pouvoir lire même des gros KML sans faire ramer le navigateur.

L'alternative est d'effectuer le parsing du KML toi-meme (et de ne pas utiliser google.maps.KMLLayer de l'API) : par exemple, il y a cette librairie qui devrait te permettre de faire ça : http://code.google.com/p/geoxml3/ (tu peux aussi mixer les 2, par ex continuer a utiliser KMLLayer pour le rendu et lire le KML pour l'étendu de tes polygones)

Hors ligne

 

#3 Mon 25 February 2013 22:55

thinkpod
Participant occasionnel
Date d'inscription: 27 Dec 2009
Messages: 36

Re: Centrer et zoomer sur un polygone d'un kml, api google maps, javascrip

gvellut a écrit:

Ce n'est pas possible avec l'API d'après la doc : https://developers.google.com/maps/docu … ureDetails . En fait le KML est lu sur un serveur de Google qui s'occupe du rendu. Du coup le navigateur ne charge pas le KML original. Cela permet de pouvoir lire même des gros KML sans faire ramer le navigateur.

L'alternative est d'effectuer le parsing du KML toi-meme (et de ne pas utiliser google.maps.KMLLayer de l'API) : par exemple, il y a cette librairie qui devrait te permettre de faire ça : http://code.google.com/p/geoxml3/ (tu peux aussi mixer les 2, par ex continuer a utiliser KMLLayer pour le rendu et lire le KML pour l'étendu de tes polygones)


Pour la premiere methode donc le fichier kml est uploadé sur les serveur de Google. C'est problematique s'il s'agit de données sensibles. Je crois que mapserver 6 permet de générer du kml en fonction de l'emprise comme ca cela evite de tout charger le fichier kml.




Openlayers aussi permet de gerer du kml  : http://openlayers.org/dev/examples/sundials.html ,
est-ce que le kml est passé aux serveur google?

var sundials = new OpenLayers.Layer.Vector("KML", {
                projection: map.displayProjection,
                strategies: [new OpenLayers.Strategy.Fixed()],
                protocol: new OpenLayers.Protocol.HTTP({
                    url: "kml/sundials.kml",
                    format: new OpenLayers.Format.KML({
                        extractStyles: true,
                        extractAttributes: true
                    })
                })
            });

Dernière modification par thinkpod (Tue 26 February 2013 10:18)

Hors ligne

 

Pied de page des forums

Powered by FluxBB