[Mapbender-commits] r3800 - trunk/mapbender/http/php

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Tue Mar 24 05:39:17 EDT 2009


Author: christoph
Date: 2009-03-24 05:39:16 -0400 (Tue, 24 Mar 2009)
New Revision: 3800

Modified:
   trunk/mapbender/http/php/mod_meetingPoint.php
Log:
http://trac.osgeo.org/mapbender/ticket/417

Modified: trunk/mapbender/http/php/mod_meetingPoint.php
===================================================================
--- trunk/mapbender/http/php/mod_meetingPoint.php	2009-03-24 09:36:09 UTC (rev 3799)
+++ trunk/mapbender/http/php/mod_meetingPoint.php	2009-03-24 09:39:16 UTC (rev 3800)
@@ -97,13 +97,18 @@
 	meetingPoint_please_click = 'Please click for the meeting point position!';
 }
 
-parent.mb_registerSubFunctions("window.frames['meetingPoint'].mod_meetingPoint_draw()");
+var mod_meetingPointRealPoint = null;
+//parent.mb_registerSubFunctions("window.frames['meetingPoint'].mod_meetingPoint_draw()");
 
+parent.eventAfterMapRequest.register(function () {
+	mod_meetingPoint_draw();
+});
+
 var ie = document.all?1:0;
 var mod_meetingPoint_win = null;
 var mod_meetingPoint_elName = "meetingPoint";
 var mod_meetingPoint_frameName = "meetingPoint";
-
+var mod_meetingPoint_button = "my_getCoords";
 var mod_meetingPoint_img_on = new Image(); mod_meetingPoint_img_on.src = meetingPoint_image.replace(/_off/,"_on") ;
 var mod_meetingPoint_img_off = new Image(); mod_meetingPoint_img_off.src = meetingPoint_image;
 var mod_meetingPoint_img_over = new Image(); mod_meetingPoint_img_over.src = meetingPoint_image.replace(/_off/,"_over") ;
@@ -111,25 +116,39 @@
 
 
 function init_mod_meetingPoint(ind){
-	parent.mb_button[ind] = window.document.getElementById("my_getCoords");
+	parent.mb_button[ind] = window.document.getElementById(mod_meetingPoint_button);
 	parent.mb_button[ind].img_over = mod_meetingPoint_img_over.src;
 	parent.mb_button[ind].img_on = mod_meetingPoint_img_on.src;
 	parent.mb_button[ind].img_off = mod_meetingPoint_img_off.src;
 	parent.mb_button[ind].status = 0;
-	parent.mb_button[ind].elName = "my_getCoords";
+	parent.mb_button[ind].elName = mod_meetingPoint_button;
 	parent.mb_button[ind].go = new Function ("mod_meetingPoint_run()");
 	parent.mb_button[ind].stop = new Function ("mod_meetingPoint_disable()");
 }
 
 function mod_meetingPoint_run(){   
-	parent.frames[mod_meetingPoint_target].document.onclick = mod_meetingPoint_click;
+	var mapObject = parent.getMapObjByName(mod_meetingPoint_target);
+	if (mapObject) {
+		mapObject.getDomElement().ownerDocument.onclick = function (e) {
+			var clickPos = mapObject.getMousePosition(e);
+			mod_meetingPointRealPoint = mapObject.convertPixelToReal(clickPos);
+			mod_meetingPoint_write(mod_meetingPointRealPoint.x, mod_meetingPointRealPoint.y);
+			mod_meetingPoint_draw();	
+			parent.mb_disableThisButton(mod_meetingPoint_button);
+		};
+	}
 }
 
 function mod_meetingPoint_disable(){
-	parent.frames[mod_meetingPoint_target].document.onclick = null;
+	var mapObject = parent.getMapObjByName(mod_meetingPoint_target);
+	if (mapObject) {
+		mapObject.getDomElement().ownerDocument.onclick = null;
+	}
 }
+/*
+function mod_meetingPoint_click(e){
+	
 
-function mod_meetingPoint_click(e){
 	if(ie){
 		clickX = parent.frames[mod_meetingPoint_target].event.clientX;
 		clickY = parent.frames[mod_meetingPoint_target].event.clientY;
@@ -144,18 +163,56 @@
 	mod_meetingPoint_write(pos[0],pos[1]);
 	mod_meetingPoint_draw();	
 }
-
+*/
 function mod_meetingPoint_write(x,y){	
    document.forms[0].x.value =x;
    document.forms[0].y.value =y;	   
 }
 
 function mod_meetingPoint_hide(){
-	var ind = parent.getMapObjIndexByName(mod_meetingPoint_target);
-	parent.frames[mod_meetingPoint_target].document.getElementById('permanent').style.visibility = 'hidden';
+	//var ind = parent.getMapObjIndexByName(mod_meetingPoint_target);
+	//parent.frames[mod_meetingPoint_target].document.getElementById('permanent').style.visibility = 'hidden';
+	var mapObject = parent.getMapObjByName(mod_meetingPoint_target);
+	parent.$("#" + mapObject.elementName + "_permanent").css({
+		visibility:"hidden"
+	});
 }
 
+
 function mod_meetingPoint_draw(){
+	var mapObject = parent.getMapObjByName(mod_meetingPoint_target);
+	if (mapObject) {
+		if (mod_meetingPointRealPoint !== null) {
+			//alert(document.forms[0].x.value +" -- "+ document.forms[0].y.value + " - " );
+	
+			var meetingPointClickPos = mapObject.convertRealToPixel(mod_meetingPointRealPoint);
+			var tagSource = "";
+			tagSource += "<div style='z-index:13;position:absolute;left:"+(meetingPointClickPos.x- Math.round(0.5*meetingPoint_width))+"px;top:"+(meetingPointClickPos.y-Math.round(0.5*meetingPoint_height))+"px'>";
+			tagSource += "<img src='"+meetingPoint_icon+"'>";
+			tagSource += "<span style='"+meetingPoint_style+"'>"+document.forms[0].mytext.value+"<span>";
+			tagSource += "</div>";
+
+			var map_el = mapObject.getDomElement();
+			if (!map_el.ownerDocument.getElementById(mapObject.elementName + "_permanent")) {
+				//create Box Elements
+
+				var $div = parent.$("<div id='" + mapObject.elementName + "_permanent'><img src='../img/redball.gif'/></div>");
+				$div.css({
+					position: "absolute",
+					top: "0px",
+					left: "0px",
+					zIndex: 13
+				});
+				map_el.appendChild($div.get(0));
+			}
+			parent.$("#" + mapObject.elementName + "_permanent").html(tagSource);
+			
+		}
+	}
+}
+
+/*
+function mod_meetingPoint_draw(){
 	var ind = parent.getMapObjIndexByName(mod_meetingPoint_target);
 	if (document.forms[0].x.value!='' && document.forms[0].y.value != ''){
 		//alert(document.forms[0].x.value +" -- "+ document.forms[0].y.value + " - " + parent.mb_mapObj[ind].width +" iii: "+ ind);
@@ -174,6 +231,8 @@
 	    parent.writeTag(mod_meetingPoint_target, "permanent", tagSource);
 	}	 
 }
+
+*/
 -->
 </script>
 



More information about the Mapbender_commits mailing list