[teiid-issues] [JBoss JIRA] (TEIID-3869) Enable Teiid to be exposed as a GIS compliant data source

Steven Hawkins (JIRA) issues at jboss.org
Fri Jan 15 09:24:00 EST 2016


    [ https://issues.jboss.org/browse/TEIID-3869?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13148340#comment-13148340 ] 

Steven Hawkins edited comment on TEIID-3869 at 1/15/16 9:23 AM:
----------------------------------------------------------------

Added an initial commit for 9.0 that will backport cleanly.  The functions added are:

ST_SIMPLIFY
ST_FORCE_2D (currently just a dummy function)
ST_ENVELOPE
ST_WITHIN
ST_DWITHIN
ST_EXTENT (aggregate function)
ST_HASARC (currently just a dummy function)
&& (operator that we only support with geometry arguments)
ST_GEOMFROMEWKT
ST_ASEWKB
ST_GEOMFROMEWKB

To run with Geoserver you can setup a postgis instance - http://docs.geoserver.org/stable/en/user/gettingstarted/postgis-quickstart/index.html
The instructions are a little out of date, you may just use psql to add the postgis extensions - http://postgis.net/docs/postgis_installation.html

Run Teiid and add that postgresl/postgis instance as a source:

For example in embedded:
     ModelMetaData mmd = new ModelMetaData();
     mmd.setName("public");
     mmd.setModelType(Model.Type.PHYSICAL);
     mmd.addSourceMapping("pg", "pg", "pg");
     mmd.addProperty("importer.useQualifiedName", "false");
     mmd.addProperty("importer.schemaPattern", "public");
     mmd.addProperty("importer.excludeTables", "geometry_columns");
     es.deployVDB("nyc", mmd);

Note that useQualifiedNames is off and we specifically exclude geometry_columns from the source - this is because Geoserver makes unqualified queries that reference geometry_columns and we need it to resolve against our system table, rather that being ambiguous.  You'll also need the pg/ODBC transport to be enabled:

     EmbeddedConfiguration ec = new EmbeddedConfiguration();
     SocketConfiguration sc = new SocketConfiguration();
     sc.setProtocol(WireProtocol.pg);
     sc.setPortNumber(5433);
     ec.addTransport(sc);

Also org.teiid.backslashDefaultMatchEscape must be set to true as geoserver will issue pg (non-ansi) queries with like predicates assuming \ as the escape. 

>From there just follow the instructions from the rest of http://docs.geoserver.org/stable/en/user/gettingstarted/postgis-quickstart/index.html but point it to the Teiid port instead of postgresl. 


was (Author: shawkins):
Added an initial commit for 9.0 that will backport cleanly.  The functions added are:

ST_SIMPLIFY
ST_FORCE_2D (currently just a dummy function)
ST_ENVELOPE
ST_WITHIN
ST_DWITHIN
ST_EXTENT (aggregate function)
ST_HASARC (currently just a dummy function)
&& (operator that we only support with geometry arguments)
ST_GEOMFROMEWKT
ST_ASEWKB
ST_GEOMFROMEWKB

To run with Geoserver you can setup a postgis instance - http://docs.geoserver.org/stable/en/user/gettingstarted/postgis-quickstart/index.html
The instructions are a little out of date, you may just use psql to add the postgis extensions - http://postgis.net/docs/postgis_installation.html

Run Teiid and add that postgresl/postgis instance as a source:

For example in embedded:
     ModelMetaData mmd = new ModelMetaData();
     mmd.setName("public");
     mmd.setModelType(Model.Type.PHYSICAL);
     mmd.addSourceMapping("pg", "pg", "pg");
     mmd.addProperty("importer.useQualifiedName", "false");
     mmd.addProperty("importer.schemaPattern", "public");
     mmd.addProperty("importer.excludeTables", "geometry_columns");
     es.deployVDB("nyc", mmd);

Note that useQualifiedNames is off and we specifically exclude geometry_columns from the source - this is because Geoserver makes unqualified queries that reference geometry_columns and we need it to resolve against our system table, rather that being ambiguous.  You'll also need the pg/ODBC transport to be enabled:

     EmbeddedConfiguration ec = new EmbeddedConfiguration();
     SocketConfiguration sc = new SocketConfiguration();
     sc.setProtocol(WireProtocol.pg);
     sc.setPortNumber(5433);
     ec.addTransport(sc);

>From there just follow the instructions from the rest of http://docs.geoserver.org/stable/en/user/gettingstarted/postgis-quickstart/index.html but point it to the Teiid port instead of postgresl. 

> Enable Teiid to be exposed as a GIS compliant data source
> ---------------------------------------------------------
>
>                 Key: TEIID-3869
>                 URL: https://issues.jboss.org/browse/TEIID-3869
>             Project: Teiid
>          Issue Type: Feature Request
>          Components: JDBC Driver, OData, ODBC
>            Reporter: Van Halbert
>            Assignee: Steven Hawkins
>
> See 
> http://www.esri.com/~/media/Files/Pdfs/library/whitepapers/pdfs/supported-ogc-iso-standards.pdf
> WMS - http://www.opengeospatial.org/standards/wms
> WFS - http://www.opengeospatial.org/standards/wfs
> Using MapViewer to show maps based on WMS services. The WMS services are provided by a GeoServer like ArcGIS or GeoServer. 
> OData has also some capabilities in the Geo space especially on the .Net libraries side.
> See http://www.odata.org/libraries/ for Microsoft.Spatial (OData v4) and System.Spatial (OData v1-3)



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the teiid-issues mailing list