[postgis-users] PostGIS 0.7.5 returning '0' for shape indexes
Paul Ramsey
pramsey at refractions.net
Fri Jun 13 09:49:08 PDT 2003
This is a bug which has been reported before, but we have not looked at
it seriously. It would be good if someone could make it easy for us by
giving us a sample data table and a sample PHP script which reduce the
problem to its bare minimum.
Thanks,
Paul
Mike Leahy wrote:
> Now that I have PostGIS 0.7.5 running in the Cygwin environment, the
> GMapFactory project I am using is able to display the layers that I have
> loaded into the database without any trouble. However, when I query the
> layers, I get the following error from the PHP script:
>
> Fatal error: Assertion failed, Could not set shape values: 0, 0 in
> C:\edumap\www\Independencia\wrapper\map_query.php on line 530
>
> Line 530 in this case is labelled below, in the processQuery function.
> I think the problem here is that for some reason the query is returning
> a bunch of shapes with 0 or null spatial index. I tried making an if
> statement that skips the code in the loop if the spatial index is not
> greater than zero, and I just ended up with some other error (i.e.,
> there were no results to be displayed).
>
> I'm not sure if this is a problem with the GMapFactory project,
> MapScript, or PostGIS. It seems that for the time being, I'm going to
> have to stick with the beta version of PostGIS. I tried creating
> indexes on the GID fields for the spatial tables, but that doesn't seem
> to have any affect.
>
> Any suggestions for this one?
>
> Many thanks,
> Mike
>
> ________________________________________________________________________
> ____
>
> function processQuery( $oLayer )
> {
> // log entry
> $this->logFuncStart( LOG_VERBOSE, "processQuery() starting" );
>
> // create map object
> $oMap = $this->oSession->oMap;
>
> // initialize variables
> $axResults = array();
>
> // get the number of results
> $nNumResults = intval($oLayer->getNumResults());
>
> // return if no results
> if ( $nNumResults < 1 )
> {
> // log exit
> $this->logFuncEnd( LOG_ALL, "processQuery() done" );
> return "No results found for
> layer[".$oLayer->name."].";
> }
>
> // open the layer to make the shape properties available
> if ( strpos( strtoupper( ms_GetVersion() ), "VERSION
> 3.6") > 0 )
> $oLayer->open( $oMap->shapepath );
> else
> $oLayer->open();
>
> // add element to results array for each result row
> for ($i=0; $i < $nNumResults; $i++)
> {
> // get next shape row
> $oResult = $oLayer->getResult($i);
> Line 530: $oShape = $oLayer->getShape($oResult->tileindex,
> $oResult->shapeindex);
>
> // push the row array onto the results array
> $aTmp = $oShape->values;
> $aTmp = array_merge( $aTmp ,
> array("SHAPE_INDEX" => $oResult->shapeindex,
> "TILE_INDEX" => $oResult->tileindex,
> "LAYER_INDEX" => $oLayer->index ) );
> array_push( $axResults, $aTmp );
>
> // end for loop
> }
>
> // close the layer
> $oLayer->close();
>
> $this->log( LOG_VERBOSE, "Results:
> ".implode($axResults));
>
> // log exit
> $this->logFuncEnd( LOG_ALL, "processQuery() done" );
>
> // return the array
> return $axResults;
>
> // end processQuery function
> }
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
--
__
/
| Paul Ramsey
| Refractions Research
| Email: pramsey at refractions.net
| Phone: (250) 885-0632
\_
More information about the postgis-users
mailing list