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