[Cartoweb-users] MapOverlay

Yves Jacolin yjacolin at free.fr
Mon Apr 2 05:54:51 EDT 2007


Hi Luigi,

It is an english only list, so you will better information if you ask your 
question in english ;-)

Well, I saw that your error come form the server side of your plugin and you 
try to get a property of an object which does not exist.

You can try to check this line
>       $mapOverlay = $this->serverContext->getPluginManager()->mapOverlay;
>       $mapOverlay->updateMap($layer);
>       $this->serverContext->getMapObj()->save('/tmp/debug.map');
Or comment some line begining in the end and go up until the error disappear.

Regards,

Y.
Le Lundi 2 Avril 2007 11:48, Luigi.marotta a écrit :
> Sto cercando di scrivere un plugin che, utilizzando mapOvrlay, mi consenta
> di campiare l'argomento "data" di un
>
> layer nel mio map file. Per il momento il plugin consiste: in un pulstante
> che cambia un'immagine.
> La parte client è:
>
> <?php
> /**
>  * ClientDataMappa.php
>  */
>
> class ClientDataMappa extends ClientPlugin
>                                implements ServerCaller, GuiProvider {
>
>     protected $specialactiontrigger;
>     protected $flag;
>
>     public function handleHttpPostRequest($request) {
>       if (isset($request['specialactiontrigger'])) {
>         $this->flag = true;
>       }
>       else {
>         $this->flag = false;
>       }
>     }
>
>     public function handleHttpGetRequest($request) {}
>
>     public function buildRequest() {
>       if ($this->flag) {
>         $flag=$this->flag;
>         return $flag;
>       }
>     }
>
>     protected function drawUserForm() {
>       $smarty = new Smarty_Plugin($this->getCartoclient(), $this);
>       return $smarty->fetch('dataInput.tpl');
>     }
>
>     public function renderForm(Smarty $template) {
>       $template->assign('dataInput', $this->drawUserForm());
>     }
>
>     public function initializeResult ($request){
>     if (isset ($this->flag)) {
>       print ('ok');}
>     }
>     public function handleResult($request){
>     if (isset ($this->flag)) {
>       print ('ok');}
>     }
>
>
> }
> ?>
>
> Il template:
>
> <!-- dataInput.tpl -->
> <input type="submit" name="specialactiontrigger" value="ok" />
>
> e la parte server:
>
> <?php
> class ServerDataMappa extends ClientResponderAdapter {
>
>   public $flag;
>
>   public function initializeRequest($requ) {
>     if ($requ) {
>       $this->flag=$requ;
>       $flag=$this->flag;
>       return $flag;
>     }
>   }
>
>   public function handlePreDrawing($request){
>     if (isset ($this->flag)) {
>       $layer = new LayerOverlay();
>       $layer->action = BasicOverlay::ACTION_UPDATE;
>       $layer->name = "mappa";
>       $layer->data = "images/cc_20050621.tif";
>       $mapOverlay = $this->serverContext->getPluginManager()->mapOverlay;
>       $mapOverlay->updateMap($layer);
>       $this->serverContext->getMapObj()->save('/tmp/debug.map');
>      }
>   }
> }
> ?>
>
> La parte Cliente sembra funzionare ma quando viene chiamato il server mi
> compare questo errore:
>
> Failure
>
> CartoWeb version: 3.3.0 [$Revision: 1.2 $]
> class:   SoapFaultWrapper
> message:   Error [8, Trying to get property of non-object,
> C:\wamp\www\cartoweb3\server\Cartoserver.php, 229]
> Backtrace:
>
> file: 229 - C:\wamp\www\cartoweb3\server\Cartoserver.php
> call: Common::cartowebErrorHandler(8, "Trying to get property of
> non-object",
>
> "C:\wamp\www\cartoweb3\server\Cartoserver.php", 229, Array(4))
>
> file: 265 - C:\wamp\www\cartoweb3\server\Cartoserver.php
> call: Cartoserver->checkRequest(Object(MapRequest))
>
> file: 349 - C:\wamp\www\cartoweb3\server\Cartoserver.php
> call: Cartoserver->doGetMap(Object(MapRequest))
>
> file: 370 - C:\wamp\www\cartoweb3\server\Cartoserver.php
> call: Cartoserver->callWithExceptionCheck("doGetMap", Object(MapRequest))
>
> file: 81 - C:\wamp\www\cartoweb3\server\MapResultCache.php
> call: Cartoserver->cacheGetMap(Object(MapRequest))
>
> file: 115 - C:\wamp\www\cartoweb3\server\MapResultCache.php
> call: MapResultCache->getMapResultFromServer(Object(MapRequest))
>
> file: 198 - C:\wamp\www\cartoweb3\server\MapResultCache.php
> call: MapResultCache->cacheMapResult(Object(MapRequest))
>
> file: 380 - C:\wamp\www\cartoweb3\server\Cartoserver.php
> call: MapResultCache->getMap(Object(MapRequest))
>
> file: 104 - C:\wamp\www\cartoweb3\client\CartoserverService.php
> call: Cartoserver->getMap(Object(MapRequest))
>
> file: 165 - C:\wamp\www\cartoweb3\client\CartoserverService.php
> call: CartoserverService->callDirect("getMap", Object(MapRequest))
>
> file: 233 - C:\wamp\www\cartoweb3\client\CartoserverService.php
> call: CartoserverService->callFunction("getMap", Object(MapRequest))
>
> file: 916 - C:\wamp\www\cartoweb3\client\Cartoclient.php
> call: CartoserverService->getMap(Object(MapRequest))
>
> file: 1045 - C:\wamp\www\cartoweb3\client\Cartoclient.php
> call: Cartoclient->getMapResultFromRequest(Object(MapRequest))
>
> file: 1220 - C:\wamp\www\cartoweb3\client\Cartoclient.php
> call: Cartoclient->doMain()
>
> file: 38 - C:\wamp\www\cartoweb3\htdocs\client.php
> call: Cartoclient->main()
>
> file: 3 - C:\wamp\www\cartoweb3\htdocs\mymap.php
> call: require_once("C:\wamp\www\cartoweb3\htdocs\client.php").
>
> Utilizzando la funzione print ho potuto notare che nessuna parte del server
> viene eseguita o, comunque, l'errore
>
> viene generato dall'inizializzazione.
> Qualcuno ha gia implementato un plugin simele?
> Qualcuno può aiutarmi?
> Non so più che pesci prendere.
> Grazie.
>  --
>  Email.it, the professional e-mail, gratis per te: http://www.email.it/f
>
>  Sponsor:
>  Prestiti e Finanziamenti con un semplice click, scopri subito se sei
> finanziabile cliccando qui
>  Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=2910&d=20070402
>
>
> _______________________________________________
> Cartoweb-users mailing list
> Cartoweb-users at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/cartoweb-users

-- 
Yves Jacolin
---
http://yjacolin.gloobe.org



More information about the Cartoweb-users mailing list