[Mapserver-DE] Grundsätzliche Probleme beim Einstieg MapScript

Stefan Böttger sb at lacos.de
Die Jan 24 12:58:50 CET 2006


Hallo User,

hatte mich die letzten Tage mit MapScript beschäftigt und komme aber 
grundsätzlich nicht so recht damit klar. Habe mir zig verschiedene 
Tutorials angeschaut, aber irgendwie steige ich da nicht so durch.

Ich möchte gern in meiner zr.php, eine Karte anzeigen(zr.tif) welche ich 
als Einstieg erstmal zoomen und verschieben möchte. Die Karte liegt im 
ordner data, zusammen mit der zr.tfw. Wofür ist diese eigentlich gedacht 
? Hier der bisherige Code :

############################## zr.map ##################################

MAP

NAME ZEULENRODA
STATUS ON
EXTENT 4487230.500 5604163.499 4512245.500 5621178.499
SIZE 1024 768
UNITS METERS
IMAGECOLOR 255 255 255

WEB
IMAGEPATH "c:/ms4w/Apache/htdocs/tmp/"
IMAGEURL "/tmp/"
END

LAYER
NAME "zr"
DATA "c:/ms4w/Apache/htdocs/mapserver/data/zr.tif"
CLASS
END
STATUS DEFAULT
TYPE RASTER
TRANSFORM FALSE
END

END

############################## zr.php ##################################

<?php

dl('php_mapscript_46.dll');

// Default values and configuration

$val_zsize=3;
$check_pan="CHECKED";
$map_path="C:/ms4w/Apache/htdocs/mapserver/";
$map_file="zr.map";

$map = ms_newMapObj($map_path.$map_file);


if ( isset($HTTP_POST_VARS["mapa_x"]) && isset($HTTP_POST_VARS["mapa_y"])
&& !isset($HTTP_POST_VARS["full"]) ) {

$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]);

$my_point = ms_newpointObj();
$my_point->setXY($HTTP_POST_VARS["mapa_x"],$HTTP_POST_VARS["mapa_y"]);

$my_extent = ms_newrectObj();

$my_extent->setextent($extent_to_set[0],$extent_to_set[1],
$extent_to_set[2],$extent_to_set[3]);

$zoom_factor = $HTTP_POST_VARS["zoom"]*$HTTP_POST_VARS["zsize"];
if ($zoom_factor == 0) {
$zoom_factor = 1;
$check_pan = "CHECKED";
$check_zout = "";
$check_zin = "";
} else if ($zoom_factor < 0) {
$check_pan = "";
$check_zout = "CHECKED";
$check_zin = "";
} else {
$check_pan = "";
$check_zout = "";
$check_zin = "CHECKED";
}

$val_zsize = abs($zoom_factor);

$map->zoompoint($zoom_factor,$my_point,$map->width,$map->height,
$my_extent);

}


$image=$map->draw();
$image_url=$image->saveWebImage();

$extent_to_html = $map->extent->minx." ".$map->extent->miny." "
.$map->extent->maxx." ".$map->extent->maxy;

?>
<HTML>
<HEAD>
<TITLE>Map 2</TITLE>
</HEAD>
<BODY>
<CENTER>
<FORM METHOD=POST ACTION=<?php echo $HTTP_SERVER_VARS['PHP_SELF']?>>
<TABLE>
<TR>
<TD>
<INPUT TYPE=IMAGE NAME="mapa" SRC="<?php echo $image_url?>">
</TD>
</TR>
<TR>
<TD>
Pan
</TD>
<TD>
<INPUT TYPE=RADIO NAME="zoom" VALUE=0 <?php echo $check_pan?>>
</TD>
</TR>
<TR>
<TD>
Zoom In
</TD>
<TD>
<INPUT TYPE=RADIO NAME="zoom" VALUE=1 <?php echo $check_zin?>>
</TD>
</TR>
<TR>
<TD>
Zoom Out
</TD>
<TD>
<INPUT TYPE=RADIO NAME="zoom" VALUE=-1 <?php echo $check_zout?>>
</TD>
</TR>
<TR>
<TD>
Zoom Size
</TD>
<TD>
<INPUT TYPE=TEXT NAME="zsize" VALUE="<?php echo $val_zsize?>"
SIZE=2>
</TD>
</TR>
<TR>
<TD>
Full Extent
</TD>
<TD>
<INPUT TYPE=SUBMIT NAME="full" VALUE="Go"
SIZE=2>
</TD>
</TABLE>
<INPUT TYPE=HIDDEN NAME="extent" VALUE="<?php echo $extent_to_html?>">
</FORM>
</CENTER>
</BODY>
</HMTL>


Den Code hatte ich aus einem Tutorial weil ich mir erstmal nicht anders 
zu helfen wusste. Ich sehe zwar einen Ausschnitt der Karte, aber ich 
kann weder zoomen noch die Karte bewegen. Ist es denn überhaupt richtig, 
dass ich einfach die zr.php aufrufe ?

Ich hoffe es kann mir jemand behilflich sein, oder ein richtig gutes 
Tutorial empfehlen, was auch mal die Grundlagen bis zu komplexeren 
Sachen behandelt. Bisher habe ich immer nur da mal etwas aufgeschnappt, 
dort mal was gelesen ... das ist alles nix Rolling Eyes

Vielen vielen Dank für Hilfe !!

mfG
S.Böttger




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