Skip to content

Commit aae74ff

Browse files
committed
[OGR] Correctly extract BBOX from a Intersects() filter. Complementary fix to f53fd78
1 parent 1df03be commit aae74ff

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

mapogr.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3268,14 +3268,15 @@ static msExprNode* BuildExprTree(tokenListNodeObjPtr node,
32683268
{
32693269
if( node->next && node->next->token == '(' )
32703270
{
3271+
int node_token = node->token;
32713272
msExprNode* subExpr = BuildExprTree(node->next->next, &node,
32723273
nParenthesisLevel + 1);
32733274
if( subExpr == NULL )
32743275
{
32753276
goto fail;
32763277
}
32773278
msExprNode* newNode = new msExprNode;
3278-
newNode->m_nToken = node->token;
3279+
newNode->m_nToken = node_token;
32793280
if( subExpr->m_nToken == 0 )
32803281
{
32813282
newNode->m_aoChildren = subExpr->m_aoChildren;
@@ -3393,6 +3394,8 @@ static msExprNode* BuildExprTree(tokenListNodeObjPtr node,
33933394

33943395
/**********************************************************************
33953396
* msOGRExtractTopSpatialFilter()
3397+
*
3398+
* Recognize expressions like "Intersects([shape], wkt) == TRUE [AND ....]"
33963399
**********************************************************************/
33973400
static int msOGRExtractTopSpatialFilter( msOGRFileInfo *info,
33983401
const msExprNode* expr,
@@ -3401,6 +3404,15 @@ static int msOGRExtractTopSpatialFilter( msOGRFileInfo *info,
34013404
if( expr == NULL )
34023405
return MS_FALSE;
34033406

3407+
if( expr->m_nToken == MS_TOKEN_COMPARISON_EQ &&
3408+
expr->m_aoChildren.size() == 2 &&
3409+
expr->m_aoChildren[1]->m_nToken == MS_TOKEN_LITERAL_BOOLEAN &&
3410+
expr->m_aoChildren[1]->m_dfVal == 1.0 )
3411+
{
3412+
return msOGRExtractTopSpatialFilter(info, expr->m_aoChildren[0],
3413+
pSpatialFilterNode);
3414+
}
3415+
34043416
if( expr->m_nToken == MS_TOKEN_COMPARISON_INTERSECTS &&
34053417
expr->m_aoChildren.size() == 2 &&
34063418
expr->m_aoChildren[1]->m_nToken == MS_TOKEN_LITERAL_SHAPE )

0 commit comments

Comments
 (0)