In CMDBuild 2.15 gli attributi geografici non vengono mostrati sulla mappa con versioni di POSTGIS >= 2.01, a causa dell'uso della funzione asText di PostGis nella classe org.cmdbuild.servlets.json.Gis.getGeoCardList, deprecata dalla versione 2.0 di PostGis in poi.
Il Messaggio di errore nel log di cmdbuild è qualcosa tipo:
[file: /logs/cmdbuold.log:]
ERROR 2014-01-04 16:51:08 [jsonrpc ] A org.springframework.jdbc.BadSqlGrammarException occurred calling method class org.cmdbuild.servlets.json.Gis.getGeoCardList: StatementCallback; bad SQL grammar [SELECT "FeatureTable"."Master", asText("FeatureTable"."Geometry") AS "Geometry", "OwnerCardTable"."IdClass"::oid AS "MasterClassId", _cm_cmtable("OwnerCardTable"."IdClass"::oid) AS "MasterClassName" FROM "gis"."Detail_lavoro_localizzazione" AS "FeatureTable" JOIN "lavoro" AS "OwnerCardTable" ON "FeatureTable"."Master" = "OwnerCardTable"."Id" WHERE TRUE]; nested exception is org.postgresql.util.PSQLException: ERROR: function astext(geometry) does not exist
Suggerimento: No function matches the given name and argument types. You might need to add explicit type casts.
Per fare il fix, da PgAdminIII eseguire sul database cmdbuild la query contenuta nella directory (installazione standard Ubuntu 12.04):
/usr/share/postgresql/9.1/contrib/postgis-2.0/legacy.sql
Nella attuale versione CMDBuild 2.1 abbiamo scelto di preservare la compatibilità sia con PostGIS 1.5.2 che con PostGIS 2.0 (come indicato nel Technical Manual e nella pagina di download).
Questo ha richiesto di mantenere l'utilizzo della funzione deprecata, il che richiede effettivamente l'utilizzo del fix indicato.
Dalla versione CMDBuild 2.2 escluderemo probabilmente la compatibilità con PostGIS 1.5.2 e potremo a quel punto sostituire la funzione deprecata.
CMDBuild Team
sudo su postgres
psql -U admin -h localhost nome mio db
CREATE SCHEMA gis;
SET SEARCH_PATH TO gis, public;
\i /usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql
\i /usr/share/postgresql/9.1/contrib/postgis-2.1/spatial_ref_sys.sql
ALTER DATABASE nome mio db SET search_path="$user", public, gis;
Ho controllato sul db tramite PGAdmin e lo schema gis con tutte le funzioni annesse c'è. Quando però vado ad abilitare il gis in cmdbuild mi dice che postgis non è installato, mi dava lo stesso problema anche con la versione di posgis 1.5. Avete delle idee???
Vi ringrazio in anticipo per la collaborazione
Gestiamo varie installazioni con utilizzo di PostGIS sia nella versione 1.5 che nella versione 2.0.1 e funzionano correttamente.
Per capire se Postgis è abilitato CMDBuild utilizza la seguente funzione:
SELECT gis.postgis_version();
Le consiglierei quindi di fare questa stessa verifica ed eventualmente approfondire gli aspetti di installazione di PostGIS.
CMDBuild Team
Gestiamo varie installazioni con utilizzo di PostGIS sia nella versione 1.5 che nella versione 2.0.1 e funzionano correttamente.
Per capire se Postgis è abilitato CMDBuild utilizza la seguente funzione:
SELECT gis.postgis_version();
Le consiglierei quindi di fare questa stessa verifica ed eventualmente approfondire gli aspetti di installazione di PostGIS.
CMDBuild Team
Ha associato l'attributo geometrico ad una delle icone caricate con l'apposita funzione del Modulo di Amministrazione ?
CMDBuild Team
Ha associato l'attributo geometrico ad una delle icone caricate con l'apposita funzione del Modulo di Amministrazione ?
CMDBuild Team
Le suggeriamo di consultare l'Administrator Manual.
CMDBuild Team