[OpenLayers-Users] OpenLayers passing query bounds in wrong
projection
SeeJay
hendrix.cj at gmail.com
Thu Mar 19 21:04:06 EDT 2009
Thanks Chris. That helped! This corrected the coordinates of the bounding
box being sent to PostGIS via MapServer, but I've still not quite got it
working yet. The WFS points do draw, but at or near the 0,0 point (perhaps
their epsg4326 coordinates are being interpreted as epsg900913 meters). And
they only display when I zoom out to almost global scales, though I haven't
set any MINSCALEDENOM or MAXSCALEDENOM.
When I convert the map to a epsg:4326 map, everything draws correctly, in
the right part of the world, and displays at all scales.
Any ideas appreciated.
--cj
Christopher Schmidt-2 wrote:
>
> On Thu, Mar 19, 2009 at 02:56:15PM -0700, SeeJay wrote:
>>
>> Ok, I've been banging my head against this for a couple of days. I'm
>> sure
>> I'm just missing something simple. My map is in epsg:900913, the WFS
>> request is passed to mapserver which hits a postGIS database containing a
>> grand total of 2 point features.
>>
>> Code snippets follow:
>> ---------------------------------------------
>> var options = {
>> projection: new OpenLayers.Projection("EPSG:900913"),
>> units: "m",
>> maxResolution: 156543.0339,
>> maxExtent: new OpenLayers.Bounds(
>> -20037508.34, -20037508.34,20037508.34, 20037508.34),
>> controls: [
>> new OpenLayers.Control.LayerSwitcher({'ascending':false}),
>> new OpenLayers.Control.MousePosition(),
>> new OpenLayers.Control.PanZoom(),
>> new OpenLayers.Control.ScaleLine()
>> ]
>> };
>>
>> var map = new OpenLayers.Map('map', options );
>>
>> var tripdata = new OpenLayers.Layer.WMS( "Trips",
>>
>> "http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apache/htdocs/gpshistory/test5.map",
>> {isbaselayer: 'true',layers: 'trippoints,tracks', format:
>> 'image/png'});
>> var waypoints = new OpenLayers.Layer.WFS("Waypoints",
>>
>> "http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apache/htdocs/gpshistory/test5.map",
>> {request: 'GetFeature', typename: 'waypoints', projection: new
>> OpenLayers.Projection("EPSG:4326")});
>
> This definition is wrong. The third parameter is sent directly to the
> server; it should never have objects in it.
>
> Instead, it should be:
> WFS("Name", "url", {'typename':'waypoints'}, {'projection': new
> OpenLayers.Projection("EPSG:4326")});
>
>> map.addLayers([ waypoints,tripdata ]);
>> -----------------------------------------------------
>>
>> The Mapfile contains layers defined only as epsg:4326. However in the
>> MapServer error file, I can see the that bouding box being passed is
>> still
>> in epsg:900913. Here is a line from the errorfile:
>>
>> [Thu Mar 19 16:42:44 2009].203000 query_string_0_6:DECLARE mycursor
>> BINARY
>> CURSOR FOR SELECT
>> asbinary(force_collection(force_2d(the_geom)),'NDR'),uniqueid::text from
>> waypoints WHERE the_geom && setSRID('BOX3D(1490115.87110093
>> 5220415.61602237,1528334.38523667 5239524.87309024)'::BOX3D, 4326 )
>>
>> What am I missing?
>>
>> Thanks,
>> cj
>>
>> --
>> View this message in context:
>> http://n2.nabble.com/OpenLayers-passing-query-bounds-in-wrong-projection-tp2505674p2505674.html
>> Sent from the OpenLayers Users mailing list archive at Nabble.com.
>
>> _______________________________________________
>> Users mailing list
>> Users at openlayers.org
>> http://openlayers.org/mailman/listinfo/users
>
>
> --
> Christopher Schmidt
> MetaCarta
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
>
>
--
View this message in context: http://n2.nabble.com/OpenLayers-passing-query-bounds-in-wrong-projection-tp2505674p2506463.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.
More information about the Users
mailing list