Aller au contenu | Aller au menu | Aller à la recherche

New: Map in XAML but already exist in XUL

XAML est le langage de description d'interface de Microsoft. Il sert dans WPF (Windows Presentation Foundation) et dans Silverlight, anciennement WPF/E.

XUL est le langage de description d'interface de Mozilla. Il est utilisé dans de nombreux logiciels comme Firefox, Thunderbird, Joost, Scenari-Platform, Wengo, Songbird, et bien d'autres plus ou moins connu.

Dans le domaine des SIG et de la cartographie, nous travaillons a étendre les capacités de XUL pour réaliser des applications de SIG et donc des cartes, DES CARTES EN XUL ET SVG. Nous en avons fait une démonstration aux Géo-évènements 2007 dont vous pouvez récupérer un résumé.

J'ai donc été agréablement surpris de voir que certains cherchaient à faire presque la même chose en XAML. Pour être plus précis, Maciej Skierkowski, qui est un program manager chez Microsoft, a réalisé une carte des Etats-Unis en XAML. A lire son post ce ne fut pas si simple à générer. Pourtant si Microsoft au lieu de créer son propre système de description d'image vectorielle avait intégrer la norme SVG, Maciej aurait eu beaucoup moins de mal. Il a été obligé de passer par une image bitmap des Etats-Unis et de générer l'image vectorielle XAML état par état.

Liens :

De notre côté à partir de la description d'une carte composée de fichiers Shapefile, MapInfoFile, de tables PostGIS ou de couches fournis par des Web Feature Service, nous générons une carte à laquelle nous associons des outils de manipulations (zoom, pan, gestion des couches, etc) le tout dans du XUL.

L'interface suivante :

est généré à partir du code suivant :

<map id="test" srs="EPSG:4326">
  <background type="WMS"
     src="http://www2.demis.nl/wms/wms.asp?wms=WorldMap?"
     version="1.1.1"
     layers="Bathymetry,Topography,Coastlines,Hillshading"
     styles=""
     format="image/png"/>
  <vectorLayer type="OGR" 
     src="/home/GIS/data/states.shp"
     name="states"/>
  <vectorLayer type="OGR"
     src="/home/GIS/data/rivers.shp"
     name="cities"/>
  <vectorLayer type="OGR"
     src="/home/GIS/data/cities.shp"
     name="cities"/>
</map>
<vbox flex="1">
  <zoomtoolbox display="testDisplay"/>
  <hbox flex="1" align="stretch">
    <vbox flex="1" align="stretch">
       <maptree display="testDisplay" flex="1"/>
    </vbox>
    <vbox width="500px" style="border:solid 1px black;">
      <mapdisplay id="testDisplay"
        map="test"
        displayHeight="500px"
        displayWidth="500px">
        <layerdisplay layer="states">
          <sld:cssParameter name="fill">yellow</sld:cssParameter>
          <sld:cssParameter name="fill-opacity">0.5</sld:cssParameter>
          <sld:cssParameter name="stroke">black</sld:cssParameter>
        </layerdisplay>
        <layerdisplay layer="rivers">
          <sld:cssParameter name="stroke">blue</sld:cssParameter>
        </layerdisplay>
        <layerdisplay layer="cities">
          <ruledisplay>
            <conditionsdisplay>
              <ogc:PropertyIsEqualTo>
                <ogc:PropertyName>NAME</PropertyName>
                <ogc:Literal>Mexico City</Literal>
              </ogc:PropertyIsEqualTo>
            </conditiondisplay>
            <actionsdisplay>
              <sld:cssParameter name="fill">red</sld:cssParameter>
            </actionsdisplay>
          </ruledisplay>
        </layerdisplay>
      </mapdisplay>
    </vbox>
  </hbox>
</vbox>

Attention, rien n'est encore figé!

Commentaires

1. Le mardi 22 mai 2007, 09:08 par Maciej Skierkowski

My project for the XAML map does not represent Microsoft's solution. I posted that on the MSDN blog as a "toy" project. If you need a real solution tracing a bitmap is NOT the rigth way to go. For projects like that, "Hack" is the best way to describe the solution.