Adding a layer using raster ArcIMS protocol
Introduction to ArcIMS

In the proprietary software environment, ArcIMS (developed by Environmental Sciences Research Systems, ESRI) is probably the most widespread/popular widely used (Internet) cartographic server on the Internet thanks to the number of clients it supports (HTML, Java, ActiveX controls, ColdFusion...) and to its integration with other ESRI products. ArcIMS is currently one of the most important remote cartographic information providers. Although the protocol it uses does not comply with the Open Geospatial Consortium (because it was created long beforehand), the gvSIG team believes that offering support for ArcIMS is important.


Connecting to image services

The extension can access image services offered by an ArcIMS server. This means that, just like a WMS server, gvSIG can request a series of layers from a remote server and receive a view rendered by the server containing the requested layers in a specific coordinate system (reprojecting if necessary) and in specific dimensions. In addition to displaying geographic information, the extension allows you to request information about the layers for a particular point via the gvSIG standard information button.

ArcIMS is slightly different in its philosophy from WMS. In WMS, the request is normally made by independent layers whilst in ArcIMS the request is global.

The steps required to request a layer from an ArcIMS server and to request information for a particular point are listed below.


Adding a layer using ArcIMS protocolIntroduction

Our example uses the ESRI ArcIMS server. Its URL is http://www.geographynetwork.com. This is the address a web browser requires to access the HTML visual display unit.

Before loading a layer from this server, the datum WGS84 in geodesic coordinates (code 4326) has to be set up previously as the view’s spatial system.


Connecting to the server

If the extension is loaded correctly, a new ArcIMS data source will appear in the “Add layer” dialogue box.

anadir-capa-arcims-en.img/anyadirCapaArcIMS_servidor_en.png

Adding a new layer to the view

If the server has a standard configuration, simply indicate its address. gvSIG will try to find the servlet’s full address.1 If the servlet has a different path, you will have to write it into the dialogue box.

When the connection has successfully been made, the server version, its compilation number and a list of image and geometry services available are shown.

The service can be selected from the list or can be written in directly.

Finally, if the “Override service list” check box is enabled, gvSIG will delete any catalogue that has already been downloaded and will request them again from the server.

anadir-capa-arcims-en.img/anyadirCapaArcIMS_serviciosOfrecidos_en.png

List of services available


Accesing the service

The next step is to select the ImageServer type service required by double clicking or selecting it and clicking on "Next". The dialogue box changes and an interface with two tabs appears (fig. 3). The first tab shows the metainformation given by the server about the service’s geographic limits, the acronym of the language it has been written in, units of measurement, etc. It is a good idea to find out if a coordinate system has been defined in the service (using EPSG codes) as this can directly influence the requests made to the server, as Figure 3 shows.

N.B. If no coordinate system has been defined in the service, the extension will assume that it is the same coordinate system as the one we have defined for the view.

anadir-capa-arcims-en.img/anyadirCapaArcIMS_informacion_en.png

Figure 3: Metadata from the ArcIMS server

We can continue by clicking on "Next" or return to the previous dialogue by clicking on "Change service”.


selecting layers

The last dialogue box is the layer selection. We can define a name for the gvSIG layer or leave the default value (the service name) in this window. A box appears below with a list of the service layers in tree form. When the mouse is moved over the layers, information about these layers appears: extension, scale ranges, type of layer (raster or vector image) and if it is visible by default in the service (fig. 4).

anadir-capa-arcims-en.img/anyadirCapaArcIMS_seleccionCapa_en.png

Figure 4: Metadata from a service layer

We can view each layer’s ID via the “Show layer ID” check box. This check box is useful when there are layers whose descriptor is repeated. Therefore, the only way to distinguish between them is via an ID, which will always be unique. A combo box is also available to select the image format we wish to use to download the images. We can choose JPG format if our service works with raster images or one of the other remaining formats if we want the service to have a transparent background.

N.B. The transparency in 24-bit PNG images is not correctly displayed in gvSIG 0.6. This type of files will be supported in gvSIG 1.0.

The box with the layers selected for the service appears below. If you wish, you can add just some of the service layers and also reorganise them. This makes the service view totally personalised.

N.B. The configuration cannot be accepted until a layer has been added.

N.B. Multiple selections of service layers can be made by using the Control and CAPS keys.


Adding the layer to the view

When the “Ok” button in the dialogue box is pressed, a new layer appears in the view (fig. 5). If no layer has been added previously, the extension of the ArcIMS layer is shown, as per the standard gvSIG procedure.

anadir-una-capa-a-traves-del-protocolo-arcims.img/capaArcIMSAnyadida_es.png

Figure 5: ArcIMS layer added to the gvSIG view.

It must be remembered that when the layer extension is shown, the layers that make up the chosen configuration may not appear and a blank or transparent image appears instead. If this occurs, use the scale control dialogue box (V. Information about scale limits section).


Points to remember about spatial reference systems

An ArcIMS server does not define the spatial reference systems it supports as opposed to the WMS specification. This means that a priori we do not have a list of EPSG codes that the map server can reproject. In short, ArcIMS can reproject to any coordinate system and leaves the responsibility of how the projections are used to the client.

Therefore, if our gvSIG view is defined in ED50 UTM zone 30 (EPSG:23030) and we request a global coverage service (stored for example in the geographic coordinates WGS84, which correspond to code 4326) the server will not be able to reproject the data correctly because we are using global coverage for a projection of a specific area of the Earth.

However, the procedure can be carried out in reverse. If we have a view in geographic coordinates (and thus global coverage), services defined in any coordinate system can be requested because the server will be able to transform the coordinates correctly.

In short, requests to the ArcIMS server must be made in the view's coordinate system and they cannot be requested in another coordinated system.

Moreover, as we mentioned above, if an ArcIMS server does not offer information about the coordinate system its data is in, the user will be responsible for setting up the correct coordinate system in the gvSIG view. Thus, if a user with a view in UTM adds a layer which is in geographic coordinates (even though the server does not show it), the service will be added correctly but will take the view to the geographic coordinates domain (in sexagesimal degrees).

An additional effect is that if the view uses different units of measurement from the server, the scale will not be shown correctly.


Modifying layer's properties

The layers requested from the server can be modified via a dialogue box, which can be accessed from the layer’s contextual menu (fig. 6) just like the WMS layers. This dialogue box is similar to the box used to load the layer, apart from the fact that the service cannot be changed.

anadir-una-capa-a-traves-del-protocolo-arcims.img/PropiedadesCapaArcIMS_es.png

Figure 6: Properties of the ArcIMS layer


Information about scale limits

The extension allows us to consult the layers' scale limits which make up the requested service via a dialogue box which can be maintained in the view during the session (fig. 7). This window shows the layers on the vertical axis and the different scale denominators on the horizontal axis via a logarithmic scale. This box is small on screen but can be enlarged to improve the difference between the scales.

The vector layers, raster layers and the layers that can be seen on the current scale (marked with a vertical line) in a darker colour and the layers we cannot see above or below the current scale are differentiated by different coloured bars (described in the window legend).

anadir-una-capa-a-traves-del-protocolo-arcims.img/estadoLimitesEscala_es.png

Figure 7: Scale limits status


Attribute information request

Attribute information requests about the elements for a particular point is one of gvSIG’s standard tools. Its functionality is also supported by the extension.

The WMS specification allows information about several layers to be requested from the server in one single query. This is different in ArcIMS. We need to make one server request per layer required.

This means that no requests for unloaded layers or unseen layers that are not visible on the current scale or layers whose extension is outside the view will be made. Even if all these layers are filtered, the information request usually takes longer than is desirable because of this intrinsic feature of ArcIMS.

When all the request responses have been recovered, the standard gvSIG attribute information dialogue appears with each of the layers (LAYER) which return information as a tree. If we click on a layer, its name and ID appear on the right (fig. 8).

Under this node, if we are talking about a vector layer, all the records or geometric elements the server has responded to appear, and give each one their corresponding attributes (FIELDS).

If it is a raster layer, such as an orthoimage or a digital terrain model, it returns the values for each of the bands (BAND) in the requested pixel colour, instead of records.

anadir-una-capa-a-traves-del-protocolo-arcims.img/mostrarInformacionAtributos_es.png/

Figure 8: Displaying attribute information


Connecting to geometry services

The extension allows access to both ArcIMS image services and geometry services (Feature Services). This means that a server can be connected to and geometric entities (points, lines and polygons) and their attributes obtained. This is not dissimilar to WFS service access.

However, the variety of existing geometry services is much lower than the variety in the image server. There are two main reasons for this. On one hand, providing the public with vector cartography implies security problems because many bodies only want to offer the general public views and images. The vector data becomes either an internal product or must be paid for. On the other hand, this type of services generate much more traffic on the network and in the case of basic information servers could become a problem.


Adding a geometry layer

Loading a geometry layer is practically the same procedure as loading the image server as mentioned above (Accessing the service section and the following sections). In this case, the number of layers to be selected must be taken into account. If we wish to download all the layers offered by the service the response time will be very high.

The only difference between loading an image layer is that in this case we can choose whether we wish the layers to be downloaded as a group via a check box. This is useful for processing the vector layers as one layer when it needs to be moved and activated in the table of contents.

Unlike the image service, in which all the service’s layers appear as one unique layer in the gvSIG view, in this case each layer is downloaded separately and appears in the view grouped under the name defined in the connection dialogue.


ArcIMS symbols

Cartography symbols are configured in the server in one AXL extension file for both geometry and image services. We can divide symbol definition into two parts. On one hand, we can talk about the definition of the symbols themselves, i.e. how a geometric element, such as a line or polygon, should be presented. On the other hand, we can talk about the distribution of these symbols according to the cartographic display scale or to a specific theme attribute.

In ArcIMS terminology symbols are different from legends (SYMBOLS and RENDERERS).


Symbols

There are various types of symbols: raster fill symbols, gradient fill symbols, simple line symbol, etc. The extension adapts the majority of the symbols generated by ArcIMS. Table 1 shows the ArcIMS symbols and indicates whether they are supported by gvSIG.

Label Description Supported
CALLOUTMARKERSYMBOL Balloon-type label NO
CHARTSYMBOL Pie chart symbol NO
GRADIENTFILLSYMBOL Fill in with gradient NO
RASTERFILLSYMBOL Fill with raster pattern YES
RASTERMARKERSYMBOL Point symbol using pictogram YES
RASTERSHIELDSYMBOL Customised point symbol for US roads NO
SIMPLELINESYMBOL Simple line YES
SIMPLEMARKERSYMBOL Point YES
SIMPLEPOLYGONSYMBOL Polygon YES
SHIELDSYMBOL Point symbol for US roads NO
TEXTMARKERSYMBOL Static text symbol NO
TEXTSYMBOL Static text symbol YES
TRUETYPEMARKERSYMBOL Symbol using TrueType font character NO

Table 1: ArcXML symbol definition labels

In general, the most common symbols have been successfully “transferred”. Some of the symbols cannot be obtained directly from gvSIG (at least in the current version), such as the raster fill symbol or they need to be “adjusted” such as the different types of lines. This means that a raster fill symbol is not a symbol that can be defined by the gvSIG user interface, but it can be defined by programming.


Legends

gvSIG supports the most common types of legends: unique value and range and value themes as well as the scale-range control over the whole layer. ArcIMS goes much further in its configuration. It can generate much more complicated legends in which symbols can be grouped together, scale-range controls can be established for labels and symbols and different labelling based on an attribute can be shown (as though it were a value theme for labelling).

This group of legends can generate very complex symbols for a layer in the end. The current implementation status of the gvSIG symbols needs to be simplified to reach a compromise to recover the symbols that best represent the layer as a whole.

Label Description
GROUPRENDERER Legend which groups others together
SCALEDEPENDENTRENDERER Scale dependent legend
SIMPLELABELRENDERER Labelling layer legend
SIMPLERENDERER Unique value layer legend
VALUEMAPRENDERER Value and range themes
VALUEMAPLABELRENDERER Labelling themes

Table 2: ArcXML legend definition labels

When a GROUPRENDERER is found, the symbol ArcIMS draws first is always chosen. Thus, in the case of the typical motorway symbol for which a thick red line is drawn and a thinner yellow line is drawn over it, gvSIG will only show the red line with its specific thickness.

If a scale dependent legend is discovered during a symbol analysis, this is always chosen. If more than one is discovered, the one with the greatest detail is chosen. For example, in ArcIMS we can have a layer with simple road symbols (only main roads are drawn) on a 1:250000 scale and based on this a different theme is shown with all types of roads (paths, tracks, roads, etc.). In this case, gvSIG will show this last theme as it is the most detailed.

If a labelling legend is discovered during a symbol analysis, it will be saved in a different place and will be assigned to the selected definitive legend. In the case of the VALUEMAPLABELRENDERER label, only the legend of the first processed value will be obtained as a label symbol. The rest will be rejected.

In short, it is obvious that the failure to adapt the legends for gvSIG is a simplification process in which different legend and symbol definitions must be rejected to obtain a legend which is similar to the original as far as possible. It is to be expected that the gvSIG symbol definition will improve considerably so that it can support a larger group of cases in the future.


Working with the layer

Working with the layer is similar to any other vector layer, as long as we remember that access times may be relatively high. The layer attribute table can be consulted, in which case the records will be downloaded successively as we display them.

If we wish to change the table symbols to show a unique value or range theme we must wait as gvSIG requests the complete table for these operations. On the other hand, the downloading of attributes is only carried out once per layer and session and therefore, this wait only occurs in the first operation.

In general, if our ArcIMS server is in an Intranet, it will be relatively fast to handle, but if we wish to access remote services we may be faced with considerable response times.

The main feature to bear in mind when working with an ArcIMS vector layer is that the geometries available at any given time are only the ones displayed. This is because we can connect to huge layers but only the visible geometries are downloaded. As far as gvSIG is concerned, the geometries shown on the screen are the only ones available and thus, if we export the view to a shapefile for example, are only a part of the layer.

Finally, we need to remember that to speed up the geometry downloads they are simplified to the viewing scale in use at any given time. This drastically reduces the amount of information downloaded as only the geometries that can actually be "drawn" are displayed in the view.

Loading a geometry layer is practically the same procedure as loading the image server as mentioned above (Accessing the service section and the following sections). In this case, the number of layers to be selected must be taken into account. If we wish to download all the layers offered by the service the response time will be very high.

Unlike the image service, in which all the service’s layers appear as one unique layer in the gvSIG view, in this case each layer is downloaded separately and appear in the view grouped under the name defined in the connection dialogue.

After a few seconds the layers appear individually but are grouped under a layer with the name we have defined for it.

The layer symbols are established at random. A pending feature is to recover the service symbols and configure them by default so that gvSIG can display the cartography as similarly as possible to how it was established by the service administrator.


Cached time 11/22/13 04:37:26 Clear cache and reload