[Gvsig_desarrolladores] Problemas com gvSIG 2.0.0.2042 com Postgresql: Unknown Geometry Type
Jorge Gustavo
jgr en osgeopt.pt
Jue Dic 1 20:43:02 CET 2011
Olá a todos,
Estou com problemas com o gvSIG 2.0 a abrir uma tabela Postgresql.
Consigo com o gvSIG 1.11, mas não com o gvSIG 2.0.
Me parece que o problema é este:
A query que vai buscar o extend cambiou:
[gvSIG 2.0] Select asbinary(extent(wkb_geometry)) from "public"."caop"
(retorna um POLYGON)
[gvSIG 1.11] SELECT extent("wkb_geometry") AS FullExtent FROM
"public"."caop"
(retorna uma BOX)
Mais detalhes
Estou usando:
i) Ubuntu 11.10
ii) Versão gvSIG: Version: 2.0.0 Build: 2042 Java version: 1.6.0_20
iii) PostgreSQL 9.1.1 on x86_64-pc-linux-gnu, compiled by gcc-4.6.real
(Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1, 64-bit | POSTGIS="1.5.3"
GEOS="3.2.2-CAPI-1.6.2" PROJ="Rel. 4.7.1, 23 September 2009"
LIBXML="2.7.8" USE_STATS (procs from 1.5 r5976 need upgrade)
1. Quando adiciono a capa 'caop' surge o erro: "Unknown Geometry Type"
Error while executing an action in resource
'org.gvsig.fmap.dal.store.postgresql.PostgreSQLResource en 1d0e43a'.
Unknown Geometry Type! Error while executing an action in resource
'org.gvsig.fmap.dal.store.postgresql.PostgreSQLResource en 1d0e43a'.
Unknown Geometry Type!
org.gvsig.fmap.dal.resource.exception.ResourceExecuteException: Error
while executing an action in resource
'org.gvsig.fmap.dal.store.postgresql.PostgreSQLResource en 1d0e43a'.
org.gvsig.fmap.dal.resource.spi.AbstractNonBlockingResource.execute(AbstractNonBlockingResource.java:66) org.gvsig.fmap.dal.store.postgresql.PostgreSQLHelper.getFullEnvelopeOfField(PostgreSQLHelper.java:184) org.gvsig.fmap.dal.store.jdbc.JDBCStoreProvider.getEnvelope(JDBCStoreProvider.java:737) org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.getEnvelope(DefaultFeatureStore.java:347) org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.getFullEnvelope(FLyrVect.java:322) org.gvsig.geodb.vectorialdb.wizard.WizardVectorialDB.execute(WizardVectorialDB.java:243) org.gvsig.app.extension.AddLayer.loadGenericWizardPanelLayers(AddLayer.java:226) org.gvsig.app.extension.AddLayer.addLayers(AddLayer.java:243) org.gvsig.app.extension.AddLayer.execute(AddLayer.java:171) org.gvsig.andami.plugins.ExtensionDecorator.execute(ExtensionDecorator.java:89) org.gvsig.andami.ui.mdiFrame.MDIFrame.actionPerformed(MDIFrame.java:745) javax.swing.Abstrac
tButton.fireActionPerformed(Unknown Source) javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) javax.swing.DefaultButtonModel.setPressed(Unknown Source) javax.swing.AbstractButton.doClick(Unknown Source) javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) java.awt.Component.processMouseEvent(Unknown Source) javax.swing.JComponent.processMouseEvent(Unknown Source) java.awt.Component.processEvent(Unknown Source) java.awt.Container.processEvent(Unknown Source) java.awt.Component.dispatchEventImpl(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) java.awt.Ligh
tweightDispatcher.processMouseEvent(Unknown Source) java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.EventQueue.dispatchEvent(Unknown Source) org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:59) java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.run(Unknown Source) java.lang.IllegalArgumentException: Unknown Geometry Type! org.gvsig.fmap.geom.operation.fromwkb.WKBParser2.parseGeometry(WKBParser2.java:189) org.gvsig.fmap.geom.operation.fromwkb.WKBParser2.parse(WKBParser2.java:115) org.gvsig.f
map.geom.operation.fromwkb.FromWKB.invoke(FromWKB.java:60) org.gvsig.fmap.dal.store.postgresql.PostgreSQLHelper$1.run(PostgreSQLHelper.java:210) org.gvsig.fmap.dal.resource.spi.AbstractResource.performExecution(AbstractResource.java:323) org.gvsig.fmap.dal.resource.spi.AbstractNonBlockingResource.execute(AbstractNonBlockingResource.java:64) org.gvsig.fmap.dal.store.postgresql.PostgreSQLHelper.getFullEnvelopeOfField(PostgreSQLHelper.java:184) org.gvsig.fmap.dal.store.jdbc.JDBCStoreProvider.getEnvelope(JDBCStoreProvider.java:737) org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.getEnvelope(DefaultFeatureStore.java:347) org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.getFullEnvelope(FLyrVect.java:322) org.gvsig.geodb.vectorialdb.wizard.WizardVectorialDB.execute(WizardVectorialDB.java:243) org.gvsig.app.extension.AddLayer.loadGenericWizardPanelLayers(AddLayer.java:226) org.gvsig.app.extension.AddLayer.addLayers(AddLayer.java:243)
org.gvsig.app.extension.AddLayer.execute(AddLayer.java:171) org.gvsig.andami.plugins.ExtensionDecorator.execute(ExtensionDecorator.java:89) org.gvsig.andami.ui.mdiFrame.MDIFrame.actionPerformed(MDIFrame.java:745) javax.swing.AbstractButton.fireActionPerformed(Unknown Source) javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) javax.swing.DefaultButtonModel.setPressed(Unknown Source) javax.swing.AbstractButton.doClick(Unknown Source) javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) java.awt.Component.processMouseEvent(Unknown Source) javax.swing.JComponent.processMouseEvent(Unknown Source) java.awt.Component.processEvent(Unknown Source) java.awt.Container.processEvent(Unknown Source) java.
awt.Component.dispatchEventImpl(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.EventQueue.dispatchEvent(Unknown Source) org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:59) java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.run(Unknown Sourc
e) User error User error org.gvsig.fmap.dal.resource.exception.ResourceExecuteException: Error while executing an action in resource 'org.gvsig.fmap.dal.store.postgresql.PostgreSQLResource en 1d0e43a'. org.gvsig.fmap.dal.resource.spi.AbstractNonBlockingResource.execute(AbstractNonBlockingResource.java:66) org.gvsig.fmap.dal.store.postgresql.PostgreSQLHelper.getFullEnvelopeOfField(PostgreSQLHelper.java:184) org.gvsig.fmap.dal.store.jdbc.JDBCStoreProvider.getEnvelope(JDBCStoreProvider.java:737) org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.getEnvelope(DefaultFeatureStore.java:347) org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.getFullEnvelope(FLyrVect.java:322) org.gvsig.fmap.mapcontext.MapContext$LayerEventListener.layerAdded(MapContext.java:1277) org.gvsig.fmap.mapcontext.layers.FLayers.callLayerAdded(FLayers.java:734) org.gvsig.fmap.mapcontext.layers.FLayers.addLayer(FLayers.java:242) org.gvsig.fmap.mapcontext.layers.FLayers.addLay
er(FLayers.java:219) org.gvsig.geodb.vectorialdb.wizard.WizardVectorialDB.execute(WizardVectorialDB.java:306) org.gvsig.app.extension.AddLayer.loadGenericWizardPanelLayers(AddLayer.java:226) org.gvsig.app.extension.AddLayer.addLayers(AddLayer.java:243) org.gvsig.app.extension.AddLayer.execute(AddLayer.java:171) org.gvsig.andami.plugins.ExtensionDecorator.execute(ExtensionDecorator.java:89) org.gvsig.andami.ui.mdiFrame.MDIFrame.actionPerformed(MDIFrame.java:745) javax.swing.AbstractButton.fireActionPerformed(Unknown Source) javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) javax.swing.DefaultButtonModel.setPressed(Unknown Source) javax.swing.AbstractButton.doClick(Unknown Source) javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) java.awt.AWTEventMulti
caster.mouseReleased(Unknown Source) java.awt.Component.processMouseEvent(Unknown Source) javax.swing.JComponent.processMouseEvent(Unknown Source) java.awt.Component.processEvent(Unknown Source) java.awt.Container.processEvent(Unknown Source) java.awt.Component.dispatchEventImpl(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.EventQueue.dispatchEvent(Unknown Source) org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:59) java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) java.awt.EventDispatchThread.pumpEvents
ForFilter(Unknown Source) java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.run(Unknown Source) java.lang.IllegalArgumentException: Unknown Geometry Type! org.gvsig.fmap.geom.operation.fromwkb.WKBParser2.parseGeometry(WKBParser2.java:189) org.gvsig.fmap.geom.operation.fromwkb.WKBParser2.parse(WKBParser2.java:115) org.gvsig.fmap.geom.operation.fromwkb.FromWKB.invoke(FromWKB.java:60) org.gvsig.fmap.dal.store.postgresql.PostgreSQLHelper$1.run(PostgreSQLHelper.java:210) org.gvsig.fmap.dal.resource.spi.AbstractResource.performExecution(AbstractResource.java:323) org.gvsig.fmap.dal.resource.spi.AbstractNonBlockingResource.execute(AbstractNonBlockingResource.java:64) org.gvsig.fmap.dal.store.postgresql.PostgreSQLHelper.getFullEnvelopeOfField(PostgreSQLHelper.java:184) org.gvsig.f
map.dal.store.jdbc.JDBCStoreProvider.getEnvelope(JDBCStoreProvider.java:737) org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.getEnvelope(DefaultFeatureStore.java:347) org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.getFullEnvelope(FLyrVect.java:322) org.gvsig.fmap.mapcontext.MapContext$LayerEventListener.layerAdded(MapContext.java:1277) org.gvsig.fmap.mapcontext.layers.FLayers.callLayerAdded(FLayers.java:734) org.gvsig.fmap.mapcontext.layers.FLayers.addLayer(FLayers.java:242) org.gvsig.fmap.mapcontext.layers.FLayers.addLayer(FLayers.java:219) org.gvsig.geodb.vectorialdb.wizard.WizardVectorialDB.execute(WizardVectorialDB.java:306) org.gvsig.app.extension.AddLayer.loadGenericWizardPanelLayers(AddLayer.java:226) org.gvsig.app.extension.AddLayer.addLayers(AddLayer.java:243) org.gvsig.app.extension.AddLayer.execute(AddLayer.java:171) org.gvsig.andami.plugins.ExtensionDecorator.execute(ExtensionDecorator.java:89) org.gvsig.and
ami.ui.mdiFrame.MDIFrame.actionPerformed(MDIFrame.java:745) javax.swing.AbstractButton.fireActionPerformed(Unknown Source) javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) javax.swing.DefaultButtonModel.setPressed(Unknown Source) javax.swing.AbstractButton.doClick(Unknown Source) javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) java.awt.Component.processMouseEvent(Unknown Source) javax.swing.JComponent.processMouseEvent(Unknown Source) java.awt.Component.processEvent(Unknown Source) java.awt.Container.processEvent(Unknown Source) java.awt.Component.dispatchEventImpl(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.EventQueue.dispatchEvent(Unknown Source) org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:59) java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.run(Unknown Source)
2. Observando o log do Postgresql, com gvSIG 2.0, a última query que é
feita é: Select asbinary(extent(wkb_geometry)) from "public"."caop"
Esta query retorna um POLYGON (em binário), mas o gvSIG não gosta do
resultado :-(
WET LOG: execute <unnamed>: SELECT 1 FROM pg_catalog.pg_attrdef
WHERE adrelid = $1 AND adnum = $2 AND pg_catalog.pg_get_expr(adbin,
adrelid) LIKE '%nextval(%'
2011-12-01 19:21:44 WET DETAIL: parameters: $1 = '21705', $2 = '9'
2011-12-01 19:21:44 WET LOG: execute <unnamed>: Select
geometry_columns.*,auth_name || ':' || auth_srid as SRSID from
geometry_columns left join spatial_ref_sys on geometry_columns.srid =
spatial_ref_sys.srid WHERE ( F_TABLE_SCHEMA = 'public' AND F_TABLE_NAME
= 'caop' AND F_GEOMETRY_COLUMN = 'wkb_geometry' )
2011-12-01 19:21:44 WET LOG: execute <unnamed>: Select
asbinary(extent(wkb_geometry)) from "public"."caop"
2011-12-01 19:21:44 WET LOG: execute <unnamed>: Select
asbinary(extent(wkb_geometry)) from "public"."caop"
3. Fazendo a query no Postgresql (troquei asbinary por st_asewkt):
Select st_asewkt((extent(wkb_geometry))) from "public"."caop"
"POLYGON((-119191.407500066 -300404.803999999,-119191.407500066
276083.767400001,162129.081100356 276083.767400001,162129.081100356
-300404.803999999,-119191.407500066 -300404.803999999))"
4. Con la version 1.11 consigo abrir bem esta tabela 'caop'.
SELECT extent("wkb_geometry") AS FullExtent FROM "public"."caop"
O log do Postgresql (usando o gvSIG 1.11) é este:
SELECT * FROM GEOMETRY_COLUMNS WHERE F_TABLE_SCHEMA = 'public' AND
F_TABLE_NAME = 'caop' AND F_GEOMETRY_COLUMN = 'wkb_geometry'
2011-12-01 19:17:36 WET LOG: statement: declare caop8_wkb_cursor binary
scroll cursor with hold for SELECT AsEWKB("wkb_geometry", 'XDR'),
ogc_fid, dicofre, freguesia, municipio, distrito_, area_ea_ha,
area_t_ha, taa FROM "public"."caop" ORDER BY ogc_fid
2011-12-01 19:17:36 WET LOG: statement: fetch forward 5000 in
caop8_wkb_cursor
2011-12-01 19:17:38 WET LOG: statement: SELECT ogc_fid FROM
"public"."caop" ORDER BY ogc_fid
2011-12-01 19:17:39 WET LOG: statement: SELECT extent("wkb_geometry")
AS FullExtent FROM "public"."caop"
2011-12-01 19:17:40 WET LOG: statement: BEGIN
2011-12-01 19:17:40 WET WARNING: there is already a transaction in progress
2011-12-01 19:17:40 WET LOG: statement: declare
caop8wkb_cursor_prov_13227670601360 binary cursor for SELECT
AsEWKB("wkb_geometry", 'XDR'), ogc_fid FROM "public"."caop" WHERE
"wkb_geometry" && GeometryFromText('LINESTRING(-287888.88383966393
-300404.803999999, 330826.5574399539 -300404.803999999,
330826.5574399539 276083.767400001, -287888.88383966393
276083.767400001)', 3763)
2011-12-01 19:17:40 WET LOG: statement: fetch forward 5000 in
caop8wkb_cursor_prov_13227670601360
Gracias por toda a ajuda,
Jorge Gustavo
Más información sobre la lista de distribución gvSIG_desarrolladores