[Mapserver-DE] Refresh mit PHP MapScript

Sven Schulz Sven.Schulz-2 at rub.de
Don Okt 26 14:36:19 CEST 2006


Hi zusammen,
die Variable $HTTP_POST_VARS sollte nach Möglichkeit in $_POST geändert 
werden, falls die Anwendung mal in php5 portiert wird.
mfg, Sven


Kai Behncke schrieb:
> -------- Original-Nachricht --------
> Datum: Mon, 9 Oct 2006 17:39:25 +0200
> Von: Silke Reimer <Silke.Reimer at intevation.de>
> An: mapserver-de at freegis.org
> Betreff: Re: [Mapserver-DE] Refresh mit PHP MapScript
>
>   
>> On Mon, Oct 09, 2006 at 12:09:57PM +0200, Olga Sacharow wrote:
>>     
>>> Hallo an alle!
>>>
>>> Ich möchte in meinen WMS mit PHP MapScript einen Refresh Button
>>> einbauen, der die neu gewählten Ebenen in die Karte mit einbaut.
>>> Was bei mir jedoch passiert ist, dass der Maßstab immer wieder auf
>>> Full Extent springt und nicht in dem aktuellen bleibt. Beim
>>> Programmieren gehe ich dabei vor, wie bei Recenter und setzte den
>>> Kartenmittelpunkt aber schon fest.
>>>
>>> In PHP:
>>>
>>> if ($HTTP_POST_VARS ["refresh"]) {
>>>   $zoom_factor=1;
>>>   $my_point = ms_newpointObj();
>>>   $my_point->setXY(200,270)             //Kartenmittelpunkt
>>>   $map->zoompoint($zoom_factor, $my_point, $map->width, $map->height,
>>>       
>> $my_extent); } 
>>
>> Wo wird denn die Variable $my_extent gesetzt? Wenn das an dieser
>> Stelle vergessen wird, dürfte das der Grund für den Fehler sein.
>>
>> Mit freundlichen Grüßen,
>>
>>     Silke
>>
>>     
> Hallo allerleits, 
> eine Möglichkeit könnte so aussehen (man muss dafür sorgen, dass nicht der
> Ursprungsextent gesetzt wird, sondern der aktuelle Extent übergeben wird): 
>
> Als Variable abspeichern (nachdem die Karte erstellt wurde):
> $extent_to_html = $map->extent->minx." ".$map->extent->miny." "
> .$map->extent->maxx." ".$map->extent->maxy;
>
> und in einem HTML-Formular übergeben:
>
> <INPUT TYPE=HIDDEN NAME="extent" VALUE="<?php echo $extent_to_html?>">
>
>
> Dann, nachdem die Formularwerte übergeben wurden, also in dem Skript welches für die Neugestaltung der Karte zuständig ist, 
> die übergebenen Parameter zerlegen:
>
> $extent_to_set = explode(" ",$HTTP_POST_VARS["extent"]);
> $map->setextent($extent_to_set[0],$extent_to_set[1],
> $extent_to_set[2],$extent_to_set[3]);
>
>
>
> ....und ein neues Rechteckobjekt erstellen:
>
> $my_extent = ms_newrectObj();
> $my_extent->setextent($extent_to_set[0],$extent_to_set[1],
> $extent_to_set[2],$extent_to_set[3]);
>
> ...und dann Zeichnen:
>
> $map->zoompoint($zoom_factor,$my_point,$map->width,$map->height,$my_extent);
>
> Wenn man  einen neuen Layer einbindet und den genannten Code integriert dann wird der zuletzt aktuelle Extent übergeben.
>
> Viele Grüße, Kai
>   




This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)