示例#1
0
function map_query($map, $corx, $cory)
{
    $map_querymsg = '<table class="table-bordered">';
    $map_querymsg .= '<tr><td class="heading" colspan="2">' . tra('Query point:') . ' <b>' . $corx . ' / ' . $cory . '</b></td><tr>';
    $query_point = ms_newpointObj();
    $query_point->setXY($corx, $cory);
    for ($j = 0; $j < $map->numlayers; $j++) {
        $my_layer = $map->getLayer($j);
        if ($my_layer->status == MS_ON) {
            // We have a query
            if (@$my_layer->queryByPoint($query_point, MS_MULTIPLE, 0) == MS_SUCCESS) {
                $my_layer->open();
                $map_querymsg .= '<tr><td class="heading" colspan="2">' . tra('layer:') . ' <b>' . $my_layer->name . '</b></td></tr>';
                for ($k = 0, $kmylayer_numresults = $my_layer->getNumResults(); $k < $kmylayer_numresults; $k++) {
                    $my_resultcache = $my_layer->getResult($k);
                    $my_shape = $my_layer->getShape($my_resultcache->tileindex, $my_resultcache->shapeindex);
                    $my_array = $my_shape->values;
                    $map_querymsg .= '<tr><td class="heading" colspan="2"><small>' . tra('Record:') . ' ' . $my_resultcache->shapeindex . '</small></td></tr>';
                    $col = 0;
                    foreach ($my_array as $key => $value) {
                        if ($col % 2) {
                            $map_querymsg .= '<tr><td class="even"><small>' . $key . '</small></td><td class="even"><small>' . $value . '</small></td></tr>';
                        } else {
                            $map_querymsg .= '<tr><td class="odd"><small>' . $key . '</small></td><td class="odd"><small>' . $value . '</small></td></tr>';
                        }
                        $col++;
                    }
                }
                $my_layer->close();
            }
        }
    }
    $map_querymsg .= '</table>';
    return $map_querymsg;
}
示例#2
0
/**
 * @param $mapfile
 * @param $corx
 * @param $cory
 * @param $minx
 * @param $maxx
 * @param $miny
 * @param $maxy
 * @param $xsize
 * @param $ysize
 * @param $layers
 * @param $labels
 * @param $zoom
 * @param bool $changeleg
 * @param int $corx2
 * @param int $cory2
 * @return xajaxResponse
 */
function map_redraw($mapfile, $corx, $cory, $minx, $maxx, $miny, $maxy, $xsize, $ysize, $layers, $labels, $zoom, $changeleg = false, $corx2 = 0, $cory2 = 0)
{
    global $prefs;
    $objResponse = new xajaxResponse();
    if (strstr($mapfile, '..')) {
        $msg = tra('You do not have permission to do that');
        $objResponse->alert($msg);
        return $objResponse;
    }
    $prefs['map_path'] = preg_replace('/\\/?$/', '/', $prefs['map_path']);
    //checking the mapfile
    if (!is_file($prefs['map_path'] . $mapfile) || preg_match('/(\\/\\.)/', $prefs['map_path'] . $mapfile)) {
        $msg = tra('invalid mapfile name');
        $objResponse->alert($msg);
        return $objResponse;
    }
    $map = ms_newMapObj($prefs['map_path'] . $mapfile);
    for ($j = 0; $j < $map->numlayers; $j++) {
        $my_layer = $map->getLayer($j);
        if ($layers[$j] == 'true') {
            $my_layer->set('status', MS_ON);
        } else {
            $my_layer->set('status', MS_OFF);
        }
        if ($labels[$j] == 'false') {
            $my_layer->set('labelmaxscale', 0);
        }
    }
    $map->Set('width', $xsize);
    $map->Set('height', $ysize);
    $my_point = ms_newpointObj();
    if ($zoom == 3) {
        $my_point->setXY($map->width / 2, $map->height / 2);
    } else {
        $my_point->setXY(floor($corx), floor($cory));
    }
    $my_extent = ms_newrectObj();
    $my_extent->setextent($minx, $miny, $maxx, $maxy);
    $result = '';
    if ($zoom == 3) {
        $map->zoompoint(1, $my_point, $map->width, $map->height, $my_extent);
        $result = map_query($map, $corx, $cory);
    } elseif ($zoom == 5) {
        $my_rect = ms_newrectObj();
        $my_rect->setextent($corx, $cory, $corx2, $cory2);
        $map->zoomrectangle($my_rect, $map->width, $map->height, $my_extent);
        $objResponse->assign('minx', 'value', $map->extent->minx);
        $objResponse->assign('miny', 'value', $map->extent->miny);
        $objResponse->assign('maxx', 'value', $map->extent->maxx);
        $objResponse->assign('maxy', 'value', $map->extent->maxy);
        $objResponse->assign('map', 'style.cursor', 'default');
        $objResponse->assign('zoomselect', 'style.visibility', 'hidden');
        $objResponse->script("xMoveTo(xGetElementById('map'),0,0);");
        $objResponse->script('minx=' . $map->extent->minx . ';');
        $objResponse->script('miny=' . $map->extent->miny . ';');
        $objResponse->script('maxx=' . $map->extent->maxx . ';');
        $objResponse->script('maxy=' . $map->extent->maxy . ';');
    } else {
        $map->zoompoint(1, $my_point, $map->width, $map->height, $my_extent);
        $objResponse->assign('minx', 'value', $map->extent->minx);
        $objResponse->assign('miny', 'value', $map->extent->miny);
        $objResponse->assign('maxx', 'value', $map->extent->maxx);
        $objResponse->assign('maxy', 'value', $map->extent->maxy);
        $objResponse->assign('map', 'style.cursor', 'move');
        $objResponse->script("xMoveTo(xGetElementById('map'),0,0);");
        $objResponse->script('minx=' . $map->extent->minx . ';');
        $objResponse->script('miny=' . $map->extent->miny . ';');
        $objResponse->script('maxx=' . $map->extent->maxx . ';');
        $objResponse->script('maxy=' . $map->extent->maxy . ';');
    }
    $image = $map->drawquery();
    $image_url = $image->saveWebImage();
    if ($zoom != 3) {
        $image_ref = $map->drawReferenceMap();
        $image_ref_url = $image_ref->saveWebImage();
        $image_ref->free();
    }
    if ($changeleg) {
        $image_leg = $map->drawLegend();
        $image_leg_url = $image_leg->saveWebImage();
        $image_leg->free();
    }
    if ($zoom == 2 || $zoom == 5) {
        $image_scale = $map->drawScaleBar();
        $image_scale_url = $image_scale->saveWebImage();
        $image_scale->free();
    }
    $image->free();
    $objResponse->assign('innerBoxContent', 'innerHTML', $result);
    $objResponse->assign('resultBox', 'innerHTML', $result);
    $objResponse->assign('map', 'src', $image_url);
    if ($zoom != 3) {
        $objResponse->assign('ref', 'src', $image_ref_url);
    }
    if ($zoom == 2 || $zoom == 5) {
        $objResponse->assign('scale', 'src', $image_scale_url);
    }
    if ($changeleg) {
        $objResponse->assign('leg', 'src', $image_leg_url);
    }
    return $objResponse;
}
示例#3
0
                $view_maxx = $view_values[$j][2];
                $view_maxy = $view_values[$j][3];
                $my_extent = ms_newrectObj();
                $my_extent->setextent($view_minx, $view_miny, $view_maxx, $view_maxy);
                $view = $_REQUEST['view'];
            }
        }
    } else {
        $my_extent = ms_newrectObj();
        $my_extent->setextent($map->extent->minx, $map->extent->miny, $map->extent->maxx, $map->extent->maxy);
    }
}
$query = FALSE;
if (isset($_REQUEST['zoom'])) {
    $zoom = $_REQUEST['zoom'];
    $my_point = ms_newpointObj();
    if (isset($_REQUEST['x']) && isset($_REQUEST['y']) && $zoom != 0) {
        if (isset($_REQUEST['oldsize'])) {
            $my_point->setXY(floor($_REQUEST['x'] * $size / $_REQUEST['oldsize']), floor($_REQUEST['y'] * $size / $_REQUEST['oldsize']));
        } else {
            $my_point->setXY(floor($_REQUEST['x']), floor($_REQUEST['y']));
        }
    } else {
        $my_point->setXY($map->width / 2, $map->height / 2);
    }
    if ($zoom == 0) {
        // It is a query
        $map->zoompoint(1, $my_point, $map->width, $map->height, $my_extent);
        if (isset($_REQUEST['x']) && isset($_REQUEST['y'])) {
            //get the real world coordinates
            $x = $_REQUEST['x'];
示例#4
0
function map_redraw($mapfile, $corx, $cory, $minx, $maxx, $miny, $maxy, $xsize, $ysize, $layers, $labels, $zoom, $changeleg = false, $corx2 = 0, $cory2 = 0)
{
    global $prefs;
    $objResponse = new xajaxResponse();
    if (strstr($mapfile, '..')) {
        $msg = tra("You do not have permission to do that");
        $objResponse->addAlert($msg);
        return $objResponse;
    }
    $prefs['map_path'] = preg_replace("/\\/?\$/", "/", $prefs['map_path']);
    //checking the mapfile
    if (!is_file($prefs['map_path'] . $mapfile) || preg_match("/(\\/\\.)/", $prefs['map_path'] . $mapfile)) {
        $msg = tra("invalid mapfile name");
        $objResponse->addAlert($msg);
        return $objResponse;
    }
    $map = ms_newMapObj($prefs['map_path'] . $mapfile);
    for ($j = 0; $j < $map->numlayers; $j++) {
        $my_layer = $map->getLayer($j);
        if ($layers[$j] == "true") {
            $my_layer->set("status", MS_ON);
        } else {
            $my_layer->set("status", MS_OFF);
        }
        if ($labels[$j] == "false") {
            $my_layer->set("labelmaxscale", 0);
        }
    }
    $map->Set("width", $xsize);
    $map->Set("height", $ysize);
    $my_point = ms_newpointObj();
    if ($zoom == 3) {
        $my_point->setXY($map->width / 2, $map->height / 2);
    } else {
        $my_point->setXY(floor($corx), floor($cory));
    }
    $my_extent = ms_newrectObj();
    $my_extent->setextent($minx, $miny, $maxx, $maxy);
    $result = "";
    if ($zoom == 3) {
        $map->zoompoint(1, $my_point, $map->width, $map->height, $my_extent);
        $result = map_query($map, $corx, $cory);
    } elseif ($zoom == 5) {
        $my_rect = ms_newrectObj();
        $my_rect->setextent($corx, $cory, $corx2, $cory2);
        $map->zoomrectangle($my_rect, $map->width, $map->height, $my_extent);
        $objResponse->addAssign("minx", "value", $map->extent->minx);
        $objResponse->addAssign("miny", "value", $map->extent->miny);
        $objResponse->addAssign("maxx", "value", $map->extent->maxx);
        $objResponse->addAssign("maxy", "value", $map->extent->maxy);
        $objResponse->addAssign("map", "style.cursor", "default");
        $objResponse->addAssign("zoomselect", "style.visibility", "hidden");
        $objResponse->addScript("xMoveTo(xGetElementById('map'),0,0);");
        $objResponse->addScript("minx=" . $map->extent->minx . ";");
        $objResponse->addScript("miny=" . $map->extent->miny . ";");
        $objResponse->addScript("maxx=" . $map->extent->maxx . ";");
        $objResponse->addScript("maxy=" . $map->extent->maxy . ";");
    } else {
        $map->zoompoint(1, $my_point, $map->width, $map->height, $my_extent);
        $objResponse->addAssign("minx", "value", $map->extent->minx);
        $objResponse->addAssign("miny", "value", $map->extent->miny);
        $objResponse->addAssign("maxx", "value", $map->extent->maxx);
        $objResponse->addAssign("maxy", "value", $map->extent->maxy);
        $objResponse->addAssign("map", "style.cursor", "move");
        $objResponse->addScript("xMoveTo(xGetElementById('map'),0,0);");
        $objResponse->addScript("minx=" . $map->extent->minx . ";");
        $objResponse->addScript("miny=" . $map->extent->miny . ";");
        $objResponse->addScript("maxx=" . $map->extent->maxx . ";");
        $objResponse->addScript("maxy=" . $map->extent->maxy . ";");
    }
    $image = $map->drawquery();
    $image_url = $image->saveWebImage();
    if ($zoom != 3) {
        $image_ref = $map->drawReferenceMap();
        $image_ref_url = $image_ref->saveWebImage();
        $image_ref->free();
    }
    if ($changeleg) {
        $image_leg = $map->drawLegend();
        $image_leg_url = $image_leg->saveWebImage();
        $image_leg->free();
    }
    if ($zoom == 2 || $zoom == 5) {
        $image_scale = $map->drawScaleBar();
        $image_scale_url = $image_scale->saveWebImage();
        $image_scale->free();
    }
    $image->free();
    $objResponse->addAssign("innerBoxContent", "innerHTML", $result);
    $objResponse->addAssign("resultBox", "innerHTML", $result);
    $objResponse->addAssign("map", "src", $image_url);
    if ($zoom != 3) {
        $objResponse->addAssign("ref", "src", $image_ref_url);
    }
    if ($zoom == 2 || $zoom == 5) {
        $objResponse->addAssign("scale", "src", $image_scale_url);
    }
    if ($changeleg) {
        $objResponse->addAssign("leg", "src", $image_leg_url);
    }
    return $objResponse;
}