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 Mon 27 August 2012 16:50

bianca
Participant actif
Date d'inscription: 14 Mar 2008
Messages: 60

[MGE 2011] : symboles avancés et bibliothèque de symboles

Bonjour à tous,

Je souhaite combiner au niveau d'un même calque des symboles avancés et des symboles issus de bibliothèque de symboles. J'ai bidouillé un peu en testant ce genre de code:

Code:

<?xml version="1.0" encoding="utf-8"?>
<LayerDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.3.0" xsi:noNamespaceSchemaLocation="LayerDefinition-1.3.0.xsd">
  <VectorLayerDefinition>
    <ResourceId>Library://Donnees/ORACLE/SIR_ORASP.FeatureSource</ResourceId>
    <FeatureName>FdoSIR:SIR_GP_PGT_SIGNA_MESURE</FeatureName>
    <FeatureNameType>FeatureClass</FeatureNameType>
    <Geometry>GEOMETRIE_DECALEE</Geometry>
    <VectorScaleRange>
      <CompositeTypeStyle>
        <CompositeRule>
          <LegendLabel>DIRECTION</LegendLabel>
          <CompositeSymbolization>
            <SymbolInstance>
                <ResourceId>Library://Symboles/PANNEAUX_ROUTE.SymbolLibrary</ResourceId>
                <LibraryItemName>KD22</LibraryItemName>
              <ParameterOverrides />
            </SymbolInstance>
          </CompositeSymbolization>
        </CompositeRule>
      </CompositeTypeStyle>
    </VectorScaleRange>
  </VectorLayerDefinition>
</LayerDefinition>

Mais cela ne semble pas fonctionner.

Autre piste, à priori on peu ajouter une image dans une définition de symbole. J'ai trouvé un exemple ici : http://trac.osgeo.org/mapguide/wiki/AdvancedStylization.

Dont voici le code du symbole :

Code:

<?xml version="1.0" encoding="UTF-8"?>
<SimpleSymbolDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="SymbolDefinition-1.0.0.xsd" version="1.0.0">
  <Name>Fire</Name>
  <Graphics>
    <Image>
      <ResizeControl>'ResizeNone'</ResizeControl>
      <Reference>
        <ResourceId/>
        <LibraryItemName>'fire.png'</LibraryItemName>
      </Reference>
      <SizeX>8.0</SizeX>
      <SizeY>9.0</SizeY>
      <SizeScalable>True</SizeScalable>
      <Angle>0.0</Angle>
      <PositionX>0.0</PositionX>
      <PositionY>4.0</PositionY>
    </Image>
    <Path>
      <Geometry>M -1.0,0.0 L 0.0,1.0 L 1.0,0.0 L 0.0,-1.0 Z</Geometry>
      <FillColor>ff000000</FillColor>
    </Path>
  </Graphics>
  <PointUsage>
      <Angle>%ROTATION_ANGLE%</Angle>
  </PointUsage>
  <ParameterDefinition>
    <Parameter>
      <Identifier>ROTATION_ANGLE</Identifier>
      <DefaultValue>0.0</DefaultValue>
      <DisplayName>Angle to rotate symbol</DisplayName>
    </Parameter>
  </ParameterDefinition>
</SimpleSymbolDefinition>

Par contre, je ne comprends pas où doit-être stockée l'image fire.png et comment l'y ajouter. J'ai fait une recherche sur le nom du fichier fire.png  sur l'ensemble du répertoire d'installation MapGuide et il semble se trouver  dans des répertoires étranges :
MGE2011\Repositories\Library\DataFiles\7f668b32-f051-11e1-8000-005056a3002c
MGE2011\Repositories\Session\DataFiles\17bdaa0a-f052-11e1-8000-005056a3002c

En outre, peut-on appeler un symbole chargé dans une bibliothèque de symboles ? Si oui, comment ?

Merci d'avance.

Bianca GUILLO

Hors ligne

 

#2 Thu 30 August 2012 08:26

bianca
Participant actif
Date d'inscription: 14 Mar 2008
Messages: 60

Re: [MGE 2011] : symboles avancés et bibliothèque de symboles

Bonjour à tous,

J'ai fait un autre test. Étant donné que par défaut MGE permet la cohabitation de représentation ponctuelle, linéaire et surfacique, j'ai tenté de faire cohabiter la représentation ponctuelle et composite comme suit :

Code:

<?xml version="1.0" encoding="utf-8"?>
<LayerDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.3.0" xsi:noNamespaceSchemaLocation="LayerDefinition-1.3.0.xsd">
  <VectorLayerDefinition>
    <ResourceId>Library://Donnees/ORACLE/SIR_ODBC.FeatureSource</ResourceId>
    <FeatureName>Default:V_PEGASE_POINT_ARRET</FeatureName>
    <FeatureNameType>FeatureClass</FeatureNameType>
    <Geometry>Geometry</Geometry>
    <ToolTip>LIBELLE_PA</ToolTip>
    <VectorScaleRange>
      <MaxScale>150001</MaxScale>
      <PointTypeStyle>
        <DisplayAsText>false</DisplayAsText>
        <AllowOverpost>false</AllowOverpost>
        <PointRule>
          <LegendLabel></LegendLabel>
          <PointSymbolization2D>
            <Mark>
              <Unit>Centimeters</Unit>
              <SizeContext>DeviceUnits</SizeContext>
              <SizeX>0.2</SizeX>
              <SizeY>0.2</SizeY>
              <Shape>Square</Shape>
              <Fill>
                <FillPattern>Solid</FillPattern>
                <ForegroundColor>FF0080FF</ForegroundColor>
                <BackgroundColor>ff000000</BackgroundColor>
              </Fill>
              <Edge>
                <LineStyle>Solid</LineStyle>
                <Thickness>0.0</Thickness>
                <Color>FF0000FF</Color>
                <Unit>Centimeters</Unit>
                <SizeContext>DeviceUnits</SizeContext>
              </Edge>
            </Mark>
          </PointSymbolization2D>
        </PointRule>
      </PointTypeStyle>
      <CompositeTypeStyle>
        <CompositeRule>
          <LegendLabel>DIRECTION</LegendLabel>
          <CompositeSymbolization>
            <SymbolInstance>
              <ResourceId>Library://Symboles/DIRECTION.SymbolDefinition</ResourceId>
              <ParameterOverrides />
            </SymbolInstance>
          </CompositeSymbolization>
        </CompositeRule>
      </CompositeTypeStyle>
    </VectorScaleRange>
  </VectorLayerDefinition>
</LayerDefinition>

Mais seul le style composite s'affiche.

Du coup, j'ai créé des symboles avancés et redessinant les-dits symboles.

Cordialement.

Hors ligne

 

Pied de page des forums

Powered by FluxBB