if (strlen($layer->group) > 0) { array_push($nestedParents, $layer->group); $layerObj->parentGroup = implode("|", $nestedParents); } while (count($nestedParents) > 0) { $alreadyListed = false; $parentId = implode("|", $nestedParents); $parent = array_pop($nestedParents); foreach ($mapObj->groups as $pGroup) { if ($pGroup->uniqueId == $parentId) { $alreadyListed = true; break; } } if (!$alreadyListed) { array_push($mapObj->groups, getGroupObject($layer, $parentId)); } } array_push($mapObj->layers, $layerObj); } echo var2json($mapObj); } function getGroupObject($layer, $parentId) { $group = NULL; /* parent group for nested groups */ $group->uniqueId = $parentId; $nestedParents = explode('|', $parentId); $parent = array_pop($nestedParents); $group->groupName = $parent; $group->parentUniqueId = implode('|', $nestedParents);
$classObj->index = $j; for ($k = 0; $k < count($aScaleRanges); $k++) { if ($classMin < $aScaleRanges[$k]->maxScale && $classMax > $aScaleRanges[$k]->minScale) { array_push($aScaleRanges[$k]->styles, $classObj); } } } $layerObj->scaleRanges = $aScaleRanges; array_push($mapObj->layers, $layerObj); } $mapObj->groups = array(); $aGroups = $oMap->getAllGroupNames(); foreach ($aGroups as $groupName) { $aLayerIndexes = $oMap->getLayersIndexByGroup($groupName); if (count($aLayerIndexes) > 0) { array_push($mapObj->groups, getGroupObject($oMap->getLayer($aLayerIndexes[0]))); } } echo var2json($mapObj); } function getGroupObject($layer) { $group = NULL; $group->groupName = $layer->group; $ll = $layer->getMetaData('groupLegendLabel'); $group->legendLabel = $ll != '' ? $ll : $group->groupName; $group->uniqueId = $group->groupName; $b = $layer->getMetaData('groupDisplayInLegend'); $group->displayInLegend = $b == 'false' ? false : true; $b = $layer->getMetaData('groupExpandInLegend'); $group->expandInLegend = $b == 'false' ? false : true;