[OpenLayers-Users] WFS reprojection on Google Maps

Luís de Sousa luis.a.de.sousa at gmail.com
Thu May 5 11:55:28 EDT 2011


Thank you Andreas, it worked like a charm.

There is one issue though, everytime I pan or zoom into the map I get
this annoying "Map Data" dialogue about Google's copyright. Anyway to
deal away with that?

Thank you,

Luís

2011/5/5 Andreas Hocevar <ahocevar at opengeo.org>:
> Hey,
>
> OpenLayers.Layer.WFS is depracated. See
> http://openlayers.org/dev/examples/wfs-protocol-transactions.html for
> an example of how to overlay WFS layers properly on a Web Mercator
> map.
>
> Note, however, that the main issue in your code is not the fact that
> you are using OpenLayers.Layer.WFS (it seems like it is configured
> properly), but missing map configuration parameters (units,
> maxResolution, maxExtent). You either have to set them manually, or
> use GMaps v3 instead of v2, because OpenLayers.Layer.Google v3 base
> layers have these settings configured already. See
> http://openlayers.org/dev/examples/google-v3.html for an example on
> how to use v3.
>
> Also note that as soon as you work with Web Mercator maps, you cannot
> specify coordinates in longitude/latitude. If you do so, you need to
> transform them, which is also shown in the google-v3 example I linked
> above.
>
> Regards,
> Andreas.
>
> 2011/5/4 Luís de Sousa <luis.a.de.sousa at gmail.com>:
>> Dear all,
>>
>> I've been trying to reproject WFS layers on Google Maps without
>> success. After reading several threads here and elsewhere it became
>> apparent that WFS 1.1.0 takes care of reprojections by itself, without any
>> processing needed client side. Hence I tried simply to reproject the
>> Tazmania shapes from Geoserver on a Google Maps base layer; while the
>> WFS layers are indeed there, they do not seem to have been reprojected:
>>
>> http://www.flickr.com/photos/46630302@N04/5686739802/in/set-72157626519940667/
>>
>> Below goes the code, note that I'm using a local version of Geoserver
>> on port 8090. I'd thank if anyone could hint at what I'm missing.
>>
>> Thanks,
>>
>> Luís
>>
>> -----
>>
>> <html xmlns="http://www.w3.org/1999/xhtml">
>>   <head>
>>       <style type="text/css">
>>           #map {
>>               width: 560px;
>>               height: 460px;
>>               border: 1px solid black;
>>           }
>>       </style>
>>
>>       <script src="http://localhost:8090/geoserver/www/OpenLayers-2.9/OpenLayers.js"
>> type="text/javascript"></script>
>>
>>       <!-- Google API-->
>>       <script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
>>
>>       <script defer="defer" type="text/javascript">
>>
>>       function init(){
>>
>>           var map = new OpenLayers.Map("map", {
>>               projection: new OpenLayers.Projection("EPSG:900913")
>>           });
>>
>>           var gphy = new OpenLayers.Layer.Google(
>>               "Google Physical",
>>               {type: G_PHYSICAL_MAP}
>>           );
>>
>>           var roads = new OpenLayers.Layer.WFS(
>>               "Roads",
>>               "http://localhost:8090/geoserver/wfs",
>>               {typename: 'topp:tasmania_roads'},
>>               {
>>                   typename: 'tasmania_roads',
>>                   featureNS: 'http://www.openplans.org/topp',
>>                   extractAttributes: false,
>>                   version: "1.1.0",
>>                   srsName: "EPSG:900913"
>>               }
>>           );
>>           roads.style = OpenLayers.Util.applyDefaults(
>>               {strokeWidth: 2, strokeColor: "#ff0000"},
>>               OpenLayers.Feature.Vector.style["default"]);
>>
>>           var states = new OpenLayers.Layer.WFS(
>>               "States",
>>               "http://localhost:8090/geoserver/wfs",
>>               {typename: 'topp:tasmania_state_boundaries'},
>>               {
>>                   typename: 'tasmania_state_boundaries',
>>                   featureNS: 'http://www.openplans.org/topp',
>>                   extractAttributes: false,
>>                   version: "1.1.0",
>>                   srsName: "EPSG:900913"
>>               }
>>           );
>>           states.style = OpenLayers.Util.applyDefaults(
>>               {strokeWidth: 3, strokeColor: "#333333"},
>>               OpenLayers.Feature.Vector.style["default"]);
>>
>>           map.addLayers([gphy, roads, states]);
>>
>>           map.addControl(new OpenLayers.Control.Navigation());
>>           map.addControl(new OpenLayers.Control.LayerSwitcher());
>>
>>           map.setCenter(new OpenLayers.LonLat(147, -42), 7);
>>
>>       }
>>       </script>
>>
>>   </head>
>>   <body onload="init()">
>>       <h5>This is a reprojection test on Google Maps.</h5>
>>       <div id="map"> </div>
>>   </body>
>> </html>
>> _______________________________________________
>> Users mailing list
>> Users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>>
>
>
>
> --
> Andreas Hocevar
> OpenGeo - http://opengeo.org/
> Expert service straight from the developers.
>


More information about the Users mailing list