CanvasMap
Getting Started Tutorials 3D Reference

Adding Custom Controls

The second Google Mercator example includes custom controls to control the foreground and background layers of the map.

Take a look at the code and you will see that this was done by first creating arrays with the information for the background layers. Then, the background layers are all added to the map and an HTML string is created for the radio buttons that will be in the control. The UpdateBackgrounds(Index) function simply sets the current background. This function is used with each of the radio buttons. Note that the MainContainer had to be a global variable for this work.

UpdateBackgrounds=function(Index)
{
	// set the selected background which will make it visible
	TheMainContainer.SetSelectedBackgroundIndex(Index);
}
 

The code is very similar for the foreground layers except that the function to update the layers is a bit more complicated. In this case, we need to check the value of the checkbox selected attribute and the make the layer visible or hidden.

UpdateLayers=function(FeatureIndex)
{
	// get the scene
	var TheScene=TheMainContainer.GetScene();
	var TheGeo=TheMainContainer.GetGeo();
	
	// get the layer whose status changed
	var TheLayer=TheMainContainer.GetLayer(FeatureIndex);
	
	// get the check box element
	var TheCheckBox=document.getElementById("CheckBox_"+FeatureIndex);
	
	// if the box was checked, make the layer visible, otherwise, hide it
	if (TheCheckBox.checked)
	{
		TheLayer.SetSetting("Status",CMSTATUS_VISIBLE);
	}
	else
	{
		TheLayer.SetSetting("Status",CMSTATUS_HIDDEN);
	}
	LayerListBox.style.visible="hidden";
}