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; }
/** * @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; }
$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'];
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; }