[Cartoweb-users] How can this error be handled

VenuGopal Papasani venu.papasani at gmail.com
Thu Mar 9 01:46:53 EST 2006


Hi,
  I have written a plugin which colors the polygon of my map.The following
is the code wriiteen for
c:\wamp\www\cartoweb3\plugins\ctr\server\ServerCtr.php.

  Before this code there was no problem with the map the map is displaying
after writing this I was getting  the following exception.

           I have also made one more changes previously my project name is
ctr  and i used to execute it as ctr.php.As my plugin name and my project
names are same i changed it to chittoor.

         Now I want to know where the problem actually is.Is it in the code
or in Renaming my file names.No doubt i have renamed everything required.

           The Exception is


*Fatal error*: Uncaught exception 'CartocommonException' with message 'Error
[2, Cannot modify header information - headers already sent by (output
started at C:\wamp\www\cartoweb3\plugins\ctr\server\ServerCtr.php:123),
C:\wamp\www\cartoweb3\client\FormRenderer.php, 301] Backtrace: file: UNKNOWN
- UNKNOWN call: Common::cartowebErrorHandler(2, "Cannot modify header
information - headers already sent by (outp...",
"C:\wamp\www\cartoweb3\client\FormRenderer.php", 301, Array(1)) file: 301 -
C:\wamp\www\cartoweb3\client\FormRenderer.php call: header("HTTP/1.1 500
Internal Server Error") file: 1032 -
C:\wamp\www\cartoweb3\client\Cartoclient.php call:
FormRenderer->showFailure(Object(SoapFaultWrapper)) file: 38 -
C:\wamp\www\cartoweb3\htdocs\client.php call: Cartoclient->main() file: 3 -
C:\wamp\www\cartoweb3\htdocs\chittoor.php call:
require_once("C:\wamp\www\cartoweb3\htdocs\client.php") ' in
C:\wamp\www\cartoweb3\common\Common.php:275 Stack trace: #0 [internal
function]: Common::cartowebErrorHandler(2, 'Cannot modify h... in *
C:\wamp\www\cartoweb3\common\Common.php* on line *275*


           Here is my code

ServerCtr.php
------------------
<?php

require_once(CARTOWEB_HOME . 'common/BasicTypes.php');
require_once('DB.php');

class ServerCtr extends ClientResponderAdapter
    implements InitProvider
{


    private $log;

    public function __construct()
    {
        parent::__construct();
        $this->log =& LoggerManager::getLogger(__CLASS__);
    }


    public function getInit()
    {
        // Things to learn from the LayerInit
    }

    public function getValues($id)
    {
        $values = array();
        for($k=0;$k=1105;$k++)
        {
            $values[k] = rand(0,100);
        }
        return $values;
    }

    public function initializeRequest($requ)
    {
        $msMapObj = $this->serverContext->getMapObj();

        $resultArray = $this->getValues($requ->dataElement_id);
        $msLayer = $msMapObj->getLayerByName('chittoot');
        $no_intervals = 5;
        $color = "Reds";  //dont't think this is necessary
        $this->colorMapFromData($resultArray, $msLayer, $no_intervals,
$color);
    }

    public function buildClassExpressions($numberOfIntervals,$resultArray)
    {
        $max_val = max($resultArray);
        $min_val = min($resultArray);
        $intervalLength = ceil(($max_val - $min_val)/$numberOfIntervals);
        $idsPerClass = array();
        foreach($resultArray as $id => $value)
        {
            $classNo = floor($value/$intervalLength);
            $idsPerClass[$classNo] .= $id. ",";

        }

        $classes = array();
        for($i=0;$i < $numberOfIntervals+1;$i++)
        {
            if ($classNo[$i])
                $classIds = substr($classNo[$i],o,-1);
            else
                $classIds = "";

             $classes[$i] = "([".$idcol. "] IN '" . $classIds .
"')";
        }

        return $classes;
    }

    public function colorMapFromData($resultArray, $msLayer,
$numberOfIntervals, $colorScheme)
    {
        $expressions =
$this->buildClassExpressions($numberOfIntervals,$resultArray);
        $r = 10;
        $g = 10;
        $b = 10;

        for($i=0;$i<numberOfIntervals;$i++)
        {
            $msClass = ms_newClassObj($msLayer);
            $msClass->setexpression($expressions[$i]);
            $msStyle = ms_newStyleObj($msClass);
            $msStyle->color->setRGB($r,$g,$b);
            $r = $r + 10;
            $g = $g + 10;
            $b = $b + 10;
        }
    }
}
?>


                     ctr.ini consists of
id_col="ID"

                             Please give me the solution how to solve this
problem.
                            Thanks in Advance,

Regards,
Venu.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/cartoweb-users/attachments/20060309/a4068e37/attachment.html


More information about the Cartoweb-users mailing list