⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 layercontrol.js

📁 Get Map Coordinat by click on map
💻 JS
📖 第 1 页 / 共 2 页
字号:
///////////////////////////////////////////////////////////////////////////////
//
//   (c) Pitney Bowes MapInfo Corporation, 2008.  All rights reserved.
//
//   The source code below is provided as sample code only. The end user of the
//   Licensed Product that contains this code may use the code below for
//   development purposes. This software is provided by Pitney Bowes MapInfo
//   "as is" and any express or implied warranties, including, but not limited
//   to, the implied warranties of merchantability and fitness for a particular
//   purpose are disclaimed.  In no event shall Pitney Bowes MapInfo be liable
//   for any direct, indirect, incidental, special, exemplary, or consequential
//   damages (including, but not limited to, procurement of substitute goods or
//   services; loss of use, data or profits; or business interruption) however
//   caused and whether in contract, strict liability, or tort (including
//   negligence) arising in any way out of the use of this software, even if
//   advised of the possibility of such damage.
//
///////////////////////////////////////////////////////////////////////////////

// Layers collection belonging to map
function MapInfoWebMapLayers()
{
}

// Layer object
function MapInfoWebMapLayer()
{
	this.name="";
	this.visible="";
	this.visiblerangeenabled="";
	this.rangestart="";
	this.rangeend="";
	this.selectable="";
	this.type="";
	this.id="";
	this.alias="";
}

function MapInfoWebUpdateVisible(lyrCntrlID)
{
	if (_curLayer)
	{
		var visElem;
		var selElem;
		if (_curLayer.type == "nonselectable")
		{
			visElem = document.getElementById("chkLblVisible_"+lyrCntrlID);
		} else if (_curLayer.type == "featurelayer")
		{
			visElem = document.getElementById("chkLyrVisible_"+lyrCntrlID);
			selElem = document.getElementById("chkLyrSelectable_"+lyrCntrlID);
		}
		if (visElem.checked == true)
		{
			_curLayer.visible = "True";
			if (selElem)
			{
				selElem.disabled = false;
			}			
		} else {
			_curLayer.visible = "False";
			if (selElem)
			{
				selElem.disabled = true;
			}
		}
		updateLayerArray(lyrCntrlID);
	}
}

function MapInfoWebUpdateZoomDisplay(lyrCntrlID)
{
	if (_curLayer)
	{
		var visrangeElem;
		var rangestartElem;
		var rangeendElem;
		
		if (_curLayer.type == "nonselectable")
		{
			visrangeElem = document.getElementById("chkLblZmRange_"+lyrCntrlID);
			rangestartElem = document.getElementById("lblMinzoom_"+lyrCntrlID);	
			rangeendElem = document.getElementById("lblMaxzoom_"+lyrCntrlID);
		} else if (_curLayer.type == "featurelayer")
		{
			visrangeElem = document.getElementById("chkLyrZmRange_"+lyrCntrlID);
			rangestartElem = document.getElementById("lyrMinzoom_"+lyrCntrlID);	
			rangeendElem = document.getElementById("lyrMaxzoom_"+lyrCntrlID);
		}

		if (visrangeElem.checked == true)
		{
			_curLayer.visiblerangeenabled = "True";
			rangestartElem.disabled = false;
			rangeendElem.disabled = false;
		} else {
			_curLayer.visiblerangeenabled = "False";
			rangestartElem.disabled = true;
			rangeendElem.disabled = true;
		}
		_curLayer.rangestart = rangestartElem.value;
		_curLayer.rangeend = rangeendElem.value;
		updateLayerArray(lyrCntrlID);
	}
}

function MapInfoWebUpdateSelectable(lyrCntrlID, mapid)
{
	if (_curLayer)
	{
		if (_curLayer.type == "featurelayer")
		{
			var lyrsArray = eval("_selectlayers_"+mapid);
			for ( i=0;i<lyrsArray.Layers.length;i++ )
			{
				var layer = lyrsArray.Layers[i];
				if (_curLayer.name == layer.name)
				{
					var selElem = document.getElementById("chkLyrSelectable_"+lyrCntrlID);
					if (selElem.checked == true)
					{
						layer.selectable = "True";
					} else {
						layer.selectable = "False";
					}
				}
			}
		}
	}
}

function MapInfoWebSelectedNodeChanged(node, name, code, lyrCntrlID, mapid, lyrid)
{
	updateNodeStyle(node);
	if (_curElemType == "root")
	{
		var mapzoomElem = document.getElementById("mapzoom_"+lyrCntrlID);
		eval("_map_"+lyrCntrlID).zoom = mapzoomElem.value;
		MapInfoWebUpdateZoomDisplay(lyrCntrlID);
	}
	if (code == "nonselectable")
	{
		if ( setCurrentLayer(lyrid, "nonselectable", lyrCntrlID) )
		{
			var visElem = document.getElementById("chkLblVisible_"+lyrCntrlID);
			var visrangeElem = document.getElementById("chkLblZmRange_"+lyrCntrlID);
			var rangestartElem = document.getElementById("lblMinzoom_"+lyrCntrlID);
			var rangeendElem = document.getElementById("lblMaxzoom_"+lyrCntrlID);

			showPanel("lblsourcepanel", lyrCntrlID);
		}
	} else if (code == "featurelayer")
	{
		if ( setCurrentLayer(lyrid, "featurelayer", lyrCntrlID) )
		{
			var visElem = document.getElementById("chkLyrVisible_"+lyrCntrlID);
			var visrangeElem = document.getElementById("chkLyrZmRange_"+lyrCntrlID);
			var rangestartElem = document.getElementById("lyrMinzoom_"+lyrCntrlID);
			var rangeendElem = document.getElementById("lyrMaxzoom_"+lyrCntrlID);
			var selElem = document.getElementById("chkLyrSelectable_"+lyrCntrlID);

			var lyrsArray = eval("_selectlayers_"+mapid);
			for ( i=0;i<lyrsArray.Layers.length;i++ )
			{
				var layer = lyrsArray.Layers[i];
				if (_curLayer.name == layer.name)
				{
					if (layer.selectable == "True")
					{
						selElem.checked = true;
					} else {
						selElem.checked = false;
					}
				}
				if (_curLayer.visible == "True")
				{
					selElem.disabled = false;
				} else {
					selElem.disabled = true;
				}
			}
			showPanel("ftrlayerpanel", lyrCntrlID);
		}
	}
	if (_curLayer.visible == "True")
	{
		visElem.checked = true;
	} else {
		visElem.checked = false;
	}
	if (_curLayer.visiblerangeenabled == "True")
	{
		visrangeElem.checked = true;
	} else {
		visrangeElem.checked = false;
	}
	if ( visrangeElem.checked == true )
	{
		rangestartElem.disabled = false;
		rangeendElem.disabled = false;
	} else {
		rangestartElem.disabled = true;
		rangeendElem.disabled = true;
	}
	rangestartElem.value = _curLayer.rangestart;
	rangeendElem.value = _curLayer.rangeend;
	_curElemType = "lyrnode";
}

function setCurrentLayer(id, type, lyrCntrlID)
{
	var layer;
	var i;
	var found=false;
	var lyrsArray = eval("_layers_"+lyrCntrlID);
	for ( i=0;i<lyrsArray.Layers.length;i++ )
	{
		layer = lyrsArray.Layers[i];
		if ((layer.id == id) )
		{
			_curLayer = layer;
			found = true;
			break;
		}
	}
	if (found == true)
	{
		return true;
	} else {
		return false;
	}
}

function updateLayerArray(lyrCntrlID)
{
	var layer;
	var i;
	var lyrsArray = eval("_layers_"+lyrCntrlID);
	for ( i=0;i<lyrsArray.Layers.length;i++ )
	{
		layer = lyrsArray.Layers[i];
		if ( (layer.id == _curLayer.id) )
		{
			lyrsArray.Layers[i] = _curLayer;
			break;
		}
	}
}

// Apply changes button onclick handler
function MapInfoWebApplyChanges(lyrCntrlID, mapID)
{
	var mapzoomElem = document.getElementById("mapzoom_"+lyrCntrlID);
	eval("_map_"+lyrCntrlID).zoom = mapzoomElem.value;
	MapInfoWebUpdateZoomDisplay(lyrCntrlID);
	var lyrsArray = eval("_layers_"+lyrCntrlID);
	for ( i=0;i<lyrsArray.Layers.length;i++ )
	{
		var form=document.forms[0];
		var elemID = lyrsArray.Layers[i].id;
		var elemValue = MapInfoWebBuildPropertiesString(lyrsArray.Layers[i], lyrCntrlID);
		MapInfoWebCreateHiddenField(form, elemID, elemID, elemValue);
	}
	MapInfoWebCreateSelectableLayerField(mapID);

	MapInfoWebUpdateEntireGroupZoomDisplay(lyrCntrlID);
	var grpsArray = eval("_groups_"+lyrCntrlID);
	for ( i=0;i<grpsArray.Layers.length;i++ )
	{
		var form=document.forms[0];
		var elemID = grpsArray.Layers[i].alias;
		var elemValue = MapInfoWebBuildGroupsPropertiesString(grpsArray.Layers[i], lyrCntrlID);
		MapInfoWebCreateHiddenField(form, elemID, elemID, elemValue);
	}

	// Write out tree state to hidden field
	elemID = lyrCntrlID+"_TreeStateData";
	elemValue = MapInfoWebBuildTreeState(lyrCntrlID);
	MapInfoWebCreateHiddenField(form, elemID, elemID, elemValue);

	eval("_lyrcntrl_"+lyrCntrlID).DoPostBack();
}

function MapInfoWebBuildPropertiesString(layer, lyrCntrlID){
	var sep = "^";
	var propString;
	propString = eval("_map_"+lyrCntrlID).zoom + sep;
	propString = propString + layer.name + sep;
	propString = propString + layer.type + sep;
	propString = propString + layer.visible + sep;
	propString = propString + layer.visiblerangeenabled + sep;
	propString = propString + layer.rangestart + sep;
	propString = propString + layer.rangeend + sep;
	propString = propString + layer.id;
	return propString;
}

function MapInfoWebBuildGroupsPropertiesString(group, lyrCntrlID){
	var sep = "^";
	var propString;
	propString = group.alias + sep;
	propString = propString + group.allvisible + sep;
	propString = propString + group.visible + sep;
	propString = propString + group.allzoomrange + sep;
	propString = propString + group.visiblerangeenabled + sep;
	propString = propString + group.rangestart + sep;
	propString = propString + group.rangeend + sep;
	return propString;
}

// Map object
function MapInfoWebMap()
{
	this.name="";
	this.zoom="";
}

function MapInfoWebLayerControlPanel()
{
	this.panel="";
}

function MapInfoWebGroupLayers()
{
}

function MapInfoWebGroupLayer()
{
	this.alias="";
	this.allvisible="";
	this.visible="";
	this.allzoomrange="";
	this.visiblerangeenabled="";
	this.rangestart="";
	this.rangeend="";
}

function MapInfoWebUpdateGroupVisible(lyrCntrlID)
{
	if (_curGroupLayer)
	{
		var allvisElem = document.getElementById("chkEntireGrpVisible_"+lyrCntrlID);
		var visElem = document.getElementById("chkGrpVisible_"+lyrCntrlID);
		if (allvisElem.checked == true)
		{
			_curGroupLayer.allvisible = "True";
			visElem.disabled = false;
		} else {
			_curGroupLayer.allvisible = "False";
			visElem.disabled = true;
		}
		if (visElem.checked == true)
		{
			_curGroupLayer.visible = "True";
		} else {
			_curGroupLayer.visible = "False";
		}
		updateGroupLayerArray(lyrCntrlID);
	}
}

function MapInfoWebUpdateEntireGroupZoomDisplay(lyrCntrlID)
{
	if (_curGroupLayer)
	{
		var allvisrangeElem = document.getElementById("chkEntireGrpZoomRanged_"+lyrCntrlID);
		var visrangeElem = document.getElementById("chkGrpLyrZmRange_"+lyrCntrlID);
		var rangestartElem = document.getElementById("grpLyrMinzoom_"+lyrCntrlID);	
		var rangeendElem = document.getElementById("grpLyrMaxzoom_"+lyrCntrlID);

		if (allvisrangeElem.checked == true)
		{
			_curGroupLayer.allzoomrange = "True";
			visrangeElem.disabled = false;
		} else {
			_curGroupLayer.allzoomrange = "False";
			visrangeElem.disabled = true;
		}
		if (visrangeElem.checked == true)
		{
			_curGroupLayer.visiblerangeenabled = "True";
		} else {
			_curGroupLayer.visiblerangeenabled = "False";
		}
		if ( visrangeElem.disabled == true )
		{
			rangestartElem.disabled = true;
			rangeendElem.disabled = true;
		} else {
			if (visrangeElem.checked == true)
			{
				rangestartElem.disabled = false;
				rangeendElem.disabled = false;
			} else {
				rangestartElem.disabled = true;
				rangeendElem.disabled = true;
			}
		}
		_curGroupLayer.rangestart = rangestartElem.value;
		_curGroupLayer.rangeend = rangeendElem.value;
		updateGroupLayerArray(lyrCntrlID);
	}
}

function setGroupPanelElements(lyrCntrlID)
{
	var allvisElem = document.getElementById("chkEntireGrpVisible_"+lyrCntrlID);
	var visElem = document.getElementById("chkGrpVisible_"+lyrCntrlID);
	var allvisrangeElem = document.getElementById("chkEntireGrpZoomRanged_"+lyrCntrlID);
	var visrangeElem = document.getElementById("chkGrpLyrZmRange_"+lyrCntrlID);
	var rangestartElem = document.getElementById("grpLyrMinzoom_"+lyrCntrlID);	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -