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 Wed 03 April 2013 12:33

jean11
Participant actif
Date d'inscription: 15 Jan 2012
Messages: 51

[Php_mapscript] Création de point

Bonjour à tous,

A partir d'OpenLayers, je récupère des coordonnées de points que j'aimerai insérer (dessiner) sur la carte que mapscript me génère.

J'ai lu la documentation de php_mapscript sur le site de Mapserver (http://mapserver.org/fr/mapscript/php/index.html) et je pensais avoir trouvé mon bonheur avec les commandes suivantes :

Code:

for($i = 0;$i < count($etiquette); $i++)
{
    $point = ms_newPointObj();
            
    $point->setXY($etiquette[$i]['lon'],$etiquette[$i]['lat']);
            
    $layer = $map->getLayerByName($map_layers[0]);
            
    $point->draw($map, $layer,$carte,$i,$etiquette[$i]['label']);
            
    $carte_url=$carte->saveWebImage();
}

La variable $carte est géré un peu plus haut dans mon code. En fait, j'obtiens l'image de ma carte comme avant mais les points n'ont pas été crées. 

Je me demande également comment les points sont censés être affiché puisque je ne paramètre aucune commande de style ?

Serait-il judicieux de créer une nouvelle couche et d'y insérer ces points ?

Merci d'avance pour votre aide.

Dernière modification par jean11 (Wed 03 April 2013 12:34)

Hors ligne

 

#2 Thu 04 April 2013 10:44

jean11
Participant actif
Date d'inscription: 15 Jan 2012
Messages: 51

Re: [Php_mapscript] Création de point

Voici une solution :

Code:

function createLayerLabel($tab_etiquette, $layer_name, $layer_projection, $name_symbol)
{
        global $map;
        global $carte;
        
        // creation de la couche temporaire
        $point_layer = ms_newLayerObj($map); 
        $point_layer->set("name", $layer_name); 
        $point_layer->set("type", MS_LAYER_POINT); 
        $point_layer->set("status", "ON");
        $point_layer->setProjection($layer_projection);  
        
        // creation de la classe et du style pour la couche 
        $point_class = ms_newClassObj($point_layer); 
        $point_style = ms_newStyleObj($point_class);
        $point_symbol = $map->getSymbolByName($name_symbol); 
        $point_style->set("symbol", $point_symbol); 
        $point_style->color->setRGB(250,50,0); 
        $point_style->set("size", 20);  
        
        
        for($i = 0;$i < count($tab_etiquette); $i++)
        {
            $point = ms_newPointObj();
            
            $point->setXY($tab_etiquette[$i+1]['lon'],$tab_etiquette[$i+1]['lat']);
            
            $point->draw($map,$point_layer,$carte,0,$tab_etiquette[$i+1]['label']);
        }
        
    }

Suite à ce code, j'essaye d'afficher le texte attribuer à chaque points (c'est le dernier paramètre de la méthode draw). J'ai testé beaucoup de chose mais aucune ne m'ont affiché des étiquettes. J'ai vu que ce post traité de la même question : http://www.forumsig.org/showthread.php/ … -pas-label
mais ce dernier est resté sans réponse.

Si quelqu'un à un petite idée.

Dernière modification par jean11 (Fri 05 April 2013 10:57)

Hors ligne

 

Pied de page des forums

Powered by FluxBB