Re: [mapserver-users] Strange coordinates used in GetFeatureInfo request

2012-06-25 Thread Anzel, Phil - NRCS, Fort Collins, CO
Hi, Daniel,

What a relief. Thank you so much for the clarification.

- Phil Anzel
   Contractor for USDA/NRCS
   ITC Web Soil Survey Team Member

Date: Sat, 23 Jun 2012 11:08:39 -0400
From: Daniel Morissette dmorisse...@mapgears.com
To: mapserver-users@lists.osgeo.org
Subject: Re: [mapserver-users] Strange coordinates used in
GetFeatureInfo request
Message-ID: 4fe5dbf7.9000...@mapgears.com
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

On 12-06-23 11:00 AM, Daniel Morissette wrote:
 I didn't read your whole mail, but short answer is that I suspect you
 are overlooking the fact that in GetFeatureInfo, the X and Y coordinates
 are in pixels within the view of the map (which is 500x500 pixels in
 your example).

 So when you write x=0y=0 that refers to the top-left corner of the map
 view, and not the 0,0 of the SRS coordinate system... which corresponds
 to longitude=-10, and latitude=+10. Actually, the x,y value is
 translated to be the center of the top-left pixel (and not its top-left
 boundary), which explains why you get lon,lat=9.98,9.98 in the query.



Please let me reword this last paragraph to make it a little more clear:

When you write X=0Y=0 in your GetFeatureInfo request that refers to the
top-left corner of the map view which is located at longitude=-10, and
latitude=+10, and not to the 0.0,0.0 of the SRS=EPSG:4326 coordinate
system. Actually, the X,Y value is translated to be the center of the
top-left pixel (and not its top-left boundary), which explains why you
get lon,lat=-9.98,9.98 in the query.






This electronic message contains information generated by the USDA solely for 
the intended recipients. Any unauthorized interception of this message or the 
use or disclosure of the information it contains may violate the law and 
subject the violator to civil or criminal penalties. If you believe you have 
received this message in error, please notify the sender and delete the email 
immediately.

___
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users


Re: [mapserver-users] Strange coordinates used in GetFeatureInfo request

2012-06-23 Thread Daniel Morissette
I didn't read your whole mail, but short answer is that I suspect you 
are overlooking the fact that in GetFeatureInfo, the X and Y coordinates 
are in pixels within the view of the map (which is 500x500 pixels in 
your example).


So when you write x=0y=0 that refers to the top-left corner of the map 
view, and not the 0,0 of the SRS coordinate system... which corresponds 
to longitude=-10, and latitude=+10. Actually, the x,y value is 
translated to be the center of the top-left pixel (and not its top-left 
boundary), which explains why you get lon,lat=9.98,9.98 in the query.


Daniel

On 12-06-22 5:40 PM, Anzel, Phil - NRCS, Fort Collins, CO wrote:

All,

Does GetFeatureInfo have a coordinate translation problem?

Consider the WMS request shown here (ignore line wrapping):
   http://localhost/mapserver/mapserv.exe
 ?map=m01.map
 SERVICE=WMS
 VERSION=1.1.1
 REQUEST=GetFeatureInfo
 LAYERS=External
 QUERY_LAYERS=External
 INFO_FORMAT=text/plain
 x=0.0y=0.0
 SRS=EPSG:4326
 BBOX=-10,-10,10,10
 width=500height=500

In the mapfile below, all coordinate system references are to 4326. Forcing 
an error in the DATA statement makes me think the (0,0) coordinate pair is mistranslated, 
as shown by the message below which includes:
   shape_BOGUS.STIntersects(
geometry::STGeomFromText('POINT(-9.98 9.98)',4326)) = 1

Is there a problem with my request or with my mapfile?

Following is the mapfile and some experiments that I performed. I'm using 
MapServer 6.1-DEV with Sql Server 2008 under Windows XP.

The relevant mapfile is defined as:

map
   name m01
   status on
   size 500 500
   extent -20 -20 20 20
   units dd
   imagecolor 255 255 255
   projection init=epsg:4326 end

   web
 imagepath c:\ms4w\tmp\ms_tmp
 imageurl /ms_tmp/
 metadata
   wms_title test-title
   wms_extent-180 -90 180 90
   wms_srs   EPSG:4326
   ows_enable_requestGetCapabilities GetMap GetFeature 
GetFeatureInfo
 end
   end
   layer
 name External
 type polygon
 status on
 metadata
   wms_title External
   wms_extent-180 -90 180 90
   wms_srs   EPSG:4326
   ows_include_items all
   wms_include_items all
   gml_include_items all
   gml_geometriesmultiPolygon
   gml_multiPolygon_type multipolygon
 end
 dump true
 header C:\ms4w\Apache\cgi-bin\m01_header.htm
 template C:\ms4w\Apache\cgi-bin\m01_template.html
 footer C:\ms4w\Apache\cgi-bin\m01_footer.html
 projection init=epsg:4326 end
 units dd
 # ExternalData table created and populated in Sql Server 2008 with:
 # create table ExternalData
 #   (ID varchar(10) primary key, shape Geometry not null);
 # insert into ExternalData (id, shape) values ('x102',
 #   geometry::STGeomFromText('polygon((-20 -20,-20 20,20 20,20 -20,-20 
-20))', 4326))
 connection server=...;database=test;uid=...;pwd=...
 connectiontype plugin
 plugin C:/ms4w/Apache/specialplugins/msplugin_mssql2008.dll
 data shape from dbo.ExternalData using unique ID using srid=4326
 labelitem ID
 class
   name ExternalClass
   style color 255 0 0 outlinecolor 0 255 0 end
   label position auto size small color 0 0 0 end
 end
   end
end

Note that the WMS request, the MAP and the LAYER are all defined with the 
4326 projection.

If I change the DATA statement to force an error,
 data shape_BOGUS from dbo.ExternalData using unique ID using srid=4326
the error returned shows:
   msMSSQL2008LayerGetShape(): Query error.
   Error executing MSSQL2008 SQL statement:
 SELECT
convert(varchar(max), id),
shape_BOGUS.STAsBinary(),
convert(varchar(36), ID)
 from dbo.ExternalData
 WHERE shape_BOGUS.STIntersects(
geometry::STGeomFromText('POINT(-9.98 9.98)',4326)) = 1

Please note that the POINT location should be (0,0). Why isn't it?

A similar problem occurs if the feature is defined inline as described below.

Some additional details:

1. If I remove the _BOGUS, a result is returned. Therefore I believe that the 
mapfile is well-formed.

2. With _BOGUS removed, and the polygon redefined in the database as 
POLYGON((-5 -5,-5 5,5 5,5 -5,-5 -5)), no result is returned. Therefore I believe that the 
bad coordinates in the query are being used.

3. If I define and use an Internal layer:
   layer
 name Internal
 type polygon
 status on
 metadata
   wms_title Internal
   wms_extent-180 -90 180 90
   wms_srs   EPSG:4326
   ows_include_items all
   wms_include_items all
   gml_include_items all
   gml_geometriesmultiPolygon
   gml_multiPolygon_type multipolygon
 end
 dump true
 header C:\ms4w\Apache\cgi-bin\m01_header.htm
 template 

Re: [mapserver-users] Strange coordinates used in GetFeatureInfo request

2012-06-23 Thread Daniel Morissette

On 12-06-23 11:00 AM, Daniel Morissette wrote:

I didn't read your whole mail, but short answer is that I suspect you
are overlooking the fact that in GetFeatureInfo, the X and Y coordinates
are in pixels within the view of the map (which is 500x500 pixels in
your example).

So when you write x=0y=0 that refers to the top-left corner of the map
view, and not the 0,0 of the SRS coordinate system... which corresponds
to longitude=-10, and latitude=+10. Actually, the x,y value is
translated to be the center of the top-left pixel (and not its top-left
boundary), which explains why you get lon,lat=9.98,9.98 in the query.




Please let me reword this last paragraph to make it a little more clear:

When you write X=0Y=0 in your GetFeatureInfo request that refers to the 
top-left corner of the map view which is located at longitude=-10, and 
latitude=+10, and not to the 0.0,0.0 of the SRS=EPSG:4326 coordinate 
system. Actually, the X,Y value is translated to be the center of the 
top-left pixel (and not its top-left boundary), which explains why you 
get lon,lat=-9.98,9.98 in the query.



--
Daniel Morissette
http://www.mapgears.com/
Provider of Professional MapServer Support since 2000



___
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users


[mapserver-users] Strange coordinates used in GetFeatureInfo request

2012-06-22 Thread Anzel, Phil - NRCS, Fort Collins, CO
All,

Does GetFeatureInfo have a coordinate translation problem?

Consider the WMS request shown here (ignore line wrapping):
  http://localhost/mapserver/mapserv.exe
?map=m01.map
SERVICE=WMS
VERSION=1.1.1
REQUEST=GetFeatureInfo
LAYERS=External
QUERY_LAYERS=External
INFO_FORMAT=text/plain
x=0.0y=0.0
SRS=EPSG:4326
BBOX=-10,-10,10,10
width=500height=500

In the mapfile below, all coordinate system references are to 4326. Forcing 
an error in the DATA statement makes me think the (0,0) coordinate pair is 
mistranslated, as shown by the message below which includes:
  shape_BOGUS.STIntersects(
   geometry::STGeomFromText('POINT(-9.98 9.98)',4326)) = 1

Is there a problem with my request or with my mapfile? 

Following is the mapfile and some experiments that I performed. I'm using 
MapServer 6.1-DEV with Sql Server 2008 under Windows XP.

The relevant mapfile is defined as:

map
  name m01
  status on
  size 500 500
  extent -20 -20 20 20
  units dd
  imagecolor 255 255 255
  projection init=epsg:4326 end

  web
imagepath c:\ms4w\tmp\ms_tmp
imageurl /ms_tmp/
metadata
  wms_title test-title
  wms_extent-180 -90 180 90
  wms_srs   EPSG:4326
  ows_enable_requestGetCapabilities GetMap GetFeature GetFeatureInfo
end
  end
  layer
name External
type polygon
status on
metadata
  wms_title External
  wms_extent-180 -90 180 90
  wms_srs   EPSG:4326
  ows_include_items all
  wms_include_items all
  gml_include_items all
  gml_geometriesmultiPolygon
  gml_multiPolygon_type multipolygon
end
dump true
header C:\ms4w\Apache\cgi-bin\m01_header.htm
template C:\ms4w\Apache\cgi-bin\m01_template.html
footer C:\ms4w\Apache\cgi-bin\m01_footer.html
projection init=epsg:4326 end
units dd
# ExternalData table created and populated in Sql Server 2008 with:
# create table ExternalData 
#   (ID varchar(10) primary key, shape Geometry not null);
# insert into ExternalData (id, shape) values ('x102',
#   geometry::STGeomFromText('polygon((-20 -20,-20 20,20 20,20 -20,-20 
-20))', 4326))
connection server=...;database=test;uid=...;pwd=...
connectiontype plugin
plugin C:/ms4w/Apache/specialplugins/msplugin_mssql2008.dll
data shape from dbo.ExternalData using unique ID using srid=4326
labelitem ID
class
  name ExternalClass
  style color 255 0 0 outlinecolor 0 255 0 end
  label position auto size small color 0 0 0 end
end
  end
end

Note that the WMS request, the MAP and the LAYER are all defined with the 
4326 projection. 

If I change the DATA statement to force an error,
data shape_BOGUS from dbo.ExternalData using unique ID using srid=4326
the error returned shows:
  msMSSQL2008LayerGetShape(): Query error. 
  Error executing MSSQL2008 SQL statement: 
SELECT
   convert(varchar(max), id),
   shape_BOGUS.STAsBinary(),
   convert(varchar(36), ID) 
from dbo.ExternalData 
WHERE shape_BOGUS.STIntersects(
   geometry::STGeomFromText('POINT(-9.98 9.98)',4326)) = 1

Please note that the POINT location should be (0,0). Why isn't it? 

A similar problem occurs if the feature is defined inline as described below.

Some additional details: 

1. If I remove the _BOGUS, a result is returned. Therefore I believe that the 
mapfile is well-formed.

2. With _BOGUS removed, and the polygon redefined in the database as 
POLYGON((-5 -5,-5 5,5 5,5 -5,-5 -5)), no result is returned. Therefore I 
believe that the bad coordinates in the query are being used.

3. If I define and use an Internal layer:
  layer
name Internal
type polygon
status on
metadata
  wms_title Internal
  wms_extent-180 -90 180 90
  wms_srs   EPSG:4326
  ows_include_items all
  wms_include_items all
  gml_include_items all
  gml_geometriesmultiPolygon 
  gml_multiPolygon_type multipolygon
end
dump true
header C:\ms4w\Apache\cgi-bin\m01_header.htm
template C:\ms4w\Apache\cgi-bin\m01_template.html
footer C:\ms4w\Apache\cgi-bin\m01_footer.html
projection init=epsg:4326 end
units dd
feature
  wkt   polygon((-20 -20,-20 20,20 20,20 -20,-20 -20))
  items x101
end
processing items=ID
labelitem ID
class
  name InternalClass
  style color 255 0 0 outlinecolor 0 255 0 end
  label position auto size small color 0 0 0 end
end
  end
then the query returns a result. Therefore I believe that the mapfile is 
well-formed.

4. If I change the feature to POLYGON((-5 -5,-5 5,5 5,5 -5,-5 -5)), no result 
is returned by the query. Therefore I believe that the bad coordinate problem 
occurs not only for Sal Server but for an inline feature as well.

5. GetMap shows