Spatial Engine

A spatial engine provides access to a service that can perform spatial operations, such as determining what entities fall within a polygon; The spatial engine also provides a spatial perspective to the entities that the system will use. For example, providing details about the coordinate reference system that the entity is stored in.

The spatial engine will generally be something like ArcSDE, Oracle Spatial, Shapefiles or WFS, and usually at least one spatial engine will be defined.

Because there are different spatial engines available, there are different configuration parameters available for each one. Consequently, the content of a spatial engine tag will be different depending upon the actual spatial engine being used.

Namespace

urn:com.cohga.server.spatial.geotools#1.0

Tags

spatialengine

Properties

Name

Type

Required

Description

id

string

yes

unique identifier

Sub-tags

Depends on type of spatial engine

Content

Depends on type of spatial engine

Resetting a spatial engine

The list of layers/tables available in a spatial engine are read when the spatial engine starts up and are cached for the lifetime of the spatial engine, which means that layers/tables added to the spatial engine after startup are not know to Weave.

To update the spatial engine after a layer/table has been added the spatial engine should be reset, prior to Weave version 2.6.9 this would have to be done by either making a small unimportant change to the spatial engine configuration (e.g. adding <a/> to the config, which would be ignored, but trigger Weave to restart the spatial engine) then saving the change, then reverting it and saving the file again, or commenting out the spatial engine configuration completely, saving the file, undoing the change and saving the file again. Both options would force Weave to reload the list of available tables. And, of course you could just restart the Weave server.

As of Weave version 2.6.9 there are two options to reset a spatial engine without having to edit the configuration. Firstly the spmd command has a new sub-command, reset, which takes the name of the spatial engine to reset, e.g. spmd reset opendata. The second option is a reset button in the Spatial Engine tool in the Admin UI where you can select the spatial engine from the list and click the reset button.

Examples

Connecting to ArcSDE

<spatial:spatialengine id="arcsde"> <dbtype>arcsde</dbtype> <server>hostname</server> <port>5151</port> <user>username</user> <password>password</password> <pool> <minConnections>2</minConnections> <maxConnections>5</maxConnections> <timeOut>10000</timeOut> <testOnBorrow>true</testOnBorrow> <testOnReturn>false</testOnReturn> <testWhileIdle>false</testWhileIdle> <timeBetweenEvictionRunsMillis>5000</timeBetweenEvictionRunsMillis> <whenExhaustedAction>block</whenExhaustedAction> </pool> </spatial:spatialengine>

Connecting to Oracle Spatial

<spatial:spatialengine id="oracle"> <dbtype>oracle</dbtype> <host>hostname</host> <port>1521</port> <user>username</user> <passwd>password</passwd> <schema>SCHEMA</schema> <instance>instance</instance> </spatial:spatialengine>

Connecting to Microsoft SQL Server

<spatial:spatialengine id="sqlserver"> <dbtype>sqlserver</dbtype> <host>hostname</host> <port>1433</port> <user>username</user> <passwd>password</passwd> <database>password</database> <schema>SCHEMA</schema> <geometrymetadatatable>v_geometry_columns</geometrymetadatatable> </spatial:spatialengine>

Connecting to Microsoft SQL Server using JNDI

Connecting to a Shapefile directory

Connecting to WFS

Connecting to ArcGIS

Connecting to a GeoPackage

Connecting to a GeoJSON file