CreateService(MgServiceType::MappingService); $map = new MgMap($siteConnection); $map->Open($mapName); $layers=$map->GetLayers(); $scaleObj = new stdClass(); $scaleObj->layers = array(); for($i=0;$i<$layers->GetCount();$i++) { $layer=$layers->GetItem($i); if (isset($_SESSION['scale_ranges']) && isset($_SESSION['scale_ranges'][$layer->GetObjectId()])) { $scaleranges = $_SESSION['scale_ranges'][$layer->GetObjectId()]; $layerObj = new stdClass(); $layerObj->uniqueId = $layer->GetObjectId(); $ldfId = $layer->GetLayerDefinition(); foreach ($scaleranges as $sr) { $scaleVal = 42; if (strcmp($sr->maxScale, "infinity") == 0) $scaleVal = intval($sr->minScale); else $scaleVal = (intval($sr->minScale) + intval($sr->maxScale)) / 2.0; //Set compression flag $styleCount = count($sr->styles); $sr->isCompressed = ($styleCount > $maxIconsPerScaleRange); if ($sr->isCompressed) { //First $style = $sr->styles[0]; if ($preCacheIcons == true) $style->imageData = GetLegendImageInline($mappingService, $ldfId, $scaleVal, $style->geometryType, $style->categoryIndex); //Pass over ones in between //Last $style = $sr->styles[$styleCount - 1]; if ($preCacheIcons == true) $style->imageData = GetLegendImageInline($mappingService, $ldfId, $scaleVal, $style->geometryType, $style->categoryIndex); } else { if ($preCacheIcons == true) { foreach ($sr->styles as $style) { $style->imageData = GetLegendImageInline($mappingService, $ldfId, $scaleVal, $style->geometryType, $style->categoryIndex); } } } } $layerObj->scaleRanges = $scaleranges; array_push($scaleObj->layers, $layerObj); } } header('Content-type: application/json'); echo var2json($scaleObj); exit; ?>