[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