[mapserver-users] PHP mapscript using OracleSpatial

Jessica Clarke Jessica.Clarke at forestrytas.com.au
Thu Jul 5 21:25:55 PDT 2012


Hi everyone, 
I successfully queried the same view twice in two separate layers in order to show two related shapes, but now I have decided that there are too many options (and thus too many mapfiles to create and combinations for the developers on the other end to handle) so I am trying to write a php script to generate the two new layers according to the parameters passed into the script via url. 
 
I'll paste in my code currently.  I have issues with oraclespatial, and I just keep getting errors that the layer can't be drawn.  I'm having a hard time finding examples of this use, so I'm just hoping someone might be able to point out where I'm going wrong.  The lack of error reporting from php hasn't been helping matters either ;) 
 
Please forgive me if I have made a (or several) silly mistake.  I'm new to php, oracle, and mapserver. 
 
Cheers, 
Jess
 
URL:  http://local/multiLayer2.php?map=base2.map&map_name="Asset Survey related map"orig_type=POLYGON&orig_name=ASSET&orig_id=19117&rel_type=LINE&rel_name=SURVEY&rel_id=42 ( 'http://local/multiLayer2.php?map=base2.map&map_name="Asset Survey related map"orig_type=POLYGON&orig_name=ASSET&orig_id=19117&rel_type=LINE&rel_name=SURVEY&rel_id=42' )
This is what I want the url to look like, but currently, I've hardcoded the values into the script.
 
MAPFILE:
MAP
 NAME base
 STATUS ON
 SIZE 800 600
 EXTENT 227154 5165779 627108 5614539
 UNITS METERS
 IMAGECOLOR 234 255 255
 SYMBOLSET "base.sym"
 FONTSET "base.list"
 PROJECTION
  "proj=utm"
[..................]
##Changeable layers 
 LAYER
  NAME layer1
  TYPE POINT
  STATUS OFF
 END
 
 LAYER
  NAME layer2
  TYPE POINT
  STATUS OFF
 END
## end ##
[..............]
END
 
PHP:
<?php
if(!extension_loaded('Mapscript'))
 dl('php_mapscript.dll');
 
//open the mapfile and change the mapname
$map = ms_newMapObj($map_file);
$map -> set("name", $_GET['map_name']);
 
//set up layer 1
//set the parameters
 //temp setup
$orig_name = "ASSET";
$orig_id = "19117";
$orig_type = "MS_LAYER_POLYGON";
 
$rel_name = "SURVEY";
$rel_id = "42";
$rel_type = "MS_LAYER_LINE";
 
 //temporary data created 
$orig_data = "asset_shape FROM  FOD.ASSET_RELATED_SHP_MAP USING UNIQUE ASSET_ID";
$rel_data = "rel_shape from fod.asset_related_shp_map using unique shape_id";
 
//create the original shape layer
$orig_layer = $map->getLayerByName("layer1");
$orig_layer->set("name", $orig_name);
$orig_layer->set("status", MS_ON);
$orig_layer->set("type", $orig_type);
$orig_layer->set("connectiontype", MS_ORACLESPATIAL);
$orig_layer->set("connection", "mapserver/mapserver at gistest");
$orig_layer->set("data", $orig_data); 
$orig_layer->setProcessing("CLOSE_CONNECTION=DEFER");
$orig_layer->setProjection('+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs');
 //create class within the layer 
  //set the symbology and style

//create the related layer
$rel_layer = $map->getLayerByName("layer2");
$rel_layer->set("name", $rel_name);
$rel_layer->set("status", MS_ON);
$rel_layer->set("type", $rel_type);
$rel_layer->set("connectiontype", MS_ORACLESPATIAL);
$rel_layer->set("connection", "mapserver/mapserver at gistest");
$rel_layer->set("data", $rel_data); 
$rel_layer->setProcessing("CLOSE_CONNECTION=DEFER");
$rel_layer->setProjection('+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs');
 //create class within the layer
  //set the symbology and stylee
 

//draw the map
ms_ResetErrorList();
$map_image=$map->drawQuery();
$error=ms_GetErrorObj();
while($error && $error->code != MS_NOERR)
{
 printf("Error in %s: %s<br>\n", $error->routine, $error->message);
 $error = $error->next();
}
echo $map_image->saveWebImage();
 
?>

---------------------------------------------------------------------------------------------------------------------------------------------
This transmission is intended solely for the person or organisation to whom it is addressed.
It is confidential and may contain legally privileged information.
If you have received this transmission in error, you may not use, copy or distribute it.
Please advise us by return e-mail or by phoning 61 3 6235 8333 and immediately delete the transmission in its entirety.
We will meet your reasonable expenses of notifying us.
Despite our use of anti-virus software, Forestry Tasmania cannot guarantee that this transmission is virus-free.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20120706/17aa458e/attachment.htm>


More information about the MapServer-users mailing list