<?php

dl('php_mapscript.dll');

function GMapPix2Geo($nPixPos, $dfPixMin, $dfPixMax, $dfGeoMin, $dfGeoMax,
                     $nInversePix)
{

    $dfWidthGeo = $dfGeoMax - $dfGeoMin;
    $dfWidthPix = $dfPixMax - $dfPixMin;


    $dfPixToGeo = $dfWidthGeo / $dfWidthPix;

    if (!$nInversePix)
        $dfDeltaPix = $nPixPos - $dfPixMin;
    else
        $dfDeltaPix = $dfPixMax - $nPixPos;

    $dfDeltaGeo = $dfDeltaPix * $dfPixToGeo;


    $dfPosGeo = $dfGeoMin + $dfDeltaGeo;

    return ($dfPosGeo);
}



// Default values and configuration

$val_zsize=3;
$check_pan="CHECKED";
$map_path="C:/Programme/ms4w/apps/Test/Test/";
$map_file="map6.map";

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

echo ms_GetVersion();


if ( isset($_POST["mapa_x"]) && isset($_POST["mapa_y"])){

           $extent_to_set = explode(" ",$_POST["extent"]);
    
           $map->setextent($extent_to_set[0],$extent_to_set[1],
                           $extent_to_set[2],$extent_to_set[3]);
      
           $my_extent = ms_newrectObj();

           $my_extent->setextent($extent_to_set[0],$extent_to_set[1],
                         $extent_to_set[2],$extent_to_set[3]);
      
        $dfKeyMapXMin = $map->extent->minx;
    $dfKeyMapYMin = $map->extent->miny;
    $dfKeyMapXMax = $map->extent->maxx;
    $dfKeyMapYMax = $map->extent->maxy;

        $nClickPixX = doubleval($HTTP_POST_VARS["mapa_x"]);
    $nClickPixY = doubleval($HTTP_POST_VARS["mapa_y"]);

    $dfWidthPix = 400;
    $dfHeightPix = 400;

    $nClickGeoX = GMapPix2Geo($nClickPixX, 0, $dfWidthPix, $dfKeyMapXMin,$dfKeyMapXMax, 0);
    $nClickGeoY = GMapPix2Geo($nClickPixY, 0, $dfHeightPix, $dfKeyMapYMin,$dfKeyMapYMax, 1);

        $my_point3 = ms_newpointObj();
    $my_point3->setXY($nClickGeoX,$nClickGeoY);

        foreach ( ($map->getAllLayerNames()) as $idx => $Name){
                $Layer=$map->getLayerByName($Name);
                $Layer->open();
        }
        
        $ret = $map->queryByPoint($my_point3,MS_MULTIPLE, -1);
        if ($ret==mapserv.MS_SUCCESS){
                foreach ( ($map->getAllLayerNames()) as $idx => $Name){
                        $Layer=$map->getLayerByName($Name);
                        $Layer->open();
                        $res = $Layer->getResult(0);
                        if ($res>0){
                                $shape = $Layer->getFeature($res->shapeindex,-1);
                                
                                echo'<pre>';
                                print_r ($shape->values);
                                echo'</pre>';                                        
                        }
                }
        }
}

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

//                 $image2=$map->drawQuery();

//                 $image_url2=$image2->saveWebImage();


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

 ?>
 <HTML>
 <HEAD>
 <TITLE>Map 3</TITLE>
 </HEAD>
 <BODY>
 <CENTER>
  <FORM METHOD=POST ACTION=<?php echo $HTTP_SERVER_VARS['PHP_SELF']?>>

  <INPUT TYPE=IMAGE NAME="mapa" SRC="<?php echo $image_url?>">
  <INPUT TYPE=IMAGE NAME="mapb" SRC="<?php echo $image_url2?>">
  <INPUT TYPE=TEXT NAME="extent" VALUE="<?php echo $extent_to_html?>">
 </FORM>
 </CENTER>
 </BODY>
 </HTML>