//dl("php_mapscript.dll"); include ("config.inc.php"); function img2map($width,$height,$point,$ext) { $minx = $ext->minx; $miny = $ext->miny; $maxx = $ext->maxx; $maxy = $ext->maxy; if ($point->x && $point->y){ $x = $point->x; $y = $point->y; $dpp_x = ($maxx-$minx)/$width; $dpp_y = ($maxy-$miny)/$height; $x = $minx + $dpp_x*$x; $y = $maxy - $dpp_y*$y; } $pt[0] = $x; $pt[1] = $y; return $pt; } //convert the reference coordinates to the map coordinates function ref2map($x, $y,$refext,$refSize) { $ext[0]=$refext[0]+$x*(($refext[2]-$refext[0])/$refSize[0]); $ext[1]=$refext[3]-$y*(($refext[3]-$refext[1])/$refSize[1]); return $ext; } $script_name = "index.php"; $map_path = "/var/www/mapserver/tmp/"; $map_file = "thematic.map"; $img_path = "/var/www/mapserver/tmp/"; $zoomsize=2; $pan="CHECKED"; $zoomout=""; $zoomin=""; // 默认选择density图层 $layer_name="signup"; $signup = "selected"; $map_show->unit="人"; include ("signup.php"); // Default click point $clickx = 266; $clicky = 199; $clkpoint = ms_newPointObj(); $old_extent = ms_newRectObj(); $map = ms_newMapObj($map_path.$map_file); if ( $_GET['layer_number'] ) { $select_query="layer_number"; //to decide which SQL to use $layer_type="layer_number[]"; include("layer_number.php"); } if ( $_GET['layer_ratio'] ) { $select_query="layer_ratio"; include("layer_ratio.php"); $layer_type="layer_ratio[]"; } if ( $_GET['layer_sameday'] ) { $select_query="layer_sameday"; include("layer_sameday.php"); $layer_type="layer_sameday[]"; } if ( $_GET['layer_year'] or $_GET['layer_month'] or $_GET['layer_day'] or $_GET['layer_item']) { $select_query="layer_accumulative"; include("layer_accumulative.php"); $layer_type="layer_accumulative[]"; } ///可以点击reference图片进行浏览 if ( $_GET['ref_x'] and $_GET['ref_y']){ $clkx=$_GET['ref_x']; $clky=$_GET['ref_y']; if ($_GET['extent']) {$extent = split(" ", $_GET['extent']);} if ($_GET['refextent']) {$refext = split(" ", $_GET['refextent']);} if ($_GET['refSize']) {$refSize = split(" ", $_GET['refSize']);} list($x,$y)=ref2map($clkx,$clky,$refext,$refSize); $mapext1=$x-($extent[2]-$extent[0])/2; $mapext2=$y-($extent[3]-$extent[1])/2; $mapext3=$x+($extent[2]-$extent[0])/2; $mapext4=$y+($extent[3]-$extent[1])/2; $map->setextent($mapext1,$mapext2,$mapext3,$mapext4); } if (( $_GET['img_x'] and $_GET['img_y'] ) or $_GET['refresh']) { if ( $_GET['refresh'] ) { // Refresh, fake the coordinates $clickx = 266; $clicky = 199; } else { // map click, use real coordinates $clickx = $_GET['img_x']; $clicky = $_GET['img_y']; } $clkpoint->setXY($clickx,$clicky); if ( $_GET['extent'] ) { $extent = split(" ", $_GET['extent']); } $map->setExtent($extent[0],$extent[1],$extent[2],$extent[3]); $old_extent->setextent($extent[0],$extent[1],$extent[2],$extent[3]); $zoom_factor = $_GET['zoom']*$_GET['zsize']; if ($zoom_factor == 0) { $zoom_factor = 1; $pan = "CHECKED"; $zoomout = ""; $zoomin = ""; } elseif ($zoom_factor < 0) { $pan = ""; $zoomout = "CHECKED"; $zoomin = ""; } else { $pan = ""; $zoomout = ""; $zoomin = "CHECKED"; } $zoomsize = abs($_GET['zsize'] ); if ($_GET['scalelimit']<3301895295 and $zoom_factor > 0){$zoom_factor=1;} if ($_GET['scalelimit']>211321298856 and $zoom_factor < 0) {$zoom_factor=1;} $map->zoomPoint($zoom_factor,$clkpoint,$map->width,$map->height,$old_extent); } $map_id = sprintf("%0.6d",rand(0,999999)); $image_name = $map_id.".png"; $image_url="/ms_tmp/".$image_name; $ref_name = "ref".$map_id.".gif"; $ref_url="/ms_tmp/".$ref_name; $leg_name = "leg".$map_id.".png"; $leg_url="/ms_tmp/".$leg_name; //$scale_name = "scale".$map_id.".png"; //$scale_url="/ms_tmp/".$scale_name; $image=$map->draw(); $image->saveImage($img_path.$image_name); $ref = $map->drawReferenceMap(); $ref->saveImage($img_path.$ref_name); $leg = $map->drawLegend(); $leg->saveImage($img_path.$leg_name); $scaleNum=$map->scaledenom; if ($scaleNum>211321298856) {$map->scaledenom=0;} if ($scaleNum<825473823) {$map->scaledenom=0;} //$scale = $map->drawScaleBar(); //$scale->saveImage($img_path.$scale_name); $new_extent = sprintf("%3.6f",$map->extent->minx)." " .sprintf("%3.6f",$map->extent->miny)." " .sprintf("%3.6f",$map->extent->maxx)." " .sprintf("%3.6f",$map->extent->maxy); $refext = sprintf("%3.6f",$map->reference->extent->minx)." " .sprintf("%3.6f",$map->reference->extent->miny)." " .sprintf("%3.6f",$map->reference->extent->maxx)." " .sprintf("%3.6f",$map->reference->extent->maxy); $refSize="236 173"; $scale = sprintf("%10d",$map->scale); if ($layer_type=="layer_accumulative[]") //如果$layer_type=="layer_accumulative[]",那么就要传递很多不同的表单值 { $input=" "; } else { //否则只要传递一个表单值就可以了。 $input=" "; } if ($_COOKIE['loadtimes']) { $configure=""; } else { setcookie("loadtimes","first"); $configure="myMenu.collapseAll()"; } ?>
教育资源分析网络地理信息系统
| |
checked>
漫游>
放大 >
缩小
|
echo "图例(单位:$map_show->unit)"; ?>
|