<?php // // 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 // include 'common.php'; include 'constants.php'; $mapDefinition = ""; $locale = ""; $infoWidth = 0; $showLegend = false; $showProperties = false; $sessionId = ""; $username = ''; $password = ''; $hlTgt = ''; $hlTgtName = ''; $showSlider = true; $selectionColor = '0000FFFF'; $mapImgFormat = 'PNG'; $selImgFormat = 'PNG'; $pointBufferSize = 2; GetRequestParameters(); SetLocalizedFilesPath(GetLocalizationPath()); try { InitializeWebTier(); // create the map instance and store it with the session // $userInfo = new MgUserInformation(); $userInfo->SetMgSessionId($sessionId); $userInfo->SetClientIp(GetClientIp()); $userInfo->SetClientAgent(GetClientAgent()); $site = new MgSiteConnection(); $site->Open($userInfo); $resourceSrvc = $site->CreateService(MgServiceType::ResourceService); $map = new MgMap($site); $resId = new MgResourceIdentifier($mapDefinition); $mapName = $resId->GetName(); $map->Create($resId, $mapName); $tileSetId = $map->GetTileSetDefinition(); $tileSrvc = $site->CreateService(MgServiceType::TileService); $tileSizeX = $tileSrvc->GetDefaultTileSizeX(); $tileSizeY = $tileSrvc->GetDefaultTileSizeY(); if (NULL != $tileSetId) { //Overwrite the map definition with tile set id (this is for GETTILE requests) and //use size settings from that tile set $mapDefinition = $tileSetId->ToString(); $tileSizeX = $tileSrvc->GetDefaultTileSizeX($tileSetId); $tileSizeY = $tileSrvc->GetDefaultTileSizeY($tileSetId); } //create an empty selection object and store it in the session repository $sel = new MgSelection($map); $sel->Save($resourceSrvc, $mapName); //get the map extent and calculate the scale factor // $mapExtent = $map->GetMapExtent(); $srs = $map->GetMapSRS(); if($srs != "") { $csFactory = new MgCoordinateSystemFactory(); $cs = $csFactory->Create($srs); $metersPerUnit = $cs->ConvertCoordinateSystemUnitsToMeters(1.0); $unitsType = $cs->GetUnits(); } else { $metersPerUnit = 1.0; $unitsType = GetLocalizedString("DISTANCEMETERS", $locale); } $llExtent = $mapExtent->GetLowerLeftCoordinate(); $urExtent = $mapExtent->GetUpperRightCoordinate(); $bgColor = $map->GetBackgroundColor(); if(strlen($bgColor) == 8) $bgColor = '#' . substr($bgColor, 2); else $bgColor = "white"; $scaleCreationCode = ""; $scales = array(); for($i = 0; $i < $map->GetFiniteDisplayScaleCount(); $i ++) $scales[$i] = $map->GetFiniteDisplayScaleAt($i); sort($scales); for($i = 0; $i < count($scales); $i ++) $scaleCreationCode = $scaleCreationCode . "scales[" . $i . "]=" . str_replace(",", ".", $scales[$i]) . "; "; $mapStateId = new MgResourceIdentifier("Session:" . $sessionId . "//" . $mapName . "." . MgResourceType::Map); $map->Save($resourceSrvc, $mapStateId); $templ = Localize(file_get_contents("../viewerfiles/ajaxmappane.templ"), $locale, GetClientOS()); $vpath = GetSurroundVirtualPath(); printf ($templ, $tileSizeX, $tileSizeY, GetRootVirtualFolder() . "/mapagent/mapagent.fcgi", $mapName, $mapDefinition, $infoWidth, $showLegend?"true":"false", $showProperties?"true":"false", $sessionId, $llExtent->GetX(), $llExtent->GetY(), $urExtent->GetX(), $urExtent->GetY(), $metersPerUnit, $unitsType, $bgColor, $hlTgt, $hlTgtName, $showSlider? "true": "false", $locale, $scaleCreationCode, $selectionColor, $mapImgFormat, $selImgFormat, $pointBufferSize, $vpath . "ajaxviewerabout.php", $vpath . "legendctrl.php", urlencode($mapName), $sessionId, $locale, $vpath . "propertyctrl.php", $locale ); } catch(MgException $e) { $errorMsg = EscapeForHtml($e->GetDetails()); echo $errorMsg; } //load ajax template code and format it function GetParameters($params) { global $mapDefinition; global $infoWidth, $showLegend, $showProperties, $sessionId; global $locale, $hlTgt, $hlTgtName, $showSlider; global $selectionColor, $mapImgFormat, $selImgFormat, $pointBufferSize; $sessionId = ValidateSessionId(GetParameter($params, 'SESSION')); $locale = ValidateLocaleString(GetParameter($params, 'LOCALE')); $hlTgt = ValidateHyperlinkTargetValue(GetParameter($params, 'HLTGT')); $hlTgtName = ValidateFrameName(GetParameter($params, 'HLTGTNAME')); $mapDefinition = ValidateResourceId(GetParameter($params, 'MAPDEFINITION')); $showLegend = (GetIntParameter($params, 'SHOWLEGEND') == 1); $showProperties = (GetIntParameter($params, 'SHOWPROP') == 1); $showSlider = (GetIntParameter($params, 'SHOWSLIDER') == 1); $infoWidth = GetIntParameter($params, 'INFOWIDTH'); $selectionColor = ValidateColorString(GetParameter($params, 'SELCOLOR'), 8); $mapImgFormat = GetParameter($params, 'MAPIMGFORMAT'); $selImgFormat = GetParameter($params, 'SELIMGFORMAT'); $pointBufferSize = GetIntParameter($params, 'POINTBUFFERSIZE'); } function GetRequestParameters() { if($_SERVER['REQUEST_METHOD'] == "POST") GetParameters($_POST); else GetParameters($_GET); } ?>