The AGCommons geospatial platform needs to support a wide variety of users and a large number of different scenarios in order to be successful.
From a design perspective, the ideal platform solution must be:
♦ Unbiased in terms of software tools and platforms.
♦ Based on standards to enable maximum interoperability.
♦ Driven by user needs and be user oriented.
We need something that can be distributed widely and freely (as described in my previous post) and that can also take advantage of the robust processing and modeling environment offered by proprietary soft wares such ArcGIS Server from ESRI.
Part of our solution has been to configure two separate middle-ware components in the same spatially enabled database. In our case, we are using both ArcSDE 9.3 from ESRI and GeoServer 2.0 from OpenGeo. Developers sometimes consider these diametrically opposed technologies, but they can actually be configured to work quite well together on Postgres using a few simple steps. If we had complex versions or a multi-user editing environment, I would recommend this configuration, as it will work perfectly for AGCommons.
Firstly, PostGIS needs to be installed to get the PostGIS native geometry types for the database. This is easily done using the stack builder that is now included with Postgres releases. Secondly, ArcSDE needs to be configured to use the native PostGIS geometry types. This can be done by altering the entry in the ArcSDE dbtune file to PG_GEOMETRY:
##DEFAULTS
GEOMETRY_STORAGE “PG_GEOMETRY”.
When creating the database, it is important to use the PostGIS template, as opposed to the standard Postgres template, which is the default setting, after which you can grant the SDE users permission to access the new database. Then, when you load data through ArcGIS, it will automatically create the PostGIS geometry for the layers, which can then be easily incorporated with GeoServer or a desktop GIS such as QGIS or ArcGIS.
Although this is unconventional, AGCommons is not taking a stand on a particular technology. It is instead blending technical platforms within the same environment. This allows us to get the best of various software environments, while giving us flexibility as we grow.
Leave a Reply