[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)