[Mapbender-commits] r2327 - branches/nimix_dev/http/javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Wed Apr 2 03:57:07 EDT 2008


Author: nimix
Date: 2008-04-02 03:57:07 -0400 (Wed, 02 Apr 2008)
New Revision: 2327

Added:
   branches/nimix_dev/http/javascripts/tooltip_wms.php
Modified:
   branches/nimix_dev/http/javascripts/tooltip.php
Log:
add featureInfo tooltip that only apears if there are results

Modified: branches/nimix_dev/http/javascripts/tooltip.php
===================================================================
--- branches/nimix_dev/http/javascripts/tooltip.php	2008-04-02 07:55:48 UTC (rev 2326)
+++ branches/nimix_dev/http/javascripts/tooltip.php	2008-04-02 07:57:07 UTC (rev 2327)
@@ -44,14 +44,14 @@
 
 eventInit.register(function(){
 	$(window.frames["mapframe1"].document).mousemove(function(event){
-		eventMouseMove.trigger();
-		mb_getMousePos(event,"mapframe1");
+		eventMouseMove.trigger(event);
 	}).mouseout(function(){mouseMoves=0;});
 });
 
-eventMouseMove.register(function(){
-	if(tooltipWin&&tooltipWin.isVisible())
-		tooltipWin.destroy();
+eventMouseMove.register(function(event){
+	mb_getMousePos(event,"mapframe1");
+//	if(tooltipWin&&tooltipWin.isVisible()&&(Math.abs(clickX-point.x)>15||Math.abs(clickY-point.y)>15))
+//		tooltipWin.destroy();
 	mouseMoves++;
 	setTimeout("if(mouseMoves=="+mouseMoves+")requestWfs();",tooltipTime);
 });

Added: branches/nimix_dev/http/javascripts/tooltip_wms.php
===================================================================
--- branches/nimix_dev/http/javascripts/tooltip_wms.php	                        (rev 0)
+++ branches/nimix_dev/http/javascripts/tooltip_wms.php	2008-04-02 07:57:07 UTC (rev 2327)
@@ -0,0 +1,113 @@
+<?php
+# $Id: mod_toggleModule.php 2238 2008-03-13 14:24:56Z christoph $
+# http://www.mapbender.org/index.php/mod_toggleModule.php
+# Copyright (C) 2002 CCGIS 
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
+
+echo "var tooltipTarget ='".$e_target[0]."';"; 
+
+include '../include/dyn_js.php';
+?>
+
+var tooltipTime = 500;
+
+var mouseMoves=0;
+var tooltipWin=null;
+var point;
+var numberOfFinishedAjaxCalls = 0;
+buttonWfs_toDigitize_on ="0";
+
+function mod_tooltipInit(){
+	$(window.frames["mapframe1"].document).mousemove(function(event){
+		mod_tooltip_run();
+		mb_getMousePos(event,"mapframe1");
+	}).mouseout(function(){mouseMoves=0;});
+}
+
+mb_registerInitFunctions("mod_tooltipInit();");
+
+function mod_tooltip_run(){
+	mouseMoves++;
+	setTimeout("if(mouseMoves=="+mouseMoves+")showWMSBalloon();",tooltipTime);
+});
+
+function showWMSBalloon(){
+	x=clickX+parseInt(document.getElementById("mapframe1").style.left);
+	y=clickY+parseInt(document.getElementById("mapframe1").style.top);
+	if(tooltipWin&&tooltipWin.isVisible())
+		tooltipWin.destroy();
+	url = getfirstFeatureInfoRequest(tooltipTarget,clickX,clickY,"../extensions/ext_featureInfoTunnel.php");
+//	var ind = getMapObjIndexByName("mapframe1");
+//	req = mb_mapObj[ind].getFeatureInfoRequests({x:clickX,y:clickY});
+	mb_ajax_post(url, null, function(js_code,status){
+		if(js_code.indexOf("Kein Ergebnis.")!==-1)
+			return;
+		tooltipWin = new mb_popup({html:"<iframe>"+js_code+"</iframe>",title:"Feature Info",width:270,height:200,balloon:true,left:x,top:y});
+		tooltipWin.show();
+	});
+	//if(req)
+}
+
+function getfirstFeatureInfoRequest(fName,x,y,path) {
+	for(i=0; i<mb_mapObj.length; i++){
+		if(mb_mapObj[i].frameName == fName){
+			for(var ii=0; ii<mb_mapObj[i].wms.length; ii++){
+				var newfeatureInfoRequest = "";
+				var requestParams = "";
+				var validation = false;
+				newfeatureInfoRequest += mb_mapObj[i].wms[ii].wms_getfeatureinfo;          
+            	newfeatureInfoRequest += mb_getConjunctionCharacter(mb_mapObj[i].wms[ii].wms_getfeatureinfo);
+            	
+				if(mb_mapObj[i].wms[ii].wms_version == "1.0.0"){requestParams += "WMTVER="+mb_mapObj[i].wms[ii].wms_version+"&REQUEST=feature_info&";}
+				if(mb_mapObj[i].wms[ii].wms_version != "1.0.0"){requestParams += "VERSION="+mb_mapObj[i].wms[ii].wms_version+"&REQUEST=GetFeatureInfo&SERVICE=WMS&";}
+				requestParams += "SRS="+mb_mapObj[i].epsg+"&";
+				requestParams += "BBOX="+mb_mapObj[i].extent+"&";
+				requestParams += "WIDTH="+mb_mapObj[i].width+"&";
+				requestParams += "HEIGHT="+mb_mapObj[i].height+"&";
+				requestParams += "LAYERS="+mb_mapObj[i].layers[ii]+"&";
+				requestParams += "STYLES="+mb_mapObj[i].styles[ii]+"&";
+				requestParams += "FORMAT="+mb_mapObj[i].wms[ii].gui_wms_mapformat+"&";
+				requestParams += "INFO_FORMAT="+mb_mapObj[i].wms[ii].gui_wms_featureinfoformat+"&";
+				requestParams += "EXCEPTIONS=application/vnd.ogc.se_xml&";
+				if(mb_feature_count > 0){             
+					requestParams += "FEATURE_COUNT="+mb_feature_count+"&";
+				}
+				requestParams += "QUERY_LAYERS="+mb_mapObj[i].querylayers[ii]+"&";
+				requestParams += "X=" + x  + "&";
+				requestParams += "Y=" + y;
+				
+				if(mb_mapObj[i].querylayers[ii] !== "" && mb_mapObj[i].layers[ii] !== ""){
+					validation = true;
+				}
+				//add vendor-specific
+				for(var v=0; v < mb_vendorSpecific.length; v++){
+					var vendorSpecificString = eval(mb_vendorSpecific[v]); 
+					requestParams += "&" + vendorSpecificString; 
+				}
+				if(mb_log && validation){
+					var tmp = eval(mb_log + "('" + newfeatureInfoRequest + requestParams + "','" + ts + "')");
+				}
+				if(validation){
+					newfeatureInfoRequest += requestParams;
+					return newfeatureInfoRequest;
+				}    
+			}
+		}
+	}
+	return false;
+}



More information about the Mapbender_commits mailing list