Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

The update is intended to expose Weave map engines as a WMS service, but the bundle can also be used to create URL's that can be called from external application to create custom map images, this is because the bundle supports additional parameters beyond those required by WMS which allows for more customised map output.

This update requires at least release 2.4.25.12 and an additional two bundles, com.cohga.server.wms and com.cohga.server.acetate.highlight, which can be downloaded below.

com.cohga.server.wms_1.0.0.jar - Provide a WMS interface into Weave to generate maps
com.cohga.server.acetate.highlight_1.0.0.jar - Provide support for highlighting selected entities in the WMS interface

The bundle must be installed and started (generally by editing the platform\configuration\config.ini file and restarting Weave) and a new configuration created to describe the WMS services that Weave will expose.
To add the new bundles to the config.ini file the following 2 lines should be added to the list of bundles to be started as startup

com.cohga.server.wms@:start,\
com.cohga.server.acetate.highlight@:start,\

A new configuration describes a map context that is similar to that which is setup for a map view in a client configuration, and is generated in a similar way to the maps that are included in a BIRT report.

There can be multiple map context setup, that each describe different map setups.

<?xml version="1.0" encoding="UTF-8"?>

<config xmlns="urn:com.cohga.server.config#1.0" xmlns:wmsserver="urn:com.cohga.server.wms#1.0">
	<wmsserver:context id="test">
		<mapengine id="mapengine.raster">
			<layer>satellite</layer>
		</mapengine>
		<mapengine id="mapengine.vector">
			<layer>property</layer>
			<layer>road</layer>
			<layer>suburb</layer>
			<layer>mccbound</layer>
		</mapengine>
		<mapengine id="mapengine.parks" opacity="0.75">
			<layer>Reserve Images</layer>
		</mapengine>
	</wmsserver:context>
</config>

The above example will expose a new WMS service at /weave/wms/test that will contain the layers listed (and only those layers).
And, when the WMS client tried to draw the map Weave will use the three map engines to generate the individual images and combine them into a single map image to return to the client.
This service should be supported in any WMS compliant client.

Complete option list

Name

Description

WMS Compliant

srs

Coordinate reference system of the coordinates specified in the URL

X

width

Width of generated image in pixels

X

height

Height of generated image in pixels

X

format

Output format of the generated image

X

bgcolor

Background colour

X

transparent

true if transparent images should be created, false if opaque images should be generated

X

bbox

Comma separated minx, miny, maxx and maxy of the generated image

X

layers

List of layers to draw, all layers will be drawn if not set, non drawn if layers is set to no value

X

exceptions

Method used to return errors to the caller

X

size

Comma separated width and height of generated image in pixels

 

dpi

DPI of generated image, to ensure scale dependancies are calculated correctly

 

minx

Left X coordinate

 

miny

Bottom Y coordinate

 

maxx

Right X Coordinate

 

maxy

Top Y coordinate

 

x

Center X coordinate

 

y

Center Y coordinate

 

center

Comma separated X and Y coordinate

 

scale

Scale to generate map at

 

entity

Entity to use to determine map extent and draw highlight

 

ids

Identifiers of entities to zoom to and highlight

 

filter

Filters to be applied to 'ids' before calculating the extent. For use if external system uses different id's for the underlying GIS data

 

buffer

Amount to scale entity extent by to calculate extent, e.g. 1.2 to place a 20% buffer around the entity bounds

 

minscale

Minimum scale to zoom to when zooming to an entity

 

highlight

false if the entity highlight should not be drawn, true if it should be drawn

 

hlcolor

Highlight color

 

When specifying the map extent setting minx, miny, maxx and maxy is the same as specifying just bbox, and bbox will take precedence.
If a bounding box is set it will take precedence over setting the map extent based on a center x,y and scale.
If a center x, y and scale are set they will take precedence over the entity and ids.
Setting size will take precedence over setting width and height.
All of the above values, except srs, can be set in the context and overwritten in the URL.

The above settings will generally be supplied by the WMS client, and defaults can be set in the context.
Generally these will all be set by the WMS client when sending WMS requests to the Weave server and do not need to be specified in the configuration, however, you may want to set these values in the configuration if you're intending on constructing and using the URL's from another application and you want to simplify the URL that the other application needs to use.
For example, if you have an application that you want to always generate an 800x800 PNG image with a light blue background then you could use the URL:
/weave/wms/test?width=800&height=800&bgcolor=0x7f7fff&format=png&bbox=...
or you could set width, height, format and bgcolor in the context and use the following URL instead
/weave/wms/test?bbox=...
This allows you to provide a simplified URL to the application provider while specifying the fixed settings yourself, it all depends upon the requirements of the other application and how much of it can be pre-set.

The highlighting functions require the addition of the com.cohga.server.acetate.highlight bundle, as well as the com.cohga.server.wms bundle.
If this bundle is not installed and started then the highlights will not draw.

Basic Context Example Requests

These example assume the above example map context

Generate a map at a given extent
/weave/wms/test?maxx=355971&maxy=5831675&minx=323098&miny=5807358&width=800&height=600&format=png32
/weave/wms/test?bbox=323098,580735,355971,5831675&size=800,600&format=png32
Generate a map at a given location
/weave/wms/test?x=355971&y=5831675&scale=5000&width=800&height=600&format=png32
/weave/wms/test?center=355971,5831675&scale=5000&size=800,600&format=png32
Generate a map at a given property
/weave/wms/test?entity=property&ids=242765&minscale=2500&buffer=1.2&width=800&height=600&format=png32
Generate a map at a given property and not highlighting the property
/weave/wms/test?entity=property&ids=242765&minscale=2500&buffer=1.2&highlight=false&width=800&height=600&format=png32
Generate a map at a given location and just highlight a property
/weave/wms/test?x=355971&y=5831675&scale=5000&entity=property&ids=242765&minscale=2500&buffer=1.2&width=800&height=600&format=png32

Extended Context Example Requests

The following example assume the following map context and are the equivalent of the above

<?xml version="1.0" encoding="UTF-8"?>

<config xmlns="urn:com.cohga.server.config#1.0" xmlns:wmsserver="urn:com.cohga.server.wms#1.0">
	<wmsserver:context id="test">
		<minscale>2500</minscale>
		<buffer>1.2</buffer>
		<width>800</width>
		<height>600</height>
		<format>png32</format>
		<entity>property</entity>
		<mapengine id="mapengine.raster">
			<layer>satellite</layer>
		</mapengine>
		<mapengine id="mapengine.vector">
			<layer>property</layer>
			<layer>road</layer>
			<layer>suburb</layer>
			<layer>mccbound</layer>
		</mapengine>
		<mapengine id="mapengine.parks" opacity="0.75">
			<layer>Reserve Images</layer>
		</mapengine>
	</wmsserver:context>
</config>
Generate a map at a given extent
/weave/wms/test?maxx=355971&maxy=5831675&minx=323098&miny=5807358
/weave/wms/test?bbox=323098,580735,355971,5831675
Generate a map at a given location
/weave/wms/test?x=355971&y=5831675&scale=5000
/weave/wms/test?center=355971,5831675&scale=5000
Generate a map at a given property
/weave/wms/test?ids=242765
Generate a map at a given road with a min scale of 5000
/weave/wms/test?entity=roads&ids=AS14124&minscale=5000
Generate a map at a centred on given road with a min scale of 5000 showing just the roads and property layers
/weave/wms/test?entity=roads&ids=AS14124&minscale=5000&layers=road,property

The last example specifies the layer as road and property because there's only one road and property layer in all of the map engines, if the layer id was not unique then the layer can be specified by preceding it with the map engine id and a |, e.g. mapengine.vector|roads

Generated image showing highlighted property

Using multiple contexts allows you to setup different maps depending on the target use.

  • No labels