<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=093545617-22012010><FONT face=Arial 
color=#0000ff size=2>Hi,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=093545617-22012010><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=093545617-22012010><FONT face=Arial 
color=#0000ff size=2>instead of your declaration</FONT></SPAN></DIV>
<DIV dir=ltr align=left>gbase = new OpenLayers.Layer.Google( "Google Physical", 
{type: G_PHYSICAL_MAP}, {'sphericalMercator': true} ); <BR></DIV>
<DIV dir=ltr align=left><SPAN class=093545617-22012010><FONT face=Arial 
color=#0000ff size=2>you have to use</FONT></SPAN></DIV>
<DIV dir=ltr align=left>gbase = new OpenLayers.Layer.Google( "Google Physical", 
{type: G_PHYSICAL_MAP, 'sphericalMercator': true} ); <BR></DIV>
<DIV><SPAN class=093545617-22012010></SPAN><FONT face=Arial><FONT 
color=#0000ff><FONT size=2><SPAN 
class=093545617-22012010>t</SPAN>hen&nbsp;your&nbsp;map&nbsp;is&nbsp;in&nbsp;spericalMercator<SPAN 
class=093545617-22012010>. Otherwise it seems, that instead of your options for 
the map, the baselayer projection is taken and that is 
EPSG:4326.</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=093545617-22012010></SPAN></FONT></FONT></FONT><FONT face=Arial 
color=#0000ff size=2></FONT>&nbsp;</DIV>
<DIV><SPAN class=093545617-22012010><FONT face=Arial color=#0000ff 
size=2>Arnd</FONT></SPAN></DIV>
<DIV><BR></DIV>
<DIV class=OutlookMessageHeader lang=de dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>Von:</B> users-bounces@openlayers.org 
[mailto:users-bounces@openlayers.org] <B>Im Auftrag von </B>julien 
minet<BR><B>Gesendet:</B> Freitag, 22. Januar 2010 13:57<BR><B>An:</B> 
users@openlayers.org<BR><B>Betreff:</B> [OpenLayers-Users] Points and Popup 
shifted on a Google background<BR></FONT><BR></DIV>
<DIV></DIV>Hi again, <BR><BR>I've seen that no attachment can be sent to the 
list. So I've put the code at the end of this 
mail...<BR><BR><BR>-----------------<BR>I've have a problem of misplacement of 
features and popup when adding a vector layer to a OL map with a background 
Google.<BR><BR>I just want ot add some points entered in WGS84 (by 
OpenLayers.Layer.Vector) to a map with a Google layer as the base layer. I've 
put my map in spherical Mercator, as well as the google layer and I've 
transformed my points in EPSG:900913 but I still have a problem!<BR><BR>My 
points are displayed near the exact location, but with a slight shift. When I 
zoom/zoom over or if I pan in the N-S direction, points are changing of 
position. Until here, it seems that it is just a projection problem, but I think 
I'm doing right in the projection setup(?)<BR><BR>But the most surprising is 
that the popup, which should be displayed on the points when clicking on it, are 
displayed at the exact locations, at any scale! So the position of the popup are 
right!<BR><BR>If I try to transfom the points from EPSG4326 to EPSG900913, they 
are not displayed anymore anywhere...<BR><BR>I've attached my stand-alone 
working code.<BR><BR><BR>This identically happen under WinXP-IE7 or FF and 
Ubuntu-FF.<BR><BR>Any hints are 
welcome!<BR><BR>Julien<BR><BR>----------------------------<BR>&nbsp;&lt;html 
xmlns="<A 
href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</A>"&gt; 
<BR>&nbsp; &lt;head&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;link rel="stylesheet" 
href="<A 
href="http://openlayers.org/dev/theme/default/style.css">http://openlayers.org/dev/theme/default/style.css</A>" 
type="text/css" /&gt;&nbsp; <BR>&nbsp;&nbsp;&nbsp; &lt;link rel="stylesheet" 
href="<A 
href="http://openlayers.org/dev/examples/style.css">http://openlayers.org/dev/examples/style.css</A>" 
type="text/css" /&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;title&gt;Wallonie with 
GoogleMaps&lt;/title&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;script src='<A 
href="http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=ABQIAAAACxUxJ46tcIiZKWG81HlNYBQNmDPi4Y89dW251X5Bl4Z1--Eg2BTkAwr63SeUaRI4wI8RwX7LgtHN0g">http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=ABQIAAAACxUxJ46tcIiZKWG81HlNYBQNmDPi4Y89dW251X5Bl4Z1--Eg2BTkAwr63SeUaRI4wI8RwX7LgtHN0g</A>'&gt;&lt;/script&gt; 
<BR>&nbsp;&nbsp;&nbsp; &lt;script src="<A 
href="http://openlayers.org/api/OpenLayers.js">http://openlayers.org/api/OpenLayers.js</A>"&gt;&lt;/script&gt;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp; &lt;script type="text/javascript"&gt; 
<BR>&nbsp;&nbsp;&nbsp; var map, gbase, points, selectControl, 
selectedFeature;<BR>&nbsp;&nbsp;&nbsp; var proj = new 
OpenLayers.Projection("EPSG:4326");<BR>&nbsp;&nbsp;&nbsp;&nbsp; var bounds = new 
OpenLayers.Bounds(6.190,50.517,6.205,50.535);<BR>&nbsp;&nbsp;&nbsp; 
bounds.transform(proj, map.getProjectionObject());<BR><BR>&nbsp;&nbsp;&nbsp; var 
options = { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; projection: new 
OpenLayers.Projection("EPSG:900913"),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
displayProjection: new 
OpenLayers.Projection("EPSG:4326"),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
units: "m",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numZoomLevels: 
18,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxResolution: 
156543.0339,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxExtent: new 
OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508.34) 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR><BR>&nbsp;&nbsp;&nbsp; 
function onPopupClose(evt) 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
selectControl.unselect(selectedFeature);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function 
onFeatureSelect(feature) 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
selectedFeature = 
feature;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
popup = new OpenLayers.Popup.FramedCloud("chicken", 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
feature.geometry.getBounds().getCenterLonLat(),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
null,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
"&lt;div" + <A href="http://feature.id">feature.id</A> 
+"&gt;&lt;/div&gt;",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
null, true, 
onPopupClose);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
popup.setBackgroundColor("red");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
popup.setBorder("10px");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
feature.popup = 
popup;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
map.addPopup(popup);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function 
onFeatureUnselect(feature) 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
map.removePopup(feature.popup);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
feature.popup.destroy();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
feature.popup = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}&nbsp;&nbsp; <BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; function init() { 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; map = new 
OpenLayers.Map('map',options); 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Add google layers 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gbase = new 
OpenLayers.Layer.Google( "Google Physical", {type: G_PHYSICAL_MAP}, 
{'sphericalMercator': true} ); 
<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
map.addLayer(gbase);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Add 
Bornes Frontières Geometry<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var 
Bornes = new Array();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bornes[0] = new 
OpenLayers.Feature.Vector(new 
OpenLayers.Geometry.Point(6.20475,50.52167));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Bornes[1] = new OpenLayers.Feature.Vector(new 
OpenLayers.Geometry.Point(6.20440,50.52148));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Bornes[0] = new 
OpenLayers.Feature.Vector(new 
OpenLayers.Geometry.Point(6.20475,50.52167).transform(new 
OpenLayers.Projection("EPSG:4326"),new 
OpenLayers.Projection("EPSG:900913")));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//Bornes[1] = new OpenLayers.Feature.Vector(new 
OpenLayers.Geometry.Point(6.20440,50.52148).transform(new 
OpenLayers.Projection("EPSG:4326"),new 
OpenLayers.Projection("EPSG:900913")));<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
points = new OpenLayers.Layer.Vector("Infos", {projection: new 
OpenLayers.Projection("EPSG:4326")});<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
points.addFeatures(Bornes);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
map.addLayer(points);<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
Ajout des Controls <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
map.addControl(new OpenLayers.Control.LayerSwitcher()); 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; map.addControl(new 
OpenLayers.Control.ScaleLine({div:document.getElementById("scale")})); 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; map.addControl(new 
OpenLayers.Control.MousePosition({div:document.getElementById("mouseposition")})); 
<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
selectControl = new OpenLayers.Control.SelectFeature(points,{onSelect: 
onFeatureSelect, onUnselect: 
onFeatureUnselect});<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
map.addControl(selectControl);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
selectControl.activate();<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
map.zoomToExtent(bounds);<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; 
&lt;/script&gt; <BR>&nbsp; &lt;/head&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;body 
onload="init()"&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h4 
id="title"&gt;Wallonie with GoogleMaps&lt;/h4&gt; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt; Carte dynamique 
OpenLayers&lt;/div&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div 
style="width:100%; height:80%" id="map"&gt;&lt;/div&gt; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div align="right" 
id="mouseposition"&gt;&lt;/div&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div 
align="right" id="scale"&gt; &lt;/div&gt; <BR>&nbsp; &lt;/body&gt; 
<BR>&lt;/html&gt;<BR></BODY></HTML>