Hi Ying,
Yes, it is confusing with Geoserver most of the time.. ;-) and don't worry,
you are not the only one, I don't understand everything as well. We do need
better and more detail documentation for Geoserver.
I guess the main reason you don't get the srsName is due to the version of
GeoServer you are using do not have the srsName patch committed yet.
Try the trunk version from nightly build :
http://gridlock.opengeo.org/geoserver/trunk/.
FYI, I'd tested your example in my environment with EPSG:7405 :
In my view, I have the following geometry columns:
SDO_GEOMETRY(2001,7405,SDO_POINT_TYPE(X_COORD, Y_COORD, NULL), NULL, NULL)
GEOM_LOCACTION,
SDO_GEOMETRY(2002,NULL,NULL,SDO_ELEM_INFO_ARRAY(1,2,1),SDO_ORDINATE_ARRAY(X_COORD,
Y_COORD, X_COORD, Y_COORD)) GEOM_SHAPE,
Insert a record base on your example :
INSERT INTO USER_SDO_GEOM_METADATA VALUES (
'TESTVIEW',
'GEOM_SHAPE',
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('longitude', 0, 1000000, 0.000001),
MDSYS.SDO_DIM_ELEMENT('latitude', 0, 1000000, 0.000001)
),
7405);
*Note : you only need to insert one record for each table, as you can only have
one srid for the entire borehole mapping. Also, notice the SRID must be the
same in your geometry column and USER_SDO_GEOM_METADATA for the srsName to be
encoded.
The mapping for location and shape :
<AttributeMapping>
<targetAttribute>gsml:collarLocation/gsml:BoreholeCollar/gsml:location</targetAttribute>
<sourceExpression>
<OCQL>GEOM_LOCATION</OCQL>
</sourceExpression>
</AttributeMapping>
<AttributeMapping>
<targetAttribute>sa:shape</targetAttribute>
<sourceExpression>
<OCQL>GEOM_SHAPE</OCQL>
</sourceExpression>
<targetAttributeNode>gml:LineStringType</targetAttributeNode>
</AttributeMapping>
The output :
<gsml:location>
<gml:Point srsDimension="3"
srsName="http://www.opengis.net/gml/srs/epsg.xml#7405">
<gml:pos>145.8057083 -39.8385806</gml:pos>
</gml:Point>
</gsml:location>
<sa:shape>
<gml:LineString srsDimension="3"
srsName="http://www.opengis.net/gml/srs/epsg.xml#7405">
<gml:posList>145.8057083 -39.8385806 145.8057083
-39.8385806</gml:posList>
</gml:LineString>
Hope these help.
Regards,
Florence
________________________________
From: ssss [mailto:[email protected]]
Sent: Thursday, 21 October 2010 7:08 PM
To: Tan, Florence (CESRE, Kensington)
Subject: RE: [Geoserver-users] About gsml:Borehole again
Hi Florence,
Thanks for your help. It is very confusing anyway.
I change to another data set, which uses EPSG:7405, the British National Grid.
I add the record to USER_SDO_GEOM_METADATA as
INSERT INTO USER_SDO_GEOM_METADATA VALUES (
'borehole2',
'SSHAPE',
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('longitude', 0, 1000000, 0.000001),
MDSYS.SDO_DIM_ELEMENT('latitude', 0, 1000000, 0.000001)
),
7405);
In the mapping file, I define
<AttributeMapping>
<targetAttribute>gsml:Borehole/sa:shape</targetAttribute>
<sourceExpression>
<OCQL>SSHAPE</OCQL>
</sourceExpression>
</AttributeMapping>
and the output is still
<sa:shape>
<gml:LineString>
<gml:posList>178600.0 150650.0 178600.0 150650.0</gml:posList>
</gml:LineString>
</sa:shape>
The geoserver I am using is v2.0.2, downloaded from
http://geoserver.org/display/GEOS/Stable.
I don't know where is wrong??
Could I have one example value in your Oracle spatial column???? Thanks very
much.
Best wishes,
Ying
________________________________
From: [email protected]
To: [email protected]
Date: Thu, 21 Oct 2010 10:01:17 +0800
Subject: Re: [Geoserver-users] About gsml:Borehole again
Please see my feedback below
________________________________
From: ssss [mailto:[email protected]]
Sent: Wednesday, 20 October 2010 11:07 PM
To: Tan, Florence (CESRE, Kensington); [email protected]
Subject: RE: [Geoserver-users] About gsml:Borehole again
Hi Florence,
Thanks for your answer. Following your instruction, I insert one row as
INSERT INTO USER_SDO_GEOM_METADATA VALUES (
'GSI_BOREHOLESING',
'GEOM',
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('X', 0, 200000, 0.1),
MDSYS.SDO_DIM_ELEMENT('Y', 0,250000, 0.1)
),
19973);
But there is no srsName, srsDimension in LineString. Do you mean I should add
the linestring column to USER_SDO_GEOM_METADATA table before all the data is
imported in? Could you give the instructions in more detail? Thanks.
No, you don't have to perform the above before data is imported. Does CRS
definition exist for EPSG:19973 in geoserver ? What revision of geoserver build
are you using ? (refer to : for srsName encoding patch)
Could I ask whether there is any plan to add 1-D and 3-D? Now I have to take
the sa:shape and gsml:shape away. I understand maybe GeoServer solely focuses
on borehole, instead of its layers, so 1-D and 3-D is omitted. What about later
time? Thanks.
Someone have to answer this one, I do not know of any plan at the moment.
Best wishes,
Yinghttp://jira.codehaus.org/browse/GEOT-2639
________________________________
From: [email protected]
To: [email protected]; [email protected]
Date: Wed, 20 Oct 2010 09:08:46 +0800
Subject: RE: [Geoserver-users] About gsml:Borehole again
Hi Ying, to answer your questions :
I asked this question in May, could I ask whether <sa:shape> has been improved
to support 3-dimension?
AND how to add 'srsName', 'srsDimension' to gml:LineString as above?
No, geoserver do not support 3D coordinate yet. (Someone please correct me if
it does now...)
To get the srsName, srsDimension for LineString, in Oracle, you need to add the
linestring column to USER_SDO_GEOM_METADATA table, e.g. :
INSERT INTO USER_SDO_GEOM_METADATA VALUES (table_name,column_name,diminfo,srid);
e.g.
INSERT INTO USER_SDO_GEOM_METADATA VALUES (
'SITE',
'GEODETIC_POINT',
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('longitude', -180, 180, 0.000001),
MDSYS.SDO_DIM_ELEMENT('latitude', -90, 90, 0.000001)
),
4326);
GeoServer will encode the srsName and srsDimension base on the SRID.
For your second question on 1D mapping, I don't think GeoServer support 1D
coordinate at the moment as well.
Regards,
Florence
________________________________
From: ssss [mailto:[email protected]]
Sent: Tuesday, 19 October 2010 11:19 PM
To: [email protected]
Subject: [Geoserver-users] About gsml:Borehole again
Hi,
I come back to gsml:borehole again. Now, the GeoServer runs very well except
for several small questions. Thanks very much.
1. About gsml:Borehole/sa:shape
What I want is like
<sa:shape>
<gml:LineString
gml:id="bh.TR34SWBJ90.shape"
srsName="urn:ogc:def:crs:EPSG:6.15:7405"
srsDimension="3">
<gml:pos>630400 0141150 29.5</gml:pos>
<gml:pos>630400 0141150 74.5</gml:pos>
</gml:LineString>
</sa:shape>
So in <gml:pos>, it should be like 'X Y Depth'.
In mapping file, I define,
<AttributeMapping>
<targetAttribute>gsml:Borehole/sa:shape</targetAttribute>
<sourceExpression>
<OCQL>GEOM</OCQL>
</sourceExpression>
</AttributeMapping>
where 'GEOM' is a Oracle spatial field in a table. But I can only get
<sa:shape>
<gml:LineString>
<gml:posList>163410.0 264500.0 163410.0 264500.0</gml:posList>
</gml:LineString>
</sa:shape>
It seems GeoServer still doesn't support 3-dimension.
I asked this question in May, could I ask whether <sa:shape> has been improved
to support 3-dimension?
AND how to add 'srsName', 'srsDimension' to gml:LineString as above?
2. About gsml:shape in gsml:MappedInterval
If I encode a borehole log as MappedIntervals, then in gsml:MappedInterval, I
need to define gsml:shape. What I want is
<gsml:shape>
<gml:LineString
srsName="bh.TR34SWBJ90.shape"
srsDimension="1">
<gml:pos>0</gml:pos>
<gml:pos>1.0</gml:pos>
</gml:LineString>
</gsml:shape>
as Above, it define the starting depth to the end depth from 0 to 1.0, which is
one layer of a borehole.
Could I ask how to define this in the mapping? Should I define a new Oracle
spatial field and use something like,
<AttributeMapping>
<targetAttribute>gsml:MappedInterval/sa:shape</targetAttribute>
<sourceExpression>
<OCQL>GDEPTH</OCQL>
</sourceExpression>
</AttributeMapping>
??????????????? Or there is better way???
Meanwhile, how to add srsDimension to gml:LineString?
Thanks very much for your help,
Ying
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in U.S. and Canada $10
million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________ Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users