Hello,
I’m developing an app with spatialite (package jsqlite) tileview AND
dynamic dialogs from GIS Server.
I created Spatialite on Android from a Sqlite-Database with WKT.
On short:
dbsqlite.prepare("SELECT InitSpatialMetaData();").step();
dbsqlite.prepare("BEGIN ;").step();
for (String name : lst_tables) {
dbsqlite.prepare("SELECT AddGeometryColumn('" + name + "','GEOMETRY'," +
code + ",'GEOMETRY', 'XY',0)").step();
dbsqlite.prepare("UPDATE " + name + " SET GEOMETRY=(GeomFromText(WKT," +
code + "))").step();
}
dbsqlite.prepare("COMMIT ;").step();
works fine.
BUT now my problem:
I want to insert data to sqlite/spatialite with SQLiteOpenHelper
For a simple, I'll create a simple record where I set only the most
necessary values.
ID, INSERT_DATE, INSERT_USER
After that I want update for record with all other columns.
But now an essential problem.
While inserting new a record *with or without* geometry I get an exception:
*no such function: GeometryConstraints (code 1): , while compiling: *INSERT
INTO MYTABLE (FID, INSERTDAT,INSERTUSER,ANDROID) VALUES
('-1','2018-02-27','Username,'2');
INSERT INTO MYTABLE (FID, INSERTDAT,INSERTUSER,ANDROID, GEOMETRY) VALUES
('-1','2018-02-27','Username','2',*ST_POINT*(-1,-1));
INSERT INTO MYTABLE (FID, INSERTDAT,INSERTUSER,ANDROID, GEOMETRY) VALUES
('-1','2018-02-27','Username','2',*MakePoint*(-1,-1,25832));
I created:
SELECT AddGeometryColumn('TABLENAME','GEOMETRY',25832,'GEOMETRY', 'XY',*0*)
SELECT AddGeometryColumn('test_geom', ‚GEOM‘, 4326, 'POINT', 'XY', *0*);
https://www.gaia-gis.it/gaia-sins/spatialite-cookbook/html/new-geom.html
Now I tested all 3 ways (nothing, 0, 1)
Everytime same result.
I’ve seen, trigger working on every update and not only while updating
GEOMETRY-column.
Is this a good idea?
It didn't work.
DROP TRIGGER ggi_MYTABLE_GEOMETRY;
CREATE TRIGGER ggi_MYTABLE_GEOMETRY BEFORE INSERT ON MYTABLE
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK, 'MYTABLE.GEOMETRY violates Geometry constraint
[geom-type or SRID not allowed]')
WHERE *NEW.GEOMETRY notnull AND *(SELECT geometry_type FROM
geometry_columns
WHERE Lower(f_table_name) = Lower('WA_VALVE') AND Lower(f_geometry_column)
= Lower('GEOMETRY')
AND GeometryConstraints(NEW.GEOMETRY, geometry_type, srid) = 1) IS NULL;
END;
Or do you have an other idea for me?
Thanks
Regards,
Jan
--
You received this message because you are subscribed to the Google Groups
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit
https://groups.google.com/d/msgid/android-developers/c296e8af-fb13-423f-bb8f-6445ba45efe1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.