|
Yes, there were renovations to extent calculation to try and return more exact results, but that required a hack type, which in turn required other messes. There's an issue here now: Paul, I was trying to look into that issue (out of curiosity) but it seems the project is completely locked down? I get an error saying I don't have permissions to look, neither at the issue itself, not at the project home page (http://code.google.com/p/postgis/ I don't know whether it is related to this issue, but I get this error (GeoServer 2.0 RC1, PostGIS 1.4.0 on PostgreSQL 8.3.7) when I try to issue a delete using WFS-T: postData="<wfs:Transaction version=\"1.0.0\" service=\"WFS\" curl --basic --user "$auth" --proxy $http_proxy \ Oddly, when I try a GetFeature with the same filter, it works as advertised: curl --basic --user "$auth" --proxy $http_proxy \ I have made a few more tries, and the issue seems to boil down to an SQL function that is called with the wrong parameters. The GeoServer-generated query is: To which PostgreSQL replies: By the way, I have succesfully executed a similar query on a different configuration (PostgreSQL 8.3.7 with PostGIS 1.3.6) Luca, I had a user on the GeoServer users list telling me GeoServer works fine with PG 1.4 I really need to install a 1.4 somewhere... bah, wish had more time... Yes, I downloaded the 1.4.0 final (released on the 24th of July 2009) and did a soft upgrade of the database. Previously I had the 1.3.6 installed... and never installed a trunk version. Anyway, this is what I've found in postgis.sql.in.c related to extent: I will be happy to help you in this, if you need more info or some testing done, just ask. Well, you could definitely save me some research if you found a way to get the same result as before with the new function signatures. If that way could work with the older databases, so that I don't have to setup a translation table that takes into account both pg version and the function to be encoded, well, that would be great (one less maintenance headache). After all, in PostGIS 1.3.6 there IS different function signature: (in 1.4.0 the stype has changed to box3d_extent)... but how to get the same result with both PostGIS versions ? I don't know, that the "research" I was talking about above. Forcing the result of extent to be a "geometry" type may do the trick: This works on both PostGIS 1.3.6 and 1.4.0. More information on this issue Could I do more to help ? ST_Geometry as a function is not declared in older versions of PostGIS (< 1.2 I think)... wondering if there is any alias that would work with older pg versions as well After pulling hairs for a good hour trying to get the postgis 1.4 installed in a VirtualBox VM be visible and usable from my desktop I... could not reproduce the issue. Here is what I have: gttest=# select postgis_version();
postgis_version
---------------------------------------
1.4 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
(1 riga)
gttest=# \d states
Tabella "public.states"
Colonna | Tipo | Modificatori
------------+-----------------------+------------------------------------------------------
gid | integer | not null default nextval('states_gid_seq'::regclass)
state_name | character varying(25) |
state_fips | character varying(2) |
sub_region | character varying(7) |
state_abbr | character varying(2) |
land_km | numeric |
water_km | numeric |
persons | numeric |
families | numeric |
houshold | numeric |
male | numeric |
female | numeric |
workers | numeric |
drvalone | numeric |
carpool | numeric |
pubtrans | numeric |
employed | numeric |
unemploy | numeric |
service | numeric |
manual | numeric |
p_male | numeric |
p_female | numeric |
samp_pop | numeric |
the_geom | geometry |
Indici:
"states_pkey" PRIMARY KEY, btree (gid)
"states_the_geom_gist" gist (the_geom)
Vincoli di controllo:
"enforce_dims_the_geom" CHECK (st_ndims(the_geom) = 2)
"enforce_geotype_the_geom" CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL)
"enforce_srid_the_geom" CHECK (st_srid(the_geom) = 4326)
gttest=# SELECT AsText(force_2d(Envelope(Extent("the_geom")))) FROM states;
astext
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
POLYGON((-124.731422424316 24.9559669494629,-124.731422424316 49.3717384338379,-66.9698486328125 49.3717384338379,-66.9698486328125 24.9559669494629,-124.731422424316 24.9559669494629))
(1 riga)
My guess is that you have some database that has been upgraded from earlier, beta 1.4 postgis versions? I guess you're right Andrea: I've created a database anew with PostGIS 1.4.0 on same data and it worked... no idea what went wrong upgrading from PostGIS 13.6 to 1.4.0. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Paul, do you know what's going on here? Why is extent(column) returning a box3d now?