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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Tue 07 May 2019 15:17

aiaiai
Juste Inscrit !
Date d'inscription: 25 Apr 2019
Messages: 8

Du code Open Layer à python pour QGIS

Bonjour,
j'ai un code Javascript qui calcul et applique les cercles proportionnels sur une carte
Je voudrais ré-écrire ce code mais en python pour QGIS
débutante sur python (PyQgis), pourriez vous m'aider? svp

Voici le code JS:

Code:

// PREPARATION DE LA COUCHE "SP"

var style_SP = new OpenLayers.Style({pointRadius:'${RAYON}',strokeColor:'black',strokeWidth:0.5,strokeOpacity:1.0,fillOpacity:0.8,fillColor:'#4281D4'});
var style_couche_SP = new OpenLayers.StyleMap({'default':style_SP});
var couche_SP = new OpenLayers.Layer.Vector('Couche SP',{styleMap:style_couche_SP});
carte.addLayer(couche_SP);

// PEUPLEMENT DE LA COUCHE "SP"

function peupler_couche_SP(couche,champ,rayon_max)
{
    // DETERMINATION DE LA VALEUR MAXIMALE
    var valeurs = [];
    for(var i in couche['features'])
    {
        valeurs.push(couche['features'][i]['attributes'][champ]);
    }
    var valeur_max = Math.max.apply(Math,valeurs);

    // CONSTRUCTION DES ENTITES VECTORIELLES
    var centroides = [];
    for(var i in couche['features'])
    {
        var centroide = couche['features'][i]['geometry'].getCentroid();
        var rayon = Math.sqrt(couche['features'][i]['attributes'][champ])*(rayon_max/(Math.sqrt(valeur_max)));
        centroides.push(new OpenLayers.Feature.Vector(centroide,{RAYON:rayon}));
    }
    couche_SP.destroyFeatures();
    couche_SP.addFeatures(centroides);
}

Merci

Hors ligne

 

Pied de page des forums

Powered by FluxBB