From b2886e3dadad4a11c64b0a0d36df5031261488df Mon Sep 17 00:00:00 2001 From: Serge Noiraud Date: Wed, 11 Aug 2010 18:00:18 +0000 Subject: [PATCH] GeoView : Some cleaning. Some corrections with googlev3 crosshair. Resizing now ok with a new crosshair implementation for googlev3. svn: r15705 --- src/mapstraction/mxn.googlev3.core.js | 48 ++++++++++----- src/mapstraction/mxn.openlayers.core.js | 82 ++++++++++++------------- src/plugins/view/geoview.py | 30 ++++----- 3 files changed, 86 insertions(+), 74 deletions(-) diff --git a/src/mapstraction/mxn.googlev3.core.js b/src/mapstraction/mxn.googlev3.core.js index e1fd9262c..80c0e3ce4 100644 --- a/src/mapstraction/mxn.googlev3.core.js +++ b/src/mapstraction/mxn.googlev3.core.js @@ -320,36 +320,50 @@ Mapstraction: { addCrosshair: function(Cross, crosshairSize, divid) { var map = this.maps[this.api]; - if ( map.init == true ) { - cross=document.getElementById("Googlev3_Control_CrossHair"); - cross.style.visibility = 'visible'; - return map.crosshair; - }; + if ( map.init == true ) { + cross=document.getElementById("Googlev3_Control_CrossHair"); + cross.style.visibility = 'visible'; + return map.crosshair; + }; var container = map.getDiv(); + map.divid=divid; + // Create a div to hold the control. + var controlDiv = document.createElement('DIV'); + controlDiv.style.padding = '0px'; + controlDiv.style.width='100%'; + controlDiv.style.height='100%'; + var controlUI = document.createElement('DIV'); + controlUI.style.padding = '0px'; + controlUI.style.width='100%'; + controlUI.style.height='100%'; + controlDiv.appendChild(controlUI); + // Create a crosshair. var crosshair=document.createElement("img"); - crosshair.id = "Googlev3_Control_CrossHair"; + crosshair.id = "Googlev3_Control_CrossHair"; crosshair.src=Cross; crosshair.style.width=crosshairSize+'px'; crosshair.style.height=crosshairSize+'px'; crosshair.style.border='0'; crosshair.style.position='fixed'; - this.X = (parseInt(container.offsetWidth) / 2)+8-(crosshairSize / 2) + 'px'; - this.Y = (parseInt(container.offsetHeight) / 2)+8-(crosshairSize / 2) + 'px'; - crosshair.style.top=this.Y; - crosshair.style.left=this.X; + olbox=document.getElementById(divid); + crosshair.style.margin=-(crosshairSize / 2) + 'px'; + crosshair.style.top='50%'; + crosshair.style.left='50%'; + crosshair.style.visibility = 'visible'; crosshair.style.zIndex='1500'; - container.appendChild(crosshair); + controlUI.appendChild(crosshair); + container.appendChild(controlDiv); map.crosshair=crosshair; - map.init = true; - return crosshair; + map.init = true; + return controlDiv; }, removeCrosshair: function(element) { var map = this.maps[this.api]; - if ( map.init == true ) { - cross=document.getElementById('Googlev3_Control_CrossHair'); - cross.style.visibility = 'hidden'; - }; + if ( map.init == true ) { + cross=document.getElementById('Googlev3_Control_CrossHair'); + cross.style.visibility = 'hidden'; + }; }, mousePosition: function(element) { diff --git a/src/mapstraction/mxn.openlayers.core.js b/src/mapstraction/mxn.openlayers.core.js index d2080b7ce..92a18782d 100644 --- a/src/mapstraction/mxn.openlayers.core.js +++ b/src/mapstraction/mxn.openlayers.core.js @@ -362,52 +362,50 @@ mxn.register('openlayers', { addCrosshair: function(Cross, crosshairSize, divid) { var map = this.maps[this.api]; - if ( map.init == true ) { - cross=document.getElementById('OpenLayers_Control_CrossHair'); - cross.style.visibility = 'visible'; - return map.centerIcon - }; - var centerIcon = document.createElement('div'); - centerIcon.style.width='100%'; - centerIcon.style.height='100%'; - centerIcon.style.zIndex ='1500'; - var imgLocation=OpenLayers.Util.getImagesLocation(); - var sz=new OpenLayers.Size(crosshairSize,crosshairSize); - var img=Cross; - function crosshairResize() { - //var olbox = document.getElementById("geo-map"); - var olbox = document.getElementById(divid); - this.X = (parseInt(olbox.offsetWidth) / 2)-(crosshairSize / 2) + 'px'; - this.Y = (parseInt(olbox.offsetHeight) / 2)-(crosshairSize / 2) + 'px'; - cross=document.getElementById('OpenLayers_Control_CrossHair'); - cross.style.top=this.Y; - cross.style.left=this.X; - }; - var olbox = document.getElementById("geo-map"); - var olbox = document.getElementById(divid); - map.CrossHair=OpenLayers.Util.createAlphaImageDiv( - "OpenLayers_Control_CrossHair",null,sz,img,"absolute"); - map.CrossHair.style.zIndex ='1500'; - olbox.addEventListener("load",crosshairResize,true); - OpenLayers.Element.addClass(map.CrossHair,"CrossHair"); - OpenLayers.Control.Crosshair = OpenLayers.Class.create(); - centerIcon.id = "mapCenter"; - viewport=document.getElementById('OpenLayers.Map_2_OpenLayers_ViewPort') - viewport.appendChild(centerIcon); - centerIcon.appendChild(map.CrossHair); - crosshairResize(); - map.init=true; - map.centerIcon=centerIcon - return centerIcon + if ( map.init == true ) { + cross=document.getElementById('OpenLayers_Control_CrossHair'); + cross.style.visibility = 'visible'; + return map.centerIcon + }; + var centerIcon = document.createElement('div'); + centerIcon.style.width='100%'; + centerIcon.style.height='100%'; + centerIcon.style.zIndex ='1500'; + var imgLocation=OpenLayers.Util.getImagesLocation(); + var sz=new OpenLayers.Size(crosshairSize,crosshairSize); + var img=Cross; + function crosshairResize() { + var olbox = document.getElementById(divid); + this.X = (parseInt(olbox.offsetWidth) / 2)-(crosshairSize / 2) + 'px'; + this.Y = (parseInt(olbox.offsetHeight) / 2)-(crosshairSize / 2) + 'px'; + cross=document.getElementById('OpenLayers_Control_CrossHair'); + cross.style.top=this.Y; + cross.style.left=this.X; + }; + var olbox = document.getElementById(divid); + map.CrossHair=OpenLayers.Util.createAlphaImageDiv( + "OpenLayers_Control_CrossHair",null,sz,img,"absolute"); + map.CrossHair.style.zIndex ='1500'; + olbox.addEventListener("load",crosshairResize,true); + OpenLayers.Element.addClass(map.CrossHair,"CrossHair"); + OpenLayers.Control.Crosshair = OpenLayers.Class.create(); + centerIcon.id = "mapCenter"; + viewport=document.getElementById('OpenLayers.Map_2_OpenLayers_ViewPort') + viewport.appendChild(centerIcon); + centerIcon.appendChild(map.CrossHair); + crosshairResize(); + map.init=true; + map.centerIcon=centerIcon + return centerIcon }, removeCrosshair: function(crosshair) { var map = this.maps[this.api]; - if ( map.init == true ) { - cross=document.getElementById('OpenLayers_Control_CrossHair'); - cross.style.visibility = 'hidden'; - }; - return 0; + if ( map.init == true ) { + cross=document.getElementById('OpenLayers_Control_CrossHair'); + cross.style.visibility = 'hidden'; + }; + return 0; }, mousePosition: function(element) { diff --git a/src/plugins/view/geoview.py b/src/plugins/view/geoview.py index e1cd648d8..34471a0e6 100644 --- a/src/plugins/view/geoview.py +++ b/src/plugins/view/geoview.py @@ -194,7 +194,7 @@ _HTMLHEADER = '''\ _JAVASCRIPT = '''\