[Cartoweb-users] Make Outline plugin draw a ms_shape_obj

Oliver Christen oliver.christen at camptocamp.com
Mon Oct 15 08:32:08 EDT 2007


mmm, im not sure but a layer set to off shouldnt answer to query request.
But since it is not (should not) be visible, that not really a problem.



> Finally I found why the layer was being activated.
> When i do the
>    $styledShape->shape = 
> $pluginManager->mapquery->queryByIdSelection($mySelection);
> in the handlePreDrawing function of my plugin, the queryLayerByAttributes 
> function of mapQuery plugin do a
>        // Layer has to be activated for query.
>        $msLayer->set('status', MS_ON);
>
> I added a
>        $msLayer->set('status', MS_OFF);
> at the end of the function and it's ok.
>
> Do you think that could be a problem for the query plugin?
>
> Simon Ortet
> Silogic
>
>
>
> Simon ORTET a écrit :
>> Well i did something to make it work.
>>
>> In my plugin server file, instead of
>>    $pluginManager->outline->draw($this->shapes);
>> i make a
>>    $pluginManager->outline->drawDirect($this->shapes);
>>
>> And i coded this function in ServerOutline.php like this:
>>
>>    /public function drawDirect($shapes) {/
>>    /        /
>>    /        if (empty($shapes)) {/
>>    /            return 0;/
>>    /        }/
>>    /                /
>>    /        $msMapObj = $this->serverContext->getMapObj();/
>>    /        foreach ($shapes as $shape) {/
>>    / 
>> $this->drawFeatureDirect($shape,$this->getConfig()->polygonLayer);/
>>    /        }/
>>
>>    /        $this->drawMap($msMapObj);/
>>
>>    /        return 0;/
>>    /    }/
>>
>> The drawFeatureDirect is just like drawFeature except i replaced the
>>    $f = $this->toShapeObj($shape->shape);
>> by
>>    $f = $shape->shape[0];
>>
>>
>> My problem now is that i've got all the layer drawn and i don't 
>> understand why.
>> the $f variable is a ms_shape_obj extracted from a layer. I see it 
>> rendered with the correct style on the map. So the modifications work.
>> But the plugin activates the whole layer and it's drawn too (whereas i 
>> didn't activate it) and i don't understand why.
>>
>> I someone sees why in the code i posted... otherwise i'll keep you 
>> posted.
>>
>> Thanks.
>>
>>
>> Simon ORTET a écrit :
>>> Hi,
>>>
>>> I made a plugin that uses outline plugin. It takes coordinates, make a 
>>> Cartoweb Shape of it and send it to outline with
>>>
>>>    $pluginManager->outline->draw($this->shapes);
>>>
>>> It works fine. Now i need this plugin to deal with shapes extracted from 
>>> my postgis database (ms_ShapeObj). Here's what i did to implement this. 
>>> In Server[myPlugin].php (handlePreDrawing function):
>>>                              $mySelection = new IdSelection();
>>>                $mySelection->layerId = $this->objTable; // The name of 
>>> my postgis layer
>>>                $mySelection->idAttribute = $this->objField;
>>>                $mySelection->idType = "string";
>>>                $mySelection->selectedIds = array($this->objValue);
>>>                          $styledShape = new StyledShape();
>>>                $styledShape->shape = 
>>> $pluginManager->mapquery->queryByIdSelection($mySelection);
>>>
>>>                $shapeStyle = new StyleOverlay();
>>>                $shapeStyle->size = 20;
>>>                $shapeStyle->color->setFromRGB(-1, -1, -1);
>>>                $shapeStyle->outlineColor->setFromRGB(120, 20, 20);
>>>
>>>                $styledShape->shapeStyle = $shapeStyle; 
>>> $this->shapes = array($styledShape);
>>>
>>> And then i do the
>>>                $pluginManager->outline->draw($this->shapes);
>>>
>>> So i expected my plugin to deal with both coordinates requests and 
>>> postgis requests. But i've got an error "unknown shape type". So i guess 
>>> the outline plugin only takes Cartoweb Shapes.
>>>
>>> Is there a way to convert my ms_ShapeObj to a cartoweb shape? Or to make 
>>> outline plugin draw my ms_ShapeObj?
>>>
>>> Thanks
>>>
>>> Simon Ortet
>>> Silogic
>>> _______________________________________________
>>> Cartoweb-users mailing list
>>> Cartoweb-users at lists.maptools.org
>>> http://lists.maptools.org/mailman/listinfo/cartoweb-users
>>>
>> _______________________________________________
>> Cartoweb-users mailing list
>> Cartoweb-users at lists.maptools.org
>> http://lists.maptools.org/mailman/listinfo/cartoweb-users
>>
> _______________________________________________
> Cartoweb-users mailing list
> Cartoweb-users at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/cartoweb-users
> 



More information about the Cartoweb-users mailing list