A visual editor for OGC SLD files for automating the configuration of WMS and mobile map applications Albrecht Weiser and Alexander Zipf i3mainz - Institute for Spatial Information and Surveying Technology Department of Geoinformatics and Surveying University of Applied Sciences FH Mainz, Germany email@example.com 1 Introduction The OGC Styled Layer Descriptor (SLD) specification [OGC 2003] allows describing the design and contents of a map – in particular a map served by a SLD-WMS – in a formal way through the use of a strict XML schema. The specification is getting more and more used and supported by several implementations of Web Map Servers. But SLD still has some weaknesses – especially for use in LBS, see e.g. [Brinkhoff 2004]. We present here the first implementation of a mobile map application (mobile city guide running on a PDA), that uses the SLD specification as configuration of the mobile map. On the other hand in LBS or UbiGIS maps need to be generated dynamically taking a lot of further factors into account – in particular also attributes describing the current user, the situation and general context [Zipf 2002, Reichenbacher 2004, Meng et al. 2004, Zipf and Jöst 2006]. In order to use this kind of parameter and information in an automated map service on the internet or on mobile devices we need also formal representations for this type of information – e.g. also as XML files. Then we need to combine the information from this context models and the base map which is represented through a SLD file to automatically generate adapted maps according to those parameters. The result is again 2 Albrecht Weiser and Alexander Zipf an SLD file describing the adapted map, which then can be used within a request to an SLD-enabled WMS or a mobile application that supports SLD. So the first task is to generate the SLD for the base map. In order to automate the task of designing maps for Web Map Servers or mobile map applications we introduce a free software tool called ArcMap2SLDGenerator (http://arcmap2sld.geoinform.fh-mainz.de/). This tool is helpful as it allows generating a valid SLD-file from the design of a map within ESRI ArcMap. The resulting SLD in turn can act as a base for further modifications through user or context models in order to generate useradapted map representations as SLD [Zipf 2005] in a standard-conformant way. 2 The OGC SLD Specification - a formal representation of maps The OGC Styled Layer Descriptor Specification [OGC 2002] defines a XML schema to describe the appearance of the layers of a map. A SLD document is a XML file that can be validated against this model. SLDs are getting more popular in web mapping applications with the growing availability for SLD support in WMS. But until recently these SLDs are more or less hand-made or application specific. But as SLDs provide the means to specify the look of map in a domain and vendor-neutral way, it is a good choice for a formal representation of maps in general. The question is now how to go beyond these hand-made SLDs and generate these in an automated way using open standards predominantly. This is a technical question and can be solved using a software tool we have developed. This tool is a SLD generator for ESRI ArcMap maps. This can be used not only in WMS requests or for configuring WMSs (as in the case of the deegree WMS), but also when producing vector based maps in SVG. Merdes et al.  present an example of using SLD and GML from WFS requests with a cascade of several XSL- transformations in order to generate a SVG map from GML and SLD. It has been shown how this can be extended to include user and context models in order to generated useradapted SLD files in a generic way (Zipf 2005). First we will briefly introduce our application that generates SLD files from existing maps in commercial desktop GIS. Then we explain the results of an evaluation of SLD support by two major WMS implementations (UMN and ArcIMS) and afterwards we introduce the concept of SLD for mobile maps and present a first implementation of SLD support within mobile map applications for PDAs. A visual editor for OGC SLD files 3 3 The ArcMap2SLD Converter In this section we want to explain the functionality and the benefits of the ArcMap2SLD-converter. The first question is: What is this tool designed for at all? The answer is that it was developed mainly for supporting the setup of a WMS. When setting up a WMS it is much work to write the code for the symbolization prescription of the configuration file. If you want to set up a large project with various layers and many classes, by far the most effort is to code the hundreds (or even thousands) of lines of the symbolization prescription. So the question arises how this can be automated in order to minimize such work? The optimal case would be if one could reuse the effort and work, that was already invested in setting up a project and designing a map with a common desktop GIS. This would allow to take the power of desktop GIS supporting the symbolization process also for Web-based maps. If it would be possible to analyze the symbolization of a map in a desktop GIS and automatically transform the information into a SLD, the most timeconsuming activity in setting up a WMS could be saved. In order to realize and evaluate this approach we developed a tool for converting the symbolization of an ArcMap project into the SLD format. This so called ArcMap2SLD-converter analyzes the symbolization of an ArcMap-project by stepping through each layer of the map and each class of each layer. Then it stores the symbol properties along with further properties of each layer as well as the overall project in an internal data structure. This allows a very dynamic analysis also of the complex symbol objects of ArcMap such as MultiLayer-symbols. After finishing the analysis, all data stored in these data structures can be transformed into SLD and exported into a SLD-file. It is also possible to check the validity of the resulting SLD by integrating the relevant SLD schema-files from the OGC. The SLD can then be referenced by the WMS in the reqest-URL. The following example shows this approach: http://127.0.0.1/mapserver?SERVICE=WMS&VERSION=1.1.1& REQUEST=GetMap&Layers=Guek300Poly&STYLES=&SLD=http://127.0.0. 1/SLD/GUEK300.sld&BBOX=3377854,5471076,3592188,5728258 The reason to take the ArcGIS system from ESRI as starting point was its widespread distribution as market leader in the GIS market and the abundance of existing maps designed already with ArcMap. For this reason a large number of GIS user can participate the benefits of the ArcMap2SLD-converter. Some of the technical design parameters of the ArcMap2SLD-Converter are mentioned below: 4 Albrecht Weiser and Alexander Zipf • The application was developed in Visual Basic.NET • It uses the ArcObjects framework from ESRI for accessing ArcGISfunctionalities • The navigation in the SLD-file is performed by XPath (XML Path Language) • Syntactic changes of the SLD specification can be adjusted in a configuration file 3.1 Implementing the ArcMap2SLD-converter The many possibilities how to classify maps are supported by ArcObjects through a comprehensive internal data model. This model is the ESRI „ArcObjects“ class library (Burke 2003). The interfaces of the library present the functionality of the respective classes. This allows to use the properties and methods of the library through any programming language supporting the Microsoft .Net-platform. According to the options how to classify maps in ArcMap the following Renderer-types are supported in Arc Objects. 1. SimpleRenderer 2. UniqueValueRenderer 3. ClassBreaksRenderer ≈ Single symbol (Features) ≈ Unique values (Categories) ≈ Graduated colors, Graduated symbols (Quantities) 4. ProportionalSymbolRenderer ≈ Proportional symbols (Quantities) 5. DotDensityRenderer ≈ Dot density (Quantities) 6. ChartRenderer ≈ Charts 7. BiUniqueValueRenderer ≈ Quantity by Category (Multiple Attributes) ArcObjects supports also five main symbol types with several symbol subtypes. The latter are TextSymbol, MarkerSymbol, LineSymbol, FillSymbol and 3DchartSymbol. The converter realized currently supports the most important means of thematic classification within ArcMap: • Features (Single Symbol) • Categories (Unique values; Unique values, many fields) • Quantities (Graduated colors) Further Marker-, Line- and Polygon-features are also supported by the application as well as text-symbols. Even multilayer-symbols are supported for these features. Multilayer-symbols are able to depict complex A visual editor for OGC SLD files 5 symbolization like the filling of an area with repeating patterns. MultiLayer-Symbols can aggregate a number of symbols of the same main symbol type. Each symbol can be aggregated from several symbols, e.g. polygon symbols can include line symbols or marker symbols. In order to use the converter we need to have ArcGIS installed on a running ArcMap-Session with the project open that includes the map to be transformed. The converter application is designed to minimize user interactions and to achieve a maximum of automatization. • All symbols present in the current ArcMap map are exported into internal software structures • All render-types of ArcObjects have been implemented that can be used in SLD currently. These are: UniqueValueRenderer (incl. many fields) / SimpleRenderer / ClassBreaksRenderer • Not yet fully implemented are: ChartRenderer/ DotDensityRenderer / ProportionalSymbolRenderer / ScaleDependentRenderer The following visualization properties are already implemented for the individual feature classes: • Point-Feature: colour, dot-size, angle of rotation • Line-Feature: colour, line width • Polygon-Feature: - One colour area filling: area colour, line colour and line width of border - Point filling: Point colour, point size, line colour and line width of border - Cross hatch: Line colour and line width of the hatching, vertical and diagonal angle of hatching, line colour and line width of border The visualization of Multilayer-symbols as two-layer symbols has also been implemented. We support only two layers in Multilayer-symbols so far as the current WMS implementations such as UMN are not able to process more than two-layers in Multilayer- symbols at the moment. In order to label the symbols in the legend for every rule of a symbol the titleelement is included. Line hatching as well as the use of bitmaps for area fillings are currently not yet supported. 6 Albrecht Weiser and Alexander Zipf Fig. 1. Process of designing a map in ArcMap and exporting it to a SLD document. The latter can be used to configure WMS servers or MainzMobile or to issue user-specific requests to SLD Web Map Services. 4 Evaluating the SLD support of WMS servers In order to evaluate the possibilities of representing the visual appearance of maps with SLD on current WMS servers we conducted several tests using the generated SLDs. The goal was to answer the following four main questions: 1. How good is the support of the evaluated test servers (UMN, ArcIMS) for the SLD specificatin? 2. What possibilites to style maps does the current specification offer? The main aspects looked at included: - Symbolizer (Point-, Line-, PolygonSymbolizer) - Complex area fillings with hatchings and point fillings - Classifications using filter and logical operators 3. What further extensions to the converter are usefull? A visual editor for OGC SLD files 7 4. What configurations are needed in order to make the evaluated test server visualise the SLD the best way (according to their respective possibilities)? One of the results of applying the generated SLD file to the UMN WMS can be seen in figure 2, which compares the map to the original ArcMap display. One can recognize from figure 2 that it is still not possible to achieve 100% the same look using the WMS on the one hand and the original ArcMap map on the other, but a very good compromise can be achieved. Where does the different look come from? The fact is, that SLD is still standard in development. Its contents increases step by step during the suggestions of its members. For example until now SLD still has no possibilities to generate a vector-based hatching for polygons, because the SLD-element Graphic of the SLD-element PolygonSymbolizer has only two successor-elements: Mark and ExternalGraphic. This implies that SLD can only generate vector-based area filling patterns with marker symbols because a successor-element Line is missing at present. Among others this is a reason for the different looks of the source map and the resulting map. Nevertheless, SLD is sufficiently extensive to portray a complex symbolized map to distinguish all containing classes in a satisfying way. Fig. 2. Comparison of the resulting map (detail) from the dynamically generated SLD description renderend by UMN Mapserver by SLD (right side) and the original map in ArcMap (left side). Example: Geologische Übersichtskarte 1:300.000, GÜK 300, Hessisches Landesamt für Umwelt und Geologie (HLUG) (Geological Map 1:300.000) Currently a range of map server implementations still offer even less support for the different parameters defined in SLD then the ones we evaluated. Therefore maps generated using such WMS implementations even 8 Albrecht Weiser and Alexander Zipf even may look more different. We assume that it is only a matter of time until this varying support of the SLD specification has reached a more stable situation. Then the different render engines (the different WMS implementations) should generate quite similar maps from the same SLD configuration. In order to achieve this aim also the SLD specification does need further extensions in order to clarify how to represent a range of symbolization issues. In figure 3 we see the result of ArcIMS with WMSConnector displaying the same map styled be the same SLD file. It looks even more different from the ArcMap original than the UMN version. It seems that the version 1.0 of the WMS-Connector of ArcMap does not support all visualization possibilities that ArcIMs itself would support leading to an insufficient result. When we visualize the map with ArcIMS without SLD, but instead with the ESRI-proprietary ArcXML configuration, one can see that the accordance with the original ArcMap version (figure 2 left) is slightly higher. Fig. 3. Comparison of the resulting map (detail) from the dynamically generated SLD description rendered by ArcIMS Mapserver by SLD (with WMS connector) (left side) and the proprietary ArcIMS map using ArcXML without use of open standards as SLD (right side). Example: Geologische Übersichtskarte 1:300.000, GÜK 300, Hessisches Landesamt für Umwelt und Geologie (HLUG) (Geological Map 1:300.000) Figure 4 shows as result a comparison of the support for each of the SLD elements that have been tested using both UMN and ArcIMS. A visual editor for OGC SLD files SLD-element NamedLayer UserLayer NamedStyle UserStyle FeatureTypeStyle Rules Min-, MaxScaleDenominator Filter ElseFilter PropertyIsEqualTo PropertyIsBetween AND PointSymbolizer Fill Support UMN Support ArcIMS + + + + + + + + + + + + + + + + + + + + + + + + + - Size Mark WellKnownName Rotation LineSymbolizer + + + + + Stroke + + SLD-attribute Support UMN Support ArcIMS Fill* fill-opacity * + - - Stroke* stroke-width* + + - - + - + - + - stroke-opacity* GraphicStroke + - PolygonSymbolizer + + Fill + + strokedasharray* (s. Stroke) fill* fill-opacity* GraphicFill Graphic ExternalGraphic + + + 9 - Fig. 4. Tested SLD elements and attributes tested on UMN 4.4.2, 4.6.0 beta2 and ArcIMS 4.0.1 (with OGC WMS Connector 1.0) for the GÜK 300 geologic overview map. * CSS parameter 10 Albrecht Weiser and Alexander Zipf 5 SLDs for configuring mobile maps Many commercial applications for PalmOS / Pocket PC PDAs do exist that display the current position on a map in combination with a GPS receiver and allow stand-alone routing. Most of these applications are targeted towards car navigation, but they can also be used for pedestrian navigation in a city in a limited way. An increasing number of commercial car navigation systems also offer a 3D view, but this usually does not deliver a real 3D representation of the area, but only a perspective view of the 2D map. They usually do not make use of open OGC standards, as the SLD specification or the W3DS discussion draft. Also mobile GIS applications like ArcPad etc. do not offer the possibility to use SLD for configuring map styles. Our PDA application - MainzMobile3D - is a mobile 2D and 3D map application for PocketPC supporting both SLD and the W3DS specifications (Fischer et al. 2006). It is running locally on the PDA itself and has been developed in C# on the .Net Compact Framework 2. Currently the following functionalities have been realized among others: • • • • • • • • • • • • • • • positioning by means of GPS internal geometry model based on OGC Simple Feature Specification 2D map display using multiple generalization levels 2D map functions (zoom, pan etc..) search and visualization of POIs search function for object information / touristic information distance measurement tool GPS configuration & display (Skyplot, Skyview, coordinates etc..) 3D scene information as on-line 3D Web-Client based on the OGC Web3D service Specification Discussion paper (Quadt and Kolbe 2005) tour planning (A* algorithm)(Köhler 2006) ESRI *.shp files as local data source for geodata Spatial index internal database for POIs focus maps prototype (Schuler 2006) based on ideas by Zipf and Richter (2002) SLD based configuration of the map display The latter functionality shall be explained in a little more detail in the following section. To our knowledge MainzMobile3D is the first and only PDA-based mobile map service that supports SLD for configuration of the maps generated directly on the mobile device. A visual editor for OGC SLD files 11 The first version of MainzMobile3D had a simple proprietary map configuration based on XML (Fischer 2006). It already supported scaledependent map configurations and symbols. Lindemann (2006) extended that approach by implementing SLD-support of MainzMobile3D. This required mainly some changes of the XML data structure used for the configuration. On the other hand he also extended the ArcMap2SLDConverter to become an authoring tool for the 2D maps in the Mainz Mobile3D application by extending the SLD support (better support for labelling) on the one hand and on the other hand by developing possibilities to feed the XML-based MainzMobile3D database with multimedia descriptions of points of interest (POI). The following figures show example screenshots of the authoring tool based on the ArcMap2SLD-converter. As this tool is based on open standards like SLD, it is now possible to apply the MainzMobile3D software much easier to other cities or regions as the content both regarding map design as well as the multimedia POI database can be authored with GUIbased user-friendly tool support. This eliminates the need to manually write XML configuration files. Fig. 4. Scale-dependent rendering through SLD-based 2D-map configuration in MainzMobile3D Fig. 5. Start-Window of the Authoring-Tool 12 Albrecht Weiser and Alexander Zipf Fig. 6. Formular for inserting descriptions of POIs Fig. 7. “MapConfig” -Window of the Authoring-Tool 6 Summary and Outlook SLD is still a maturing technology. Originally designed in order to allow clients to specify the look of maps served by WMS servers we have shown how it can also be used for configuring WMS as well as mobile map applications running locally on PDAs. In particular the latter option is a completely new way to use the SLD specification as formal map representation directly on mobile devices. Such innovative use of OGC standards in combination with the supporting tools for generating SLDs and POI databases based on conventinonal GIS is a step towards more interoperable and ubiquitous map services - in- A visual editor for OGC SLD files 13 cluding desktop GIS, Web Map Services and mobile applications on PDAs or Smartphones. Further research has shown, that it is possible to derive also SVG-based maps in a completely generic way from standards-based data sources (Merdes et al 2005) and that the technology used for that can even be extended towards the automated generation of user- and context specific SLDs through the incorporation of formal user and context models within a cascade of several XSL- transformation (Zipf 2006). But this is only a solution for the technical side of the problem. How to use such context information in order to generate situation aware and cognitively more adequate maps will still remain an active research question. Acknowledgements We like to thank all former and current colleagues for their inspiration and help. We thank the HLUG for their cooperation in developing the ArcMap2SLD-converter and evaluating the SLD support of the WMS using the GÜK300 geologic overview map. We thank the bureau of surveying of the city of Mainz for supporting us with test data of Mainz. Parts of the work on the W3D-Service have been carried out with friendly support of the Klaus-Tschira-Foundation (KTS) Heidelberg. References Burke R. (2003): Getting to know ArcObjects. Hrsg. ESRI: ESRI Press, 2003 Fischer, M. (2006): Mobiler Stadtführer 3D für PDA. Diplomarbeit. FH Mainz. Fischer, M., Basanow, Zipf (2006): Mainz Mobile 3D - A PDA based OGC Web 3D Service Client and corresponding server. International Workshop on 3D Geoinformation 2006 (3DGeoInfo'06). Kuala Lumpur. Malaysia. Brinkhoff, T. (2005): Towards a Declarative Portrayal and Interaction Model for GIS and LBS. Proceedings 8th Conference on Geographic Information Science (AGILE 2005), Estoril, Portugal, 2005, pp. 449-458. Köhler A. (2006): Tourenplanung mobil auf PDAs. Diplomarbeit. FH Mainz. Lindemann, M. (2006): Ein Autorenwerkzeug für SLD-basierte Konfiguration mobiler Stadtinformationsdienste. Diplomarbeit. FH Mainz. Meng, L., Zipf, A. and Reichenbacher, T. (eds.) (2004): Map-based mobile services – Theories, Methods and Implementations. Springer Geosciences. Heidelberg. Merdes, M., J. Häußler, A. Zipf (2005): GML2GML: Generic and Interoperable Round-Trip Geodata Editing using Standards-Based Knowledge Sources. 14 Albrecht Weiser and Alexander Zipf AGILE 2005. 8.th AGILE Conf. on GIScience. Assoc. of Geographic Information Laboratories in Europe. Estoril. Portugal. OGC (2002): Styled Layer Description Implementation Specification, Version 1.0.0. Quadt und Kolbe (2005): Web 3D Service, OGC Discussion Paper, OGC Reference number: OGC 05-019, Version: 0.3.0 Reichenbacher, T. (2004), Mobile Cartography - Adaptive Visualisation of Geographic Information on Mobile Devices, PhD thesis, TU Munich. Schuler, V. (2006): Ein Fokuskarten-Prototyp für PDAs. Diplomarbeit. FH Mainz. Weiser, A. (2005): Automatisierte Generierung von Styled Layer DescriptorDateien aus ESRI ArcGIS-Projekten zur Publikation mit OGC-konformen Mapservern. Diploma Thesis. University of Applied Sciences. Mainz. Zipf, A and Jöst, M. (2006): Implementing Adaptive Mobile GI Services based on Ontologies - Examples for pedestrian navigation support. In: CEUS - Computers, Environment and Urban Systems - An International Journal. Special Issue on LBS and UbiGIS. Pegamon Press, Elsevier. Zipf, A. and Richter, K.F. (2002): Using Focus Maps to Ease Map Reading. Developing Smart Applications for Mobile Devices. In: Künstliche Intelligenz (KI). Special issue: Spatial Cognition. 04/2002. 35-37. Zipf, A. (2002): User-Adaptive Maps for Location-Based Services (LBS) for Tourism. In: K. Woeber, A. Frew, M. Hitz (eds.), Proc. of the 9th Int. Conf. for Information and Communication Technologies in Tourism, ENTER 2002. Innsbruck, Austria. Springer Computer Science. Heidelberg, Berlin. Zipf, A. (2005): Using Styled Layer Descriptor (SLD) for the dynamic generation of user- and context-adaptive mobile maps - a technical framework. 5th International Workshop on Web and Wireless Geographical Information Systems (W2GIS). Lausanne, Switzerland. Springer Computer Science. Heidelberg, Berlin.
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project