[Cartoweb-users] Get layers icon in LayerReorder plugin
Simon ORTET
simon.ortet at silogic.fr
Tue Aug 28 05:13:05 EDT 2007
Hello Oliver,
One more thing about the layerReoder modification. I try to get the
layer visibility in order to prevent layerReorder to show layers that
are not visible at current scale.
The thing is with a $plugin->getLayers() i get a maxscale and minscale
informations about the layer, but how can i get current scale (to make
the comparison). Or is there a simpler way to get one's layer
visibility? I didn't find a function that can do that in Layers.php.
Thanks
Simon Ortet
Oliver Christen a écrit :
> Hi
>
> It should be allright.
> getLayersInit() is used in the layers plugin because everything is
> based on the original list of plugin and it is used as a basic
> references for all treatments in that coreplugin.
> (beside, I have the feeling $plugin->getLayersInit()->layers are
> string when $plugin->getLayers() are objects, maybe that was your
> problem)
> Since you are using the layers from another plugin, you can simple
> suppose the layers plugin has it right and dont worry about it.
>
> regards
> Oliver
>
>> Hello
>>
>> It was to check the values i got.
>> But finally i found a way :
>> In getCwLayerIds and my new function getCwLayerIcons i make a
>> foreach ($plugin->getLayers() as $layer) {
>> instead of
>> foreach ($plugin->getLayersInit()->layers as $layer)
>> so i can get $layer->icon
>>
>> Seems to work fine, i just hope i didn't create a mess by modifing
>> getCwLayerIds function...
>>
>>
>> Simon Ortet
>> Silogic
>>
>>
>> Oliver Christen a écrit :
>>> hi
>>>
>>> whats the output of the print_r($element); you added?
>>>
>>> regards
>>> Oliver
>>>
>>>
>>>
>>>> Hi,
>>>>
>>>> I'm trying to add the layer icon just before the radio button in
>>>> LayerReorder form. So here's what i did :
>>>> - in ClientLayerReorder.php, I created a getCwLayerIcons() function
>>>> just like getCwLayerIds() wich looks like this
>>>>
>>>> / public function getCwLayerIcons() {
>>>>
>>>> $cwLayerIcons = array();
>>>> $plugin =
>>>> $this->cartoclient->getPluginManager()->getPlugin('layers');
>>>>
>>>> foreach ($plugin->getLayersInit()->layers as $layer) {
>>>> if ($layer instanceof Layer) {
>>>> $cwLayerIcons[$layer->id] =
>>>> $plugin->getLayerIcon($layer);
>>>> }
>>>> }
>>>> return $cwLayerIcons;
>>>> }/
>>>>
>>>> - The getLayerIcon() function in ClientLayers.php looks like this
>>>>
>>>> /public function getLayerIcon($layer) {
>>>> $element = $this->fetchLayer($layer);
>>>> /*$children = $this->getLayerChildren($layer);
>>>> $this->fetchLayerIcon($layer,$children);
>>>> if (empty($element['layerIcon'])) {
>>>> $iconUrl = '';
>>>> } else {
>>>> $resourceHandler =
>>>> $this->getCartoclient()->getResourceHandler();
>>>> $iconUrl =
>>>> $resourceHandler->getFinalUrl($element['layerIcon'], false);
>>>> }*/
>>>>
>>>> echo($layer->id.": ");
>>>> print_r($element);
>>>> echo "<br><br>\n";
>>>> return $element['layerIcon'];
>>>> }/
>>>>
>>>>
>>>> My problem is that i can't get the icon filename of my layers. I
>>>> always get an empty string.
>>>> Where am I doing something wrong?
>>>>
>>>> Thanks
>>>>
>>>> Simon Ortet
>>>>
>>>> _______________________________________________
>>>> 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