%@ Page language="c#" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Collections.Specialized" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="OSGeo.MapGuide" %>
<%
//
// Copyright (C) 2004-2011 by Autodesk, Inc.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of version 2.1 of the GNU Lesser
// General Public License as published by the Free Software Foundation.
//
// This library 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
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
sessionId = Request.Params["SESSION"];
String xmlSelection = HttpUtility.UrlDecode(Request.Params["SELECTION"]);
mapName = Request.Params["MAPNAME"];
double mapScale = Convert.ToDouble(Request.Params["SCALE"]);
int imageHeight = Convert.ToInt32(Request.Params["HEIGHT"]);
int imageWidth = Convert.ToInt32(Request.Params["WIDTH"]);
double mapCenterX = Convert.ToDouble(Request.Params["CENTERX"]);
double mapCenterY = Convert.ToDouble(Request.Params["CENTERY"]);
String owner = "";
String address = "";
String billingAddress = "";
String description = "";
try
{
// Initialize the Web Extensions and connect to the Server using
// the Web Extensions session identifier stored in PHP session state.
MapGuideApi.MgInitializeWebTier (Constants.WebConfigPath);
MgUserInformation userInfo = new MgUserInformation(sessionId);
MgSiteConnection siteConnection = new MgSiteConnection();
siteConnection.Open(userInfo);
// If any parcels have been selected, recenter the image on the first selected parcel.
if (!string.IsNullOrEmpty(xmlSelection))
{
MgResourceService resourceService = (MgResourceService)siteConnection.CreateService(MgServiceType.ResourceService);
MgFeatureService featureService = (MgFeatureService)siteConnection.CreateService(MgServiceType.FeatureService);
MgFeatureQueryOptions queryOptions = new MgFeatureQueryOptions();
MgMap map = new MgMap(siteConnection);
map.Open(mapName);
MgSelection selection = new MgSelection(map, xmlSelection);
MgReadOnlyLayerCollection layers = selection.GetLayers();
if (layers != null)
{
for (int i = 0; i < layers.GetCount(); i++)
{
// Only check selected features in the Parcels layer.
MgLayer layer = (MgLayer)layers.GetItem(i);
if (layer != null && layer.GetName() == "Parcels")
{
// Create a filter containing the IDs of the selected features on this layer
String layerClassName = layer.GetFeatureClassName();
String selectionString = selection.GenerateFilter(layer, layerClassName);
// Get the feature resource for the selected layer
String layerFeatureId = layer.GetFeatureSourceId();
MgResourceIdentifier layerFeatureResource = new MgResourceIdentifier(layerFeatureId);
// Apply the filter to the feature resource for the selected layer. This returns
// an MgFeatureReader of all the selected features.
queryOptions.SetFilter(selectionString);
MgFeatureReader featureReader = featureService.SelectFeatures(layerFeatureResource, layerClassName, queryOptions);
// Create the report details using the first selected parcel. Position the image so the
// centroid of the selected parcel is in the center of the map.
featureReader.ReadNext();
MgByteReader featureAgfGeometry = featureReader.GetGeometry("SHPGEOM");
MgAgfReaderWriter agfReaderWriter = new MgAgfReaderWriter();
MgGeometry featureGeometry = agfReaderWriter.Read(featureAgfGeometry);
MgPoint centroid = featureGeometry.GetCentroid();
mapCenterX = centroid.GetCoordinate().GetX();
mapCenterY = centroid.GetCoordinate().GetY();
owner = featureReader.GetString("RNAME");
address = featureReader.GetString("RPROPAD");
billingAddress = featureReader.GetString("RBILAD");
description = featureReader.GetString("RLDESCR1") + "
" + featureReader.GetString("RLDESCR2") + "
" + featureReader.GetString("RLDESCR3") + "
";
}
}
}
}
}
catch (MgException e)
{
Response.Write("
" + e.GetExceptionMessage() + "
"); Response.Write("" + e.GetDetails() + "
"); } String selectionEncoded = HttpUtility.UrlEncode(xmlSelection); String imageUrl = "createmapimage.aspx?SESSION=" + sessionId + "&SELECTION=" + selectionEncoded + "&MAPNAME=" + mapName + "&SCALE=" + mapScale + "&HEIGHT=" + imageHeight + "&WIDTH=" + imageWidth + "&CENTERX=" + mapCenterX + "&CENTERY=" + mapCenterY; %>
<%
if (string.IsNullOrEmpty(xmlSelection))
{
Response.Write("No properties selected.");
}
else
{
Response.Write("Owner: " + owner + "
\n");
Response.Write("Address: " + address + "
\n");
Response.Write("Billing Address: " + billingAddress + "
\n");
Response.Write("Description: " + description + "
\n");
}
%>