#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