oMap; $aaLayers = array(); for ($i=0; $i<$oMap->numlayers; $i++ ) { $bValidLayer = true; $oLayer = $oMap->getLayer( $i ); if ($oLayer->status == MS_OFF) continue; switch ($oLayer->type) { case MS_LAYER_POINT: $szLayerType = 'POINT'; break; case MS_LAYER_LINE: $szLayerType = 'LINE'; break; case MS_LAYER_POLYGON: $szLayerType = 'POLYGON'; break; case MS_LAYER_RASTER: $szLayerType = 'RASTER'; break; default: $szLayerType = 'unsupported ('.$oLayer->type.' )'; $bValidLayer = false; } if ($bValidLayer) { $aszAttributes = GetLayerAttributes( $oLayer ); if (count($aszAttributes) > 0) { $szName = $oLayer->getMetaData( "WMS_TITLE" ); if ($szName == "") $szName = $oLayer->name; if ($oLayer->connectiontype == MS_WMS) { switch ($aszAttributes['fields']['LayerType']) { case 'MS_LAYER_POINT': $szLayerType = 'POINT'; break; case 'MS_LAYER_LINE': case 'MS_LAYER_POLYGON': default: $szLayerType = 'unsupported'; $bValidLayer = false; } $szName .= " (WMS - ".$szLayerType.")"; } elseif ($oLayer->connectiontype == MS_WFS) { $szName .= " (WFS - ".$szLayerType.")"; } else { $szName .= " (local - ".$szLayerType.")"; } if ($bValidLayer) { $aszLayerAttributes = array( $oLayer->name, $szName ); $aszLayerAttributes = array_merge( $aszLayerAttributes, array_keys($aszAttributes['fields']) ); array_push( $aaLayers, $aszLayerAttributes ); } } } } ?>