New: Map in XAML but already exist in XUL
Par René-luc D'Hont, dimanche 22 avril 2007 à 18:05 :: Système d'Information Géographique (SIG) :: #59 :: rss
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
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.