New: Map in XAML but already exist in XUL
Par René-Luc D'Hont le dimanche 22 avril 2007, 18:05 - Système d'Information Géographique (SIG) - Lien permanent
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
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.