[Cartoweb-users] Error in HowToDisplayOnTheMapAPointFromADatabaseQuery

Alexandre Saunier alexandre.saunier at camptocamp.com
Mon Jul 3 06:31:40 EDT 2006


Hello,

you may check in your mapfile that you have a layer for outlining points.

If you have
pointLayer = cartoweb_point_outline
in your project server-side outline.ini, you should have something like

LAYER
   NAME "cartoweb_point_outline"
   TYPE POINT

     CLASS
       STYLE
         COLOR 0 255 0
         SYMBOL "circle"
         SIZE 10
       END
    END
END

in your mapfile.

A tutorial on how to write plugins is available in the doc:
http://cartoweb.org/doc/cw3.2/xhtml/dev.newplugin.html

AS



Alessandro Simplicio wrote:
> Alex
> 
> I tried to use your code, only using client in folder vehiclePosition 
> (new plugin). The program function, but it's don't show the point. Why?
> 
> <?php
> 
> // plugin is named, say, "vehiclePosition"
> 
> class ClientVehiclePosition extends ClientOutline {
> 
>     /**
>      * @see PluginManager::replacePlugin()
>      */
>     public function replacePlugin() {
>         return 'outline';
>     }
> 
>     /**
>      * @see ClientOutline::buildRequest()
>      */
>     public function buildRequest() {
>         $vehiclePositions = $this->getVehiclePositions();
>         $shapes = array();
>         if ($vehiclePositions) {
>             foreach ($vehiclePositions as $pos) {
>                 $shape = new StyledShape;
>                 $shape->shape = new Point($pos->x, $pos->y);
>                 $shapes[] = $shape;
>             }
>         }
>         $this->outlineState->shapes = $shapes;
>         return parent::buildRequest();
>     }
> 
>     function getDb()     {
>         $dsn = "pgsql://demo:demo@localhost/demo_plugins";
>             if (!$dsn)
>             {
>                 throw new CartoclientException('Search database DSN not 
> found');
>             }
>             $this->db = DB::connect($dsn);
>             //check for db connection error, throw exception if needed
>             Utils::checkDbError($dsn," ");     // erro aqui - faltavam 
> parametros do checkdberror ($db e $msg) - pascoal
>         return $this->db;
>     }
> 
>     protected function getVehiclePositions() {
>         $this->vehiclePositions = array();
>         // get coord from db
>         $db = $this->getDb();
>         $sql = "SELECT x, y FROM s_ocr_geo_rel WHERE gid = 5062"; 
> //ocorrrencia no bairro guaira rua alagoas - Pascoal
>         $result = $db->query($sql);
>         if (DB::isError($result))
>         {
>             throw new CartoclientException($result->getMessage());
>         }
>         $row = NULL;
>         while ($result->fetchInto($row, DB_FETCHMODE_ASSOC))
>         {
>             $this->vehiclePositions['x'] = $row['x'];
>             $this->vehiclePositions['y'] = $row['y'];
>             print $this->vehiclePositions['x']."<br>";
>             print $this->vehiclePositions['y'];
>         }
>     }
> }
> ?>
> 
> Thank you
> 
> Alessandro


More information about the Cartoweb-users mailing list