Bonjour,
je souhaiterai savoir si c'est possible de changer de couleur a ma couche publié sur Api Géoportail. si ya une fonction ou un code qui me donner cette option
cordialement
Bonjour,
je souhaiterai savoir si c'est possible de changer de couleur a ma couche publié sur Api Géoportail. si ya une fonction ou un code qui me donner cette option
cordialement
Tu peux être plus explicite ?
Quel type de couche ?
Une page pour voir ?
Si c'est du vecteur, les styles sont là, c'est cela vient de WMS, les SLD sont là aussi !
bonjour,
les couches sont des vecteurs provenant de goeserver j'ai publié sur l'api geoportail à l'aide du service wms maintenant je souhaiterai savoir si ya la possibilité de donner a l'utilisateur le moyen de changer lui même ses couleurs .. je suis vraiment bloqué a se niveau.
le standard supporte le paramètre SLD/SLD_BODY permettant à un utilisateur d'envoyer sa propre symbologie.
C'est un bon moyen d'écrouler un service WMS quant le schéma des données est complexe par des règles cartographiques bien tordues ...
Je conseille plutôt de fabriquer des styles pré-définis et de la mettre à disposition (via l'opération GetCapabilities) et de fermer le support du SLD/SLD_BODY.
ok.. mon souci se pose sur se code je ne connais pas utilisé le service Getcapabilities je ne sais même pas ou commencer je suis entrain de lire l'aide mais je m'ensort pas .
voici mon code :
#
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- coding: utf-8 -->
<head>
<title>API TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico" />
<script type="text/javascript" src="http://api.ign.fr/geoportail/api?v=1.1-e&key=416170750810941279&instance=viewer&includeEngine=true&"><!-- --></script>
<script type="text/javascript">
<!--
viewer = null;
function initGeoportalMap() {
if (typeof(geoportalLoadviewer) != 'function') {
OpenLayers.Console.error(OpenLayers.i18n('new.instance.failed'));
return;
}
geoportalLoadviewer("viewerDiv", "normal", null, null, null, '/geoportail/mgaProxy.php' + '?url=');
if (!viewer) {
OpenLayers.Console.error(OpenLayers.i18n('new.instance.failed'));
return;
}
kbControl = viewer.getMap().getControlsByClass(OpenLayers.Control.KeyboardDefaults.prototype.CLASS_NAME)[0];
viewer.addGeoportalLayers(['GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC','ORTHOIMAGERY.ORTHOPHOTOS',]);
var kml = viewer.getMap().addLayer("http://localhost:8080/API_TEST/code_wms_geoserver",
{
visibility: false
});
viewer.getMap().addLayer(
"WMS",
"zone3",
"http://localhost:8080/geoserver/wms",
{
layers: 'zone_3',
format: 'image/png',
transparent:'true',
},
{
singleTile: true,
projection: 'EPSG:4326',
units: 'degrees',
isBaseLayer: false,
visibility: false,
panMapIfOutOfView: true
});
viewer.getMap().addLayer(
"WMS",
"zone2",
"http://localhost:8080/geoserver/wms",
{
layers: 'zone_2',
format: 'image/png',
transparent:'true',
},
{
singleTile: true,
projection: 'EPSG:4326',
units: 'degrees',
isBaseLayer: false,
visibility: false,
panMapIfOutOfView: true
});
var ll = new OpenLayers.LonLat(2.340965,48.857960);
ll.transform(OpenLayers.Projection.CRS84, viewer.getMap().getProjection());
viewer.getMap().setCenter(ll, 14);
}
-->
</script>
</head>
<body onload="initGeoportalMap();">
<div id="viewerDiv" style="width:98%;height:95%"></div>
</body>
</html>
#
si vous pouvez m'orienter ou m'aidé dans se sens je suis vraiment bloqué
comme sa je pourrai suivre vos conseils pour faire des brique -pré définie
pour permettre a l'utilisateur de pouvoir changer de couleur sur des couches
Cordialement
Comme d'habitude faut faire simple d'abord :
1- défini un style dans la console d'admin Geoserver (éditeur SLD);
2- utilise-le via le paramètre SLD des WMS :
3- fabriques-en d'autres ... et teste les de la même façon;
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 viewer.getMap().addLayer( "WMS", "zone3", "http://localhost:8080/geoserver/wms", { layers: 'zone_3', format: 'image/png', transparent:'true', styles:'mon_super_style' }, { singleTile: true, projection: 'EPSG:4326', units: 'degrees', isBaseLayer: false, visibility: false });
4- utilisation du SLD_BODY : plus complexe, cela oblige à passer par OpenLayers.Layer.WMS.POST pour contourner les limitations de longueur des URL en GET :
5- Fais une page pour télécharger des SLD et utilise l'exemple en 4
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 wmspost= new OpenLayers.Layer.WMS.POST( "zone3", "http://localhost:8080/geoserver/wms", { layers: 'zone_3', format: 'image/png', transparent:'true', styles:'', sld_body:'<StyledLayerDescriptor version="1.0.0">...</StyledLayerDescriptor>' }, { singleTile: true, projection: 'EPSG:4326', units: 'degrees', isBaseLayer: false, visibility: false }); viewer.getMap().addLayer(wmsPost);
Bon courage
j'ai pu créer des style prédéfini dans geoserver et j'ai tester sa fonctionne bien.. mais la partie 4 me semble un peut compliqué je ne comprend pas toujours faire une page pour télécharger des SLD c'est créer une page web ou créer un bouton sur le geoportail pour appeler les SLD je ne comprend pas bien cette partie.
je souhaite maintenant donner à l'utilisateur la possibilité de changer lui même ses couleur sur les couches
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager