_request; switch ($_request) { case "registerService": $this->output = $this->registerService($objArr); break; case "fetchLayers": $this->output = $this->fetchLayers($objArr); break; case "registerLayer": $this->output = $this->registerLayer($objArr); break; case "getLegend": $this->output = $this->getlegend($objArr); break; case "getInfo": $this->output = $this->getinfo($objArr); break; case "getAttributes": $this->output = $this->getAttributes($objArr); break; case "search": $this->output = $this->search($objArr); break; case "getLegendGraphic": $this->output = $this->getLegendGraphic($objArr); break; } } public function registerService($objArr) { require("config.php"); require("arcgisservices/arcgisserviceobject.php"); $p = new PROXY(); $objArr->_serviceUrl = PROXY::checkUrlScheme($objArr->_serviceUrl); $p->_url = $objArr->_serviceUrl . "?f=pjson"; $_username = $objArr->_username; $_password = $objArr->_password; $_isSecure = false; if ((!empty($_username)) && (!empty($_password))) { $_isSecure = addCredentialsToSession($objArr->_serviceUrl, $objArr->_username, $objArr->_password); } else { if (addCredentialsToSession($objArr->_serviceUrl, $objArr->_username, $objArr->_password)) { $_isSecure = true; } else { removeCredentialsFromSession($objArr->_serviceUrl); } } $p->get(); $r = new RESPONSE(); $r->_responseCode = $p->o_responseCode; if ($p->o_responseCode == 200) { $jp = json_decode($p->o_response); $_serviceObject = new ARCGISSERVICEOBJECT(); $_serviceObject->_serviceId = md5($objArr->_serviceUrl); $_serviceObject->_serviceUrl = $objArr->_serviceUrl; $_serviceObject->_username = $objArr->_username; $_serviceObject->_password = $objArr->_password; $_serviceObject->_currentVersion = $jp->currentVersion; $_serviceObject->_serviceDescription = $jp->serviceDescription; $_serviceObject->_mapName = $jp->mapName; $_serviceObject->_description = $jp->description; $_serviceObject->_copyrightText = $jp->copyrightText; $_serviceObject->_supportsDynamicLayers = $jp->supportsDynamicLayers; $_serviceObject->_layers = $jp->layers; $_serviceObject->_tables = $jp->tables; $_serviceObject->_spatialReference = $jp->spatialReference; $_serviceObject->_singleFusedMapCache = $jp->singleFusedMapCache; $_serviceObject->_initialExtent = $jp->initialExten; $_serviceObject->_fullExtent = $jp->fullExtent; $_serviceObject->_minScale = $jp->minScale; $_serviceObject->_maxScale = $jp->maxScale; $_serviceObject->_units = $jp->units; $_serviceObject->_supportedImageFormatTypes = $jp->supportedImageFormatTypes; $_serviceObject->_documentInfo = $jp->documentInfo; $_serviceObject->_capabilities = $jp->capabilities; $_serviceObject->_supportedQueryFormats = $jp->supportedQueryFormats; $_serviceObject->_exportTilesAllowed = $jp->exportTilesAllowed; $_serviceObject->_supportsDatumTransformation = $jp->supportsDatumTransformation; $_serviceObject->_maxRecordCount = $jp->maxRecordCount; $_serviceObject->_maxImageHeight = $jp->maxImageHeight; $_serviceObject->_maxImageWidth = $jp->maxImageWidth; $_serviceObject->_supportedExtensions = $jp->supportedExtensions; $r->_response = $_serviceObject; } else { $r->_errorDescription = $p->o_response; } return $r; } public function fetchLayers($objArr) { require("config.php"); require("arcgisservices/arcgisserviceobject.php"); require("arcgisservices/arcgisservicelayersobject.php"); $p = new PROXY(); $objArr->_serviceUrl = PROXY::checkUrlScheme($objArr->_serviceUrl); $p->_url = $objArr->_serviceUrl . "?f=pjson"; $_username = $objArr->_username; $_password = $objArr->_password; $_isSecure = false; $p->get(); $r = new RESPONSE(); $r->_responseCode = $p->o_responseCode; $r_layers = Array(); if ($p->o_responseCode == 200) { $jp = json_decode($p->o_response); foreach ($jp->layers as $layer) { $_arcgisservicelayerObject = new ARCGISSERVICELAYERSOBJECT(); $_arcgisservicelayerObject->_layerId = md5($objArr->_serviceUrl . $layer->id); $_arcgisservicelayerObject->_serviceId = md5($objArr->_serviceUrl); $_arcgisservicelayerObject->_serviceUrl = $objArr->_serviceUrl; $_arcgisservicelayerObject->_layerUrl = $objArr->_serviceUrl . "/" . $layer->id; $_arcgisservicelayerObject->_id = $layer->id; $_arcgisservicelayerObject->_name = $layer->name; $_arcgisservicelayerObject->_parentLayerId = $layer->parentLayerId; $_arcgisservicelayerObject->_defaultVisibility = $layer->defaultVisibility; $_arcgisservicelayerObject->_subLayerIds = $layer->subLayerIds; $_arcgisservicelayerObject->_minScale = $layer->minScale; $_arcgisservicelayerObject->_maxScale = $layer->maxScale; $r_layers[] = $_arcgisservicelayerObject; } $r->_response = $r_layers; } else { $r->_errorDescription = $p->o_response; } return $r; } public function registerLayer($objArr) { require("config.php"); require("arcgisservices/arcgislayerobject.php"); $p = new PROXY(); $objArr->_serviceUrl = PROXY::checkUrlScheme($objArr->_serviceUrl); $p->_url = $objArr->_serviceUrl . "/" . $objArr->_layerId . "?f=pjson"; $_username = $objArr->_username; $_password = $objArr->_password; $_isSecure = false; $p->get(); $r = new RESPONSE(); $r->_responseCode = $p->o_responseCode; if ($p->o_responseCode == 200) { $jp = json_decode($p->o_response); $_layerObject = new ARCGISLAYEROBJECT(); $_layerObject->_layerId = md5($objArr->_serviceUrl . $jp->id); $_layerObject->_serviceUrl = $objArr->_serviceUrl; $_layerObject->_layerUrl = $objArr->_serviceUrl . "/" . $jp->id; $_layerObject->_currentVersion = $jp->currentVersion; $_layerObject->_id = $jp->id; $_layerObject->_name = $jp->name; $_layerObject->_type = $jp->type; $_layerObject->_description = $jp->description; $_layerObject->_geometryType = $jp->geometryType; $_layerObject->_sourceSpatialReference = $jp->sourceSpatialReference; $_layerObject->_copyrightText = $jp->copyrightText; $_layerObject->_parentLayer = $jp->parentLayer; $_layerObject->_subLayers = $jp->subLayers; $_layerObject->_minScale = $jp->minScale; $_layerObject->_maxScale = $jp->maxScale; $_layerObject->_drawingInfo = $jp->drawingInfo; $_layerObject->_defaultVisibility = $jp->defaultVisibility; $_layerObject->_extent = $jp->extent; $_layerObject->_hasAttachments = $jp->hasAttachments; $_layerObject->_htmlPopupType = $jp->htmlPopupType; $_layerObject->_displayField = $jp->displayField; $_layerObject->_typeIdField = $jp->typeIdField; $_layerObject->_fields = $jp->fields; $_layerObject->_indexes = $jp->indexes; $_layerObject->_relationships = $jp->relationships; $_layerObject->_canModifyLayer = $jp->canModifyLayer; $_layerObject->_canScaleSymbols = $jp->canScaleSymbols; $_layerObject->_hasLabels = $jp->hasLabels; $_layerObject->_capabilities = $jp->capabilities; $_layerObject->_maxRecordCount = $jp->maxRecordCount; $_layerObject->_supportsStatistics = $jp->supportsStatistics; $_layerObject->_supportsAdvancedQueries = $jp->supportsAdvancedQueries; $_layerObject->_hasZ = $jp->hasZ; $_layerObject->_supportedQueryFormats = $jp->supportedQueryFormats; $_layerObject->_ownershipBasedAccessControlForFeatures = $jp->ownershipBasedAccessControlForFeatures; $_layerObject->_useStandardizedQueries = $jp->useStandardizedQueries; $_layerObject->_advancedQueryCapabilities = $jp->advancedQueryCapabilities; $_layerObject->_supportsDatumTransformation = $jp->supportsDatumTransformation; $r->_response = $_layerObject; } else { $r->_errorDescription = $p->o_response; } return $r; } public function getlegend($objArr) { require("config.php"); $p = new PROXY(); $objArr->_serviceUrl = PROXY::checkUrlScheme($objArr->_serviceUrl); $p->_url = $objArr->_serviceUrl . "/legend?f=pjson"; $_username = $objArr->_username; $_password = $objArr->_password; $_isSecure = false; $p->get(); $r = new RESPONSE(); $r->_responseCode = $p->o_responseCode; if ($p->o_responseCode == 200) { $jp = json_decode($p->o_response); foreach ($jp->layers as $layer) { if($layer->layerId == $objArr->_layerId){ $r->_response = $layer->legend; } } } else { $r->_errorDescription = $p->o_response; } return $r; } public function getinfo($objArr) { } public function getAttributes($objArr) { } public function search($objArr) { } } ?>