[mapguide-users] Re: Undelivered Mail Returned to Sender
Pietro Ianniello
pietro.ianniello at gmail.com
Tue Mar 2 06:28:35 EST 2010
This is the definitive answer to your question:
ASP.NET Qick Example, incomplete: doesn't handle memory - *you must dispose
all*...
<%@ Page Language="C#" %>
<%@ Import Namespace="OSGeo.MapGuide" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private string _strSessionId = "";
private string _mapName = "";
string _csvShowLayers = "";
string _csvHideLayers = "";
protected string GetMapName()
{
return _mapName;
}
protected string GetMapSession()
{
return _strSessionId;
}
protected string GetShowlayers()
{
return _csvShowLayers;
}
protected string GetHidelayers()
{
return _csvHideLayers;
}
protected void Page_Load(object sender, EventArgs e)
{
MgUserInformation userInfo = null;
MgSiteConnection siteConnection = null;
MgSite site = null;
MgResourceIdentifier resourceId = null;
MgMappingService mappingService = null;
MgMap map = null;
MgResourceService resourceService = null;
MgSelection selection = null;
MgLayerCollection lColl = null;
MgLayerBase layerBase = null;
MgResourceIdentifier sessionIdResourceIdentifier = null;
//TODO: fullfill catch / fullfill finally
//IMPORTANT: dispose all in finally!!!
try
{
userInfo = new MgUserInformation("Anonymous", "");
siteConnection = new MgSiteConnection();
siteConnection.Open(userInfo);
site = siteConnection.GetSite();
_strSessionId = site.CreateSession();
//---------------------------------------------------
//Save new mapguide session
userInfo.SetMgSessionId(_strSessionId);
//---------------------------------------------------
resourceId = new
MgResourceIdentifier("Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition");
_mapName = resourceId.GetName();
//------------------------------------------------
//Layers objectId
mappingService =
(MgMappingService)siteConnection.CreateService(MgServiceType.MappingService);
map = new MgMap();
resourceService =
siteConnection.CreateService(MgServiceType.ResourceService) as
MgResourceService;
map.Create(resourceService, resourceId, _mapName);
lColl = map.GetLayers();
int iMax = lColl.Count;
//Let's show only Districts:
int iHid = 0, iShow = 0; ;
for (int i = 0; i < iMax; ++i)
{
if (null != layerBase) layerBase.Dispose();
layerBase = lColl[i];
string layername = layerBase.GetName();
if (layername == "Districts")
{
if (iShow > 0) _csvShowLayers += ",";
_csvShowLayers += layerBase.GetObjectId();
++iShow;
}
else if (layername == "Hydrography")
{
if (iShow > 0) _csvShowLayers += ",";
_csvShowLayers += layerBase.GetObjectId();
++iShow;
}
else
{
//TODO: use StringBuilder
if (iHid > 0) _csvHideLayers += ",";
_csvHideLayers += layerBase.GetObjectId();
++iHid;
}
}
//------------------------------------------------
//------------------------------------------------
//Necessary to show maps:
selection = new MgSelection(map);
selection.Save(resourceService, _mapName);
sessionIdResourceIdentifier = new MgResourceIdentifier(
String.Concat("Session:", _strSessionId, "//", _mapName,
".", MgResourceType.Map));
map.Save(resourceService, sessionIdResourceIdentifier);
//------------------------------------------------
}
catch
{
throw;//TODO: Handle exceptions
}
finally
{
//TODO: dispose
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="
http://www.openlayers.org/api/OpenLayers.js"></script>
<style type="text/css">
#map_mg
{
width: 500px;
height:500px;
float: left;
border:solid 1px #000;
}
</style>
</head>
<body onload="init()">
<form id="form1" runat="server">
<div>
<h2>Qick example: TODO: Dispose all map guide objects, use
StringBuilder, etc...</h2>
<h3>Showing only Districts/Hydrography</h3>
</div>
<div id="map_mg">
</div>
</form>
<script type="text/javascript">
var addrs = "http://localhost/";
var mg_url = addrs +
"mapguide/mapagent/mapagent.fcgi?USERNAME=Anonymous&";
var metersPerUnit = 111319.4908; //value returned from mapguide
var inPerUnit = OpenLayers.INCHES_PER_UNIT.m * metersPerUnit;
OpenLayers.INCHES_PER_UNIT["dd"] = inPerUnit;
OpenLayers.INCHES_PER_UNIT["degrees"] = inPerUnit;
OpenLayers.DOTS_PER_INCH = 96;
var _map = null;
function init() {
var extent = new OpenLayers.Bounds(-87.865114442365922,
43.665065564837931, -87.595394059497067, 43.823852564430069);
var mapOptions = {
maxExtent: extent,
maxResolution: 'auto'
};
_map = new OpenLayers.Map('map_mg', mapOptions);
var options = {
isBaseLayer: true,
buffer: 1,
useOverlay: false,
useAsyncOverlay: false,
singleTile: true
};
var params = {};
params.mapName = '<%= GetMapName() %>';
params.session = '<%= GetMapSession() %>';
params.hideLayers = '<%= GetHidelayers() %>';
params.showLayers = '<%= GetShowlayers() %>';
mg_layer = new OpenLayers.Layer.MapGuide("MapGuide Sheboygan
map", mg_url, params, options);
_map.addLayer(mg_layer);
_map.addControl(new OpenLayers.Control.MousePosition());
_map.zoomToMaxExtent();
}
</script>
</body>
</html>
Pietro Ianniello
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20100302/d817fc5c/attachment.html
More information about the mapguide-users
mailing list