[Geoserver-users] FeatureType has a NULL extent

I have been trying to add a FeatureType that is based on a PostGIS view, but
I get the following error:
"The FeatureType 'v_vehicle_lines' has a NULL extent. HINT: the dataset is
empty or has no default geometry attribute."

Setup: Ubuntu OS, GeoServer 1.6.0-RC1, PostgreSQL 8.3, PostGIS 1.3

Here is the view definition. (The returned data looks fine from within
pgAdmin.)
CREATE OR REPLACE VIEW v_vehicle_lines AS
SELECT obs.vehicleid, st_makeline(obs.geom) AS st_makeline
   FROM ( SELECT v_truck_obs.vehicleid, v_truck_obs.geom
           FROM v_truck_obs
          WHERE v_truck_obs.datestamp > '2008-02-13 00:00:00'::timestamp
without time zone
          ORDER BY v_truck_obs.datestamp) obs
  GROUP BY obs.vehicleid
  ORDER BY obs.vehicleid;
ALTER TABLE v_vehicle_lines OWNER TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES, TRIGGER ON TABLE
v_vehicle_lines TO postgres;
GRANT SELECT ON TABLE v_vehicle_lines TO geoserver;
COMMENT ON VIEW v_vehicle_lines IS 'creates a single line based on each
vehicleid';

The geometry_columns table has an entry for the view...
"";"public";"v_vehicle_lines";"route_geom";2;4326;"MULTILINESTRING"

Here is the geoserver log...
29 Apr 17:48:52 DEBUG [data.postgis] - PostGIS version is 1.3 USE_GEOS=1
USE_PROJ=1 USE_STATS=1
29 Apr 17:48:52 DEBUG [data.postgis] - Postgres version is 8.3.0
29 Apr 17:48:52 DEBUG [data.postgis] - geometry type sql statement is SELECT
type FROM geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [data.postgis] - geometry type is: MULTILINESTRING
29 Apr 17:48:52 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [geoserver.action] - form
bean:org.vfny.geoserver.form.data.TypesEditorForm
29 Apr 17:48:52 DEBUG [geoserver.action] - TypesEditorAction is Generate
29 Apr 17:48:52 DEBUG [geoserver.action] - BBOX: Generate
29 Apr 17:48:52 DEBUG [data.property] - can't process parameters
java.io.IOException: Parameter directory is required:Directory containting
property files
        at
org.geotools.data.DataStoreFactorySpi$Param.lookUp(DataStoreFactorySpi.java:392)
        at
org.geotools.data.property.PropertyDataStoreFactory.directoryLookup(PropertyDataStoreFactory.java:187)
        at
org.geotools.data.property.PropertyDataStoreFactory.canProcess(PropertyDataStoreFactory.java:156)
        at
org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:90)
        at
org.vfny.geoserver.util.DataStoreUtils.getDataStore(DataStoreUtils.java:62)
        at
org.vfny.geoserver.util.DataStoreUtils.acquireDataStore(DataStoreUtils.java:51)
        at
org.vfny.geoserver.config.DataStoreConfig.findDataStore(DataStoreConfig.java:330)
        at
org.vfny.geoserver.action.data.TypesEditorAction.executeBBox(TypesEditorAction.java:219)
        at
org.vfny.geoserver.action.data.TypesEditorAction.execute(TypesEditorAction.java:132)
        at
org.vfny.geoserver.action.ConfigAction.execute(ConfigAction.java:101)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:459)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1054)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
        at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
        at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:358)
        at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:231)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:629)
        at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:453)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
        at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
        at org.mortbay.jetty.Server.handle(Server.java:303)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:452)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:735)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:636)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:349)
        at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:320)
        at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
29 Apr 17:48:52 DEBUG [data.postgis] - PostGIS version is 1.3 USE_GEOS=1
USE_PROJ=1 USE_STATS=1
29 Apr 17:48:52 DEBUG [data.postgis] - Postgres version is 8.3.0
29 Apr 17:48:53 DEBUG [data.postgis] - geometry type sql statement is SELECT
type FROM geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [data.postgis] - geometry type is: MULTILINESTRING
29 Apr 17:48:53 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [geoserver.action] - calculating bbox for their
dataset
29 Apr 17:48:53 DEBUG [data.jdbc] - calling sql builder with filter
Filter.INCLUDE
29 Apr 17:48:53 DEBUG [data.jdbc] - sql is SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:53 DEBUG [data.jdbc] - SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:53 DEBUG [data.jdbc] - About to execute query: SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:58 DEBUG [geoserver.action] - FeatureType 'v_vehicle_lines' has
a null bounding box

--
View this message in context: http://www.nabble.com/FeatureType-has-a-NULL-extent-tp16971524p16971524.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

Hi,

I am not sure if I read this right, but does your view have at all now a column named as
route_geom?

-Jukka Rahkonen-

-----Alkuperäinen viesti-----
Lähettäjä: geoserver-users-bounces@lists.sourceforge.net puolesta: Tyler Erickson
Lähetetty: ke 30.4.2008 1:02
Vastaanottaja: geoserver-users@lists.sourceforge.net
Aihe: [Geoserver-users] FeatureType has a NULL extent

I have been trying to add a FeatureType that is based on a PostGIS view, but
I get the following error:
"The FeatureType 'v_vehicle_lines' has a NULL extent. HINT: the dataset is
empty or has no default geometry attribute."

Setup: Ubuntu OS, GeoServer 1.6.0-RC1, PostgreSQL 8.3, PostGIS 1.3

Here is the view definition. (The returned data looks fine from within
pgAdmin.)
CREATE OR REPLACE VIEW v_vehicle_lines AS
SELECT obs.vehicleid, st_makeline(obs.geom) AS st_makeline
   FROM ( SELECT v_truck_obs.vehicleid, v_truck_obs.geom
           FROM v_truck_obs
          WHERE v_truck_obs.datestamp > '2008-02-13 00:00:00'::timestamp
without time zone
          ORDER BY v_truck_obs.datestamp) obs
  GROUP BY obs.vehicleid
  ORDER BY obs.vehicleid;
ALTER TABLE v_vehicle_lines OWNER TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES, TRIGGER ON TABLE
v_vehicle_lines TO postgres;
GRANT SELECT ON TABLE v_vehicle_lines TO geoserver;
COMMENT ON VIEW v_vehicle_lines IS 'creates a single line based on each
vehicleid';

The geometry_columns table has an entry for the view...
"";"public";"v_vehicle_lines";"route_geom";2;4326;"MULTILINESTRING"

Here is the geoserver log...
29 Apr 17:48:52 DEBUG [data.postgis] - PostGIS version is 1.3 USE_GEOS=1
USE_PROJ=1 USE_STATS=1
29 Apr 17:48:52 DEBUG [data.postgis] - Postgres version is 8.3.0
29 Apr 17:48:52 DEBUG [data.postgis] - geometry type sql statement is SELECT
type FROM geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [data.postgis] - geometry type is: MULTILINESTRING
29 Apr 17:48:52 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [geoserver.action] - form
bean:org.vfny.geoserver.form.data.TypesEditorForm
29 Apr 17:48:52 DEBUG [geoserver.action] - TypesEditorAction is Generate
29 Apr 17:48:52 DEBUG [geoserver.action] - BBOX: Generate
29 Apr 17:48:52 DEBUG [data.property] - can't process parameters
java.io.IOException: Parameter directory is required:Directory containting
property files
        at
org.geotools.data.DataStoreFactorySpi$Param.lookUp(DataStoreFactorySpi.java:392)
        at
org.geotools.data.property.PropertyDataStoreFactory.directoryLookup(PropertyDataStoreFactory.java:187)
        at
org.geotools.data.property.PropertyDataStoreFactory.canProcess(PropertyDataStoreFactory.java:156)
        at
org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:90)
        at
org.vfny.geoserver.util.DataStoreUtils.getDataStore(DataStoreUtils.java:62)
        at
org.vfny.geoserver.util.DataStoreUtils.acquireDataStore(DataStoreUtils.java:51)
        at
org.vfny.geoserver.config.DataStoreConfig.findDataStore(DataStoreConfig.java:330)
        at
org.vfny.geoserver.action.data.TypesEditorAction.executeBBox(TypesEditorAction.java:219)
        at
org.vfny.geoserver.action.data.TypesEditorAction.execute(TypesEditorAction.java:132)
        at
org.vfny.geoserver.action.ConfigAction.execute(ConfigAction.java:101)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:459)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1054)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
        at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
        at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:358)
        at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:231)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:629)
        at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:453)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
        at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
        at org.mortbay.jetty.Server.handle(Server.java:303)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:452)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:735)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:636)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:349)
        at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:320)
        at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
29 Apr 17:48:52 DEBUG [data.postgis] - PostGIS version is 1.3 USE_GEOS=1
USE_PROJ=1 USE_STATS=1
29 Apr 17:48:52 DEBUG [data.postgis] - Postgres version is 8.3.0
29 Apr 17:48:53 DEBUG [data.postgis] - geometry type sql statement is SELECT
type FROM geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [data.postgis] - geometry type is: MULTILINESTRING
29 Apr 17:48:53 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [geoserver.action] - calculating bbox for their
dataset
29 Apr 17:48:53 DEBUG [data.jdbc] - calling sql builder with filter
Filter.INCLUDE
29 Apr 17:48:53 DEBUG [data.jdbc] - sql is SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:53 DEBUG [data.jdbc] - SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:53 DEBUG [data.jdbc] - About to execute query: SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:58 DEBUG [geoserver.action] - FeatureType 'v_vehicle_lines' has
a null bounding box

--
View this message in context: http://www.nabble.com/FeatureType-has-a-NULL-extent-tp16971524p16971524.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Jukka,

No, you are reading it right. Unfortunately, I seem to have posted an old definition of the view. Let me try that again...

Here is the current view definition (with the route_geom column)...

CREATE OR REPLACE VIEW v_vehicle_lines AS
SELECT
    obs.vehicleid,
    obs.obs_date,
    count(obs.vehicleid) AS obs_count,
    min(obs.datestamp) AS min_time,
    max(obs.datestamp) AS max_time,
    (max(obs.datestamp) - min(obs.datestamp))::time without time zone AS elapsed_time,
    st_makeline(obs.geom) AS route_geom
   FROM ( SELECT v_truck_obs.vehicleid,
        v_truck_obs.datestamp,
        date_trunc('day'::text, v_truck_obs.datestamp) AS obs_date,
        v_truck_obs.geom
           FROM v_truck_obs
          ORDER BY v_truck_obs.datestamp) obs
  GROUP BY obs.vehicleid, obs.obs_date
  ORDER BY obs.vehicleid, obs.obs_date;
ALTER TABLE v_vehicle_lines OWNER TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES, TRIGGER ON TABLE v_vehicle_lines TO postgres;
GRANT SELECT ON TABLE v_vehicle_lines TO geoserver;
COMMENT ON VIEW v_vehicle_lines IS 'creates a single line based on each vehicleid';

- Tyler

Rahkonen Jukka wrote:

Hi,

I am not sure if I read this right, but does your view have at all now a column named as route_geom?

-Jukka Rahkonen-

-----Alkuperäinen viesti-----
Lähettäjä: geoserver-users-bounces@lists.sourceforge.net puolesta: Tyler Erickson
Lähetetty: ke 30.4.2008 1:02
Vastaanottaja: geoserver-users@lists.sourceforge.net
Aihe: [Geoserver-users] FeatureType has a NULL extent

I have been trying to add a FeatureType that is based on a PostGIS view, but
I get the following error:
"The FeatureType 'v_vehicle_lines' has a NULL extent. HINT: the dataset is
empty or has no default geometry attribute."

Setup: Ubuntu OS, GeoServer 1.6.0-RC1, PostgreSQL 8.3, PostGIS 1.3

Here is the view definition. (The returned data looks fine from within
pgAdmin.)

(old view deleted...)

The geometry_columns table has an entry for the view...
"";"public";"v_vehicle_lines";"route_geom";2;4326;"MULTILINESTRING"

Here is the geoserver log...
29 Apr 17:48:52 DEBUG [data.postgis] - PostGIS version is 1.3 USE_GEOS=1
USE_PROJ=1 USE_STATS=1
29 Apr 17:48:52 DEBUG [data.postgis] - Postgres version is 8.3.0
29 Apr 17:48:52 DEBUG [data.postgis] - geometry type sql statement is SELECT
type FROM geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [data.postgis] - geometry type is: MULTILINESTRING
29 Apr 17:48:52 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [geoserver.action] - form
bean:org.vfny.geoserver.form.data.TypesEditorForm
29 Apr 17:48:52 DEBUG [geoserver.action] - TypesEditorAction is Generate
29 Apr 17:48:52 DEBUG [geoserver.action] - BBOX: Generate
29 Apr 17:48:52 DEBUG [data.property] - can't process parameters
java.io.IOException: Parameter directory is required:Directory containting
property files
        at
org.geotools.data.DataStoreFactorySpi$Param.lookUp(DataStoreFactorySpi.java:392)
        at
org.geotools.data.property.PropertyDataStoreFactory.directoryLookup(PropertyDataStoreFactory.java:187)
        at
org.geotools.data.property.PropertyDataStoreFactory.canProcess(PropertyDataStoreFactory.java:156)
        at
org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:90)
        at
org.vfny.geoserver.util.DataStoreUtils.getDataStore(DataStoreUtils.java:62)
        at
org.vfny.geoserver.util.DataStoreUtils.acquireDataStore(DataStoreUtils.java:51)
        at
org.vfny.geoserver.config.DataStoreConfig.findDataStore(DataStoreConfig.java:330)
        at
org.vfny.geoserver.action.data.TypesEditorAction.executeBBox(TypesEditorAction.java:219)
        at
org.vfny.geoserver.action.data.TypesEditorAction.execute(TypesEditorAction.java:132)
        at
org.vfny.geoserver.action.ConfigAction.execute(ConfigAction.java:101)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:459)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1054)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
        at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
        at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:358)
        at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:231)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:629)
        at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:453)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
        at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
        at org.mortbay.jetty.Server.handle(Server.java:303)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:452)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:735)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:636)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:349)
        at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:320)
        at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
29 Apr 17:48:52 DEBUG [data.postgis] - PostGIS version is 1.3 USE_GEOS=1
USE_PROJ=1 USE_STATS=1
29 Apr 17:48:52 DEBUG [data.postgis] - Postgres version is 8.3.0
29 Apr 17:48:53 DEBUG [data.postgis] - geometry type sql statement is SELECT
type FROM geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [data.postgis] - geometry type is: MULTILINESTRING
29 Apr 17:48:53 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [geoserver.action] - calculating bbox for their
dataset
29 Apr 17:48:53 DEBUG [data.jdbc] - calling sql builder with filter
Filter.INCLUDE
29 Apr 17:48:53 DEBUG [data.jdbc] - sql is SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:53 DEBUG [data.jdbc] - SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:53 DEBUG [data.jdbc] - About to execute query: SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:58 DEBUG [geoserver.action] - FeatureType 'v_vehicle_lines' has
a null bounding box

--
Tyler A. Erickson, Ph.D.
Research Scientist
Michigan Tech Research Institute
3600 Green Court, Suite 100
Ann Arbor, MI 48105
tyler.erickson@anonymised.com
www.mtri.org
www.michiganview.org

I suspect that the latter query has still some problems with taking the geometry data.
First select has

SELECT st_makeline(obs.geom) AS route_geom

while in the second, where the first is selecting from
(SELECT...v_truck_obs.geom FROM v_truck_obs_geom)

What happens if you put it like

SELECT new_geom AS route_geom FROM...
(SELECT v_truck_obs_geom AS new_geom)

Sorry if it fails, I am newbie with PostGIS.

-Jukka-

-----Alkuperäinen viesti-----
Lähettäjä: Tyler Erickson [mailto:tyler.erickson@anonymised.com]
Lähetetty: ke 30.4.2008 3:36
Vastaanottaja: Rahkonen Jukka
Kopio: geoserver-users@lists.sourceforge.net
Aihe: Re: [Geoserver-users] FeatureType has a NULL extent

Jukka,

No, you are reading it right. Unfortunately, I seem to have posted an
old definition of the view. Let me try that again...

Here is the current view definition (with the route_geom column)...

CREATE OR REPLACE VIEW v_vehicle_lines AS
SELECT
    obs.vehicleid,
    obs.obs_date,
    count(obs.vehicleid) AS obs_count,
    min(obs.datestamp) AS min_time,
    max(obs.datestamp) AS max_time,
    (max(obs.datestamp) - min(obs.datestamp))::time without time zone AS
elapsed_time,
    st_makeline(obs.geom) AS route_geom
   FROM ( SELECT v_truck_obs.vehicleid,
        v_truck_obs.datestamp,
        date_trunc('day'::text, v_truck_obs.datestamp) AS obs_date,
        v_truck_obs.geom
           FROM v_truck_obs
          ORDER BY v_truck_obs.datestamp) obs
  GROUP BY obs.vehicleid, obs.obs_date
  ORDER BY obs.vehicleid, obs.obs_date;
ALTER TABLE v_vehicle_lines OWNER TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES, TRIGGER ON TABLE
v_vehicle_lines TO postgres;
GRANT SELECT ON TABLE v_vehicle_lines TO geoserver;
COMMENT ON VIEW v_vehicle_lines IS 'creates a single line based on each
vehicleid';

- Tyler

Rahkonen Jukka wrote:

Hi,

I am not sure if I read this right, but does your view have at all now a column named as
route_geom?

-Jukka Rahkonen-

-----Alkuperäinen viesti-----
Lähettäjä: geoserver-users-bounces@lists.sourceforge.net puolesta: Tyler Erickson
Lähetetty: ke 30.4.2008 1:02
Vastaanottaja: geoserver-users@lists.sourceforge.net
Aihe: [Geoserver-users] FeatureType has a NULL extent

I have been trying to add a FeatureType that is based on a PostGIS view, but
I get the following error:
"The FeatureType 'v_vehicle_lines' has a NULL extent. HINT: the dataset is
empty or has no default geometry attribute."

Setup: Ubuntu OS, GeoServer 1.6.0-RC1, PostgreSQL 8.3, PostGIS 1.3

Here is the view definition. (The returned data looks fine from within
pgAdmin.)

(old view deleted...)

The geometry_columns table has an entry for the view...
"";"public";"v_vehicle_lines";"route_geom";2;4326;"MULTILINESTRING"

Here is the geoserver log...
29 Apr 17:48:52 DEBUG [data.postgis] - PostGIS version is 1.3 USE_GEOS=1
USE_PROJ=1 USE_STATS=1
29 Apr 17:48:52 DEBUG [data.postgis] - Postgres version is 8.3.0
29 Apr 17:48:52 DEBUG [data.postgis] - geometry type sql statement is SELECT
type FROM geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [data.postgis] - geometry type is: MULTILINESTRING
29 Apr 17:48:52 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:52 DEBUG [geoserver.action] - form
bean:org.vfny.geoserver.form.data.TypesEditorForm
29 Apr 17:48:52 DEBUG [geoserver.action] - TypesEditorAction is Generate
29 Apr 17:48:52 DEBUG [geoserver.action] - BBOX: Generate
29 Apr 17:48:52 DEBUG [data.property] - can't process parameters
java.io.IOException: Parameter directory is required:Directory containting
property files
        at
org.geotools.data.DataStoreFactorySpi$Param.lookUp(DataStoreFactorySpi.java:392)
        at
org.geotools.data.property.PropertyDataStoreFactory.directoryLookup(PropertyDataStoreFactory.java:187)
        at
org.geotools.data.property.PropertyDataStoreFactory.canProcess(PropertyDataStoreFactory.java:156)
        at
org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:90)
        at
org.vfny.geoserver.util.DataStoreUtils.getDataStore(DataStoreUtils.java:62)
        at
org.vfny.geoserver.util.DataStoreUtils.acquireDataStore(DataStoreUtils.java:51)
        at
org.vfny.geoserver.config.DataStoreConfig.findDataStore(DataStoreConfig.java:330)
        at
org.vfny.geoserver.action.data.TypesEditorAction.executeBBox(TypesEditorAction.java:219)
        at
org.vfny.geoserver.action.data.TypesEditorAction.execute(TypesEditorAction.java:132)
        at
org.vfny.geoserver.action.ConfigAction.execute(ConfigAction.java:101)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:459)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1054)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
        at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
        at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
        at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:358)
        at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:231)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:629)
        at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:453)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
        at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
        at org.mortbay.jetty.Server.handle(Server.java:303)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:452)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:735)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:636)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:349)
        at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:320)
        at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
29 Apr 17:48:52 DEBUG [data.postgis] - PostGIS version is 1.3 USE_GEOS=1
USE_PROJ=1 USE_STATS=1
29 Apr 17:48:52 DEBUG [data.postgis] - Postgres version is 8.3.0
29 Apr 17:48:53 DEBUG [data.postgis] - geometry type sql statement is SELECT
type FROM geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [data.postgis] - geometry type is: MULTILINESTRING
29 Apr 17:48:53 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [data.postgis] - srid statement is SELECT srid FROM
geometry_columns WHERE f_table_schema='public' AND
f_table_name='v_vehicle_lines' AND f_geometry_column='route_geom';
29 Apr 17:48:53 DEBUG [geoserver.action] - calculating bbox for their
dataset
29 Apr 17:48:53 DEBUG [data.jdbc] - calling sql builder with filter
Filter.INCLUDE
29 Apr 17:48:53 DEBUG [data.jdbc] - sql is SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:53 DEBUG [data.jdbc] - SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:53 DEBUG [data.jdbc] - About to execute query: SELECT
encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"
29 Apr 17:48:58 DEBUG [geoserver.action] - FeatureType 'v_vehicle_lines' has
a null bounding box

--
Tyler A. Erickson, Ph.D.
Research Scientist
Michigan Tech Research Institute
3600 Green Court, Suite 100
Ann Arbor, MI 48105
tyler.erickson@anonymised.com
www.mtri.org
www.michiganview.org

Tyler Erickson ha scritto:

I have been trying to add a FeatureType that is based on a PostGIS view, but
I get the following error:
"The FeatureType 'v_vehicle_lines' has a NULL extent. HINT: the dataset is
empty or has no default geometry attribute."

Setup: Ubuntu OS, GeoServer 1.6.0-RC1, PostgreSQL 8.3, PostGIS 1.3

Here is the view definition. (The returned data looks fine from within
pgAdmin.)
CREATE OR REPLACE VIEW v_vehicle_lines AS SELECT obs.vehicleid, st_makeline(obs.geom) AS st_makeline
   FROM ( SELECT v_truck_obs.vehicleid, v_truck_obs.geom
           FROM v_truck_obs
          WHERE v_truck_obs.datestamp > '2008-02-13 00:00:00'::timestamp
without time zone
          ORDER BY v_truck_obs.datestamp) obs
  GROUP BY obs.vehicleid
  ORDER BY obs.vehicleid;
ALTER TABLE v_vehicle_lines OWNER TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES, TRIGGER ON TABLE
v_vehicle_lines TO postgres;
GRANT SELECT ON TABLE v_vehicle_lines TO geoserver;
COMMENT ON VIEW v_vehicle_lines IS 'creates a single line based on each
vehicleid';

The geometry_columns table has an entry for the view...
"";"public";"v_vehicle_lines";"route_geom";2;4326;"MULTILINESTRING"

Hum, GeoServer is using the following query to grab the bbox:
SELECT encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"

Can you try running this one, that will lead to a more human readable
output:
SELECT AsText(force_2d("route_geom")) FROM
"public"."v_vehicle_lines"

and see what's the result?
Cheers
Andrea

Running the query
SELECT AsText(force_2d("route_geom")) FROM "public"."v_vehicle_lines"
returns 34,000+ records (which seems reasonable)

Here are the first 10 records returned...

astext
LINESTRING(-79.68336 43.63037,-79.68336 43.63037)
LINESTRING(-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626,-79.70566 43.757626,-79.70566
43.757626,-79.70566 43.757626)
LINESTRING(-79.49749 43.823307,-79.499756 43.786118,-79.70706
43.754913,-79.70706 43.754913,-79.70706 43.754913,-79.70706
43.754913,-79.70706 43.754913,-79.70706 43.754913,-79.70706
43.754913,-79.705696 43.756165,-79.70706 43.754913,-79.70706
43.754913,-79.49948 43.786224,-79.705635 43.75731,-79.49713
43.828415,-79.49713 43.828415,-79.705696 43.757225,-79.70706
43.754913,-79.49718 43.828533,-79.70706 43.754913,-79.70706
43.754913,-79.705696 43.757225,-79.70706 43.754913,-79.705696
43.757225,-79.70706 43.754913,-79.70706 43.754913,-79.70706
43.754913,-79.49817 43.827564,-79.70706 43.754913,-79.70706
43.754913,-79.70706 43.754913,-79.70706 43.754913,-79.70706
43.754913,-79.499756 43.786118,-79.70706 43.754913,-79.66457
43.640785,-79.497826 43.79339,-79.70706 43.754913,-79.70706
43.754913,-79.70706 43.754913)
LINESTRING(-79.52904 43.75449,-79.70565 43.75735,-79.705765
43.757362,-79.52904 43.75449,-79.52904 43.75449,-79.705765
43.757362,-79.52904 43.75449,-79.705765 43.757362,-79.52904
43.75449,-79.52904 43.75449,-79.52904 43.75449,-79.705765
43.757362,-79.52904 43.75449,-79.705765 43.757362,-79.52904
43.75449,-79.705765 43.757362,-79.705765 43.757362,-79.705765
43.757362,-79.705765 43.757362,-82.42885 42.99961,-82.42885
42.99961,-82.42885 42.99961,-79.52904 43.75449,-82.42885 42.99961,-82.42885
42.99961,-79.705765 43.757362,-79.52904 43.75449,-82.42885
42.99961,-79.52904 43.75449,-82.42885 42.99961,-79.52904 43.75449,-79.52904
43.75449,-79.705765 43.757362,-82.42885 42.99961,-82.42885
42.99961,-82.42885 42.99961,-82.42885 42.99961,-79.52904 43.75449,-82.42885
42.99961,-82.42885 42.99961,-79.52904 43.75449,-79.52904 43.75449,-79.52904
43.75449,-82.42885 42.99961,-82.42885 42.99961,-79.52904 43.75449,-82.42885
42.99961,-79.52904 43.75449,-79.52886 43.72442,-79.52904 43.75449,-79.52886
43.72442,-79.5246 43.72411,-79.52904 43.75449,-79.52904 43.75449,-79.52904
43.75449)
LINESTRING(-79.705666 43.757355)
LINESTRING(-79.705666 43.757355)
LINESTRING(-79.59336 44.025192,-79.52896 43.72445,-79.66892
43.645245,-79.66892 43.645245,-79.80964 44.02475,-79.529045
43.724426,-79.498184 43.827473,-79.49985 43.78612,-79.52909
43.724407,-79.49638 43.78659,-79.80353 44.01063,-79.52896 43.72445,-79.49727
43.828495,-79.50036 43.78855,-79.497284 43.82853,-79.80964
44.02475,-79.66892 43.645245,-79.66892 43.645245,-79.52896
43.72445,-79.66892 43.645245,-79.52415 43.724773,-79.66892
43.645245,-79.49723 43.828835,-79.49968 43.78865,-79.54524
43.816162,-79.49727 43.828495,-79.80333 44.009853,-79.49978
43.78614,-79.49978 43.78614,-79.498184 43.827473,-79.49978
43.786118,-79.66892 43.645245,-79.705666 43.757355,-79.705666
43.757355,-79.53625 43.75321,-79.66892 43.645245,-79.705666
43.757355,-79.52913 43.724495,-79.5028 43.838146,-79.49985
43.78612,-79.705666 43.757355,-79.49723 43.828835,-79.66892
43.645245,-79.4969 43.7895,-79.705666 43.757355,-79.497025
43.79002,-79.66892 43.645245,-79.49999 43.787884,-79.705666
43.757355,-79.66892 43.645245,-79.532906 43.830753)
LINESTRING(-79.66892 43.645245,-79.66892 43.645245,-79.66892
43.645245,-79.66892 43.645245,-79.66892 43.645245,-79.66892
43.645245,-79.66892 43.645245,-79.66892 43.645245,-79.66892
43.645245,-79.66892 43.645245,-79.66892 43.645245,-79.66892
43.645245,-79.66892 43.645245,-79.66892 43.645245,-79.66892
43.645245,-79.66892 43.645245,-79.66892 43.645245,-79.66892
43.645245,-79.66892 43.645245,-79.66892 43.645245,-79.66892
43.645245,-79.66892 43.645245,-79.66892 43.645245,-79.66892
43.645245,-79.66892 43.645245,-79.66892 43.645245,-79.66892
43.645245,-79.66892 43.645245,-79.66892 43.645245,-79.66892
43.645245,-79.66892 43.645245,-79.66892 43.645245)
LINESTRING(-79.49788 43.825813,-79.49788 43.825813,-79.5263
43.733276,-79.49788 43.825813,-79.49722 43.82866,-79.49722
43.82866,-79.70575 43.757706,-79.70575 43.757706,-79.70575
43.757706,-79.49788 43.825813,-79.70575 43.757706,-79.49788
43.825813,-79.70575 43.757706,-79.498314 43.828266,-79.49715
43.82865,-79.529015 43.723454,-79.498 43.826424,-79.70575
43.757706,-79.70575 43.757706,-79.70575 43.757706,-79.49788
43.825813,-79.49715 43.82865,-79.70575 43.757706,-79.50177
43.837746,-79.49788 43.825813,-79.49788 43.825813,-79.70575
43.757706,-79.49788 43.825813,-79.70575 43.757706,-79.70575
43.757706,-79.523 43.833202,-79.49788 43.825813,-79.49788
43.825813,-79.49715 43.82865,-79.49788 43.825813,-79.49788
43.825813,-79.49788 43.825813,-79.52942 43.723602,-79.52942 43.723602)
LINESTRING(-79.69952 43.697754,-79.69952 43.697754)

aaime wrote:

Tyler Erickson ha scritto:

I have been trying to add a FeatureType that is based on a PostGIS view,
but
I get the following error:
"The FeatureType 'v_vehicle_lines' has a NULL extent. HINT: the dataset
is
empty or has no default geometry attribute."

Setup: Ubuntu OS, GeoServer 1.6.0-RC1, PostgreSQL 8.3, PostGIS 1.3

Here is the view definition. (The returned data looks fine from within
pgAdmin.)
CREATE OR REPLACE VIEW v_vehicle_lines AS
SELECT obs.vehicleid, st_makeline(obs.geom) AS st_makeline
   FROM ( SELECT v_truck_obs.vehicleid, v_truck_obs.geom
           FROM v_truck_obs
          WHERE v_truck_obs.datestamp > '2008-02-13 00:00:00'::timestamp
without time zone
          ORDER BY v_truck_obs.datestamp) obs
  GROUP BY obs.vehicleid
  ORDER BY obs.vehicleid;
ALTER TABLE v_vehicle_lines OWNER TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES, TRIGGER ON TABLE
v_vehicle_lines TO postgres;
GRANT SELECT ON TABLE v_vehicle_lines TO geoserver;
COMMENT ON VIEW v_vehicle_lines IS 'creates a single line based on each
vehicleid';

The geometry_columns table has an entry for the view...
"";"public";"v_vehicle_lines";"route_geom";2;4326;"MULTILINESTRING"

Hum, GeoServer is using the following query to grab the bbox:
SELECT encode(AsBinary(force_2d("route_geom"), 'XDR'),'base64') FROM
"public"."v_vehicle_lines"

Can you try running this one, that will lead to a more human readable
output:
SELECT AsText(force_2d("route_geom")) FROM
"public"."v_vehicle_lines"

and see what's the result?
Cheers
Andrea

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
View this message in context: http://www.nabble.com/FeatureType-has-a-NULL-extent-tp16971524p16979797.html
Sent from the GeoServer - User mailing list archive at Nabble.com.

Tyler Erickson ha scritto:

Running the query
SELECT AsText(force_2d("route_geom")) FROM "public"."v_vehicle_lines"
returns 34,000+ records (which seems reasonable)

Here are the first 10 records returned...

Hum, it seems there's a bug lurking then, but I have no idea where.
Can you open a jira issue and provide enough data (base tables + view definition + geometry_columns contents) to replicate this one?

Cheers
Andrea

Jira issue created...
http://jira.codehaus.org/browse/GEOS-1899

aaime wrote:

Tyler Erickson ha scritto:

Running the query
SELECT AsText(force_2d("route_geom")) FROM "public"."v_vehicle_lines"
returns 34,000+ records (which seems reasonable)

Here are the first 10 records returned...

Hum, it seems there's a bug lurking then, but I have no idea where.
Can you open a jira issue and provide enough data (base tables + view
definition + geometry_columns contents) to replicate this one?

Cheers
Andrea

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
View this message in context: http://www.nabble.com/FeatureType-has-a-NULL-extent-tp16971524p17027264.html
Sent from the GeoServer - User mailing list archive at Nabble.com.