[Featureserver] curl usage issue
Christopher Schmidt
crschmidt at metacarta.com
Thu Dec 4 14:42:55 EST 2008
On Thu, Dec 04, 2008 at 01:44:18PM -0500, Yves Moisan wrote:
>
> > Please go ahead and try use the svn trunk instead (r580).
>
> OK. On r580 :
>
> > If that doesn't work, reply including the relevant layer of your
> > featureserver.cfg,
>
> [PGTEST]
> type=PostGIS
> dsn=host=localhost port=5433 dbname=pd_tfm_data user=bla password=bla
> layer=geo_survey_gps_pt
> fid=gid
> geometry=the_geom
> srid=4326
> attribute_cols=comment
> # order=cost
> gaping_security_hole=yes
>
> I'm running FS on WSGI :
> python featureserver_http_server.py
>
> The json file I'm shoving in :
>
> {"features": [{"geometry": {"type": "Point", "coordinates":
> [[411869.733939, 8831369.48172]]}, "id": 99999, "properties":
> {"comment": "99999"}}]}
This isn't valid GeoJSON. You have your coordinates in [[ ]]. I expect
you probably downloaded this from /something/something.json (instead of
.GeoJSON/.geojson), which uses an older unsupported vrsion of GeoJSON by
default. If you fix this, it shuld work with either 1.12 or SVN trunk.
> error :
>
> C:\temp>curl -d @fs-test.json
> http://my.server:8080/PGTEST/create.geojson
> An error occurred: float argument required
> File "C:\featureserver-trunk\featureserver\web_request\handlers.py",
> line 144, in wsgi
> accepts = accepts )
> File "C:\featureserver-trunk\featureserver\FeatureServer\Server.py",
> line 161, in dispatchRequest
> result = method(action)
> File "C:\featureserver-trunk\featureserver\FeatureServer\DataSource
> \PostGIS.py", line 111, in create
> values = ", ".join(self.value_formats(feature)+["SetSRID('%
> s'::geometry, %s) " % (WKT.to_wkt(feature.geometry), self
> .srid)])
> File "C:\featureserver-trunk\featureserver\vectorformats\Formats
> \WKT.py", line 68, in to_wkt
> return "POINT(%s)" % coords_to_wkt((coords,))
> File "C:\featureserver-trunk\featureserver\vectorformats\Formats
> \WKT.py", line 64, in coords_to_wkt
> return ",".join([format_str % tuple(c) for c in coords])
>
> Probable explanations : SRID 4326 isn't what my table has. In fact, we
> have the bad habit of not putting a SRID, so I forgot what the EPSG code
> is in the PostGIS table. I tried also with lat lon coordinate values in
> my json file and it did not work.
>
> Cheers,
>
> Yves
>
> > and the latest traceback
> >
> > cheers,
> >
> > -josh
> >
> > On Thu, Dec 4, 2008 at 9:09 AM, Yves Moisan
> > <yves.moisan at boreal-is.com> wrote:
> > Hi Josh,
> >
> > > Hi Yves,
> > >
> > >
> > > Your geojson upload to featureserver does indeed include the
> > geometry
> > > twice: Both described as 'Point' and in your the_geom
> > column.
> >
> >
> > Right
> >
> > > So you don't want to include the_geom in your upload -
> > remove it from
> > > your geojson and it should work.
> >
> >
> > Indeed I tried that before I posted to the list. I'm using FS
> > 1.12 but
> > at any rate I removed the_geom from my file and called with
> > create.geojson this time :
> >
> > C:\temp>curl -d @fs-test.json
> >
> > http://my.server.com:8084/PGTEST/create.geojson
> > An error occurred: float argument required
> > File "C:\featureserver-1.12\FeatureServer\Server.py", line
> > 242, in
> > wsgiHandler
> > format, content = service.dispatchRequest( params,
> > path_info, host,
> > post_data, request_method, accepts )
> > File "C:\featureserver-1.12\FeatureServer\Server.py", line
> > 145, in
> > dispatchRequest
> > result = method(action)
> > File "C:\featureserver-1.12\FeatureServer\DataSource
> > \PostGIS.py", line
> >
> > 138, in create
> > values = ", ".join(self.value_formats(feature)+["SetSRID('%
> > s'::geometry, %s) " % (self.to_wkt(feature.geometry), sel
> > f.srid)])
> > File "C:\featureserver-1.12\FeatureServer\DataSource
> > \PostGIS.py", line
> >
> > 90, in to_wkt
> > return "POINT(%s)" % coords_to_wkt(coords)
> > File "C:\featureserver-1.12\FeatureServer\DataSource
> > \PostGIS.py", line
> >
> > 87, in coords_to_wkt
> > return ",".join(["%f %f" % tuple(c) for c in coords])
> >
> > I don't see what float argument is missing. Do I need to
> > specify the
> > SRID ?
> >
> > Cheers,
> >
> > Yves
> >
> >
> > >
> > >
> > >
> > > In general, featureserver shouldn't return your the_geom
> > column in the
> > > first place, but that's another story (an OT side note: the
> > FS docs
> > > should explain, in the postgis section, how to have it
> > return only a
> > > subset of columns if you want -- although again, it
> > shouldn't be
> > > returning your the_geom column column at all assuming it's
> > the only
> > > geometry column on the table )
> > >
> > >
> > > -Josh
> > >
> > > On Thu, Dec 4, 2008 at 8:48 AM, Yves Moisan
> > > <yves.moisan at boreal-is.com> wrote:
> > > Hi All,
> > >
> > > I'm trying to upload a .json file
> > >
> > > {"features": [{"geometry": {"type": "Point",
> > "coordinates":
> > > [[411869.733939, 8831369.48172]]}, "id": 99999,
> > "properties":
> > > {"comment": "99999", "the_geom":
> > >
> > "0101000080BCD28DEF5A23194199456ACF30D86041A78B461654CB9540"}}]}
> > >
> > > C:\temp>curl -d @fs-test.json
> > > http://my.machine:8084/PGTEST/create.json
> > > An error occurred: column "the_geom" specified more
> > than once
> > > LINE 1: ...SERT INTO "geo_survey_gps_pt" (comment,
> > the_geom,
> > > the_geom) ...
> > >
> > ^
> > >
> > > File "C:\featureserver-1.12\FeatureServer
> > \Server.py", line
> > > 242, in
> > > wsgiHandler
> > > format, content =
> > service.dispatchRequest( params,
> > > path_info, host,
> > > post_data, request_method, accepts )
> > > File "C:\featureserver-1.12\FeatureServer
> > \Server.py", line
> > > 145, in
> > > dispatchRequest
> > > result = method(action)
> > > File "C:\featureserver-1.12\FeatureServer
> > \DataSource
> > > \PostGIS.py", line
> > > 142, in create
> > > cursor.execute(str(sql),
> > self.feature_values(feature))
> > >
> > > If I erase the "the_geom" property from my file :
> > >
> > > {"features": [{"geometry": {"type": "Point",
> > "coordinates":
> > > [[411869.733939, 8831369.48172]]}, "id": 99999,
> > "properties":
> > > {"comment": "99999"}}]}
> > >
> > > I get :
> > >
> > > C:\temp>curl -d @fs-test.json
> > > http://my.machine:8084/PGTEST/create.json
> > > An error occurred: new row for relation
> > "geo_survey_gps_pt"
> > > violates
> > > check constraint "enforce_srid_the_geom"
> > >
> > > File "C:\featureserver-1.12\FeatureServer
> > \Server.py", line
> > > 242, in
> > > wsgiHandler
> > > format, content =
> > service.dispatchRequest( params,
> > > path_info, host,
> > > post_data, request_method, accepts )
> > > File "C:\featureserver-1.12\FeatureServer
> > \Server.py", line
> > > 145, in
> > > dispatchRequest
> > > result = method(action)
> > > File "C:\featureserver-1.12\FeatureServer
> > \DataSource
> > > \PostGIS.py", line
> > > 142, in create
> > > cursor.execute(str(sql),
> > self.feature_values(feature))
> > >
> > > because there is indeed a constraint in the table.
> > >
> > > Pointers appreciated.
> > >
> > > TIA,
> > >
> > > Yves Moisan
> > >
> > >
> > > _______________________________________________
> > > Featureserver mailing list
> > > Featureserver at openlayers.org
> > >
> > http://featureserver.org/mailman/listinfo/featureserver
> > >
> > >
> >
> >
> >
>
> _______________________________________________
> Featureserver mailing list
> Featureserver at openlayers.org
> http://featureserver.org/mailman/listinfo/featureserver
--
Christopher Schmidt
MetaCarta
More information about the Featureserver
mailing list