<br><div style="visibility: hidden; display: inline;" id="avg_ls_inline_popup"></div><style type="text/css">#avg_ls_inline_popup {  position:absolute;  z-index:9999;  padding: 0px 0px;  margin-left: 0px;  margin-top: 0px;  width: 240px;  overflow: hidden;  word-wrap: break-word;  color: black;  font-size: 10px;  text-align: left;  line-height: 13px;}</style><br>
<div class="gmail_quote">2010/3/17 Frank Warmerdam <span dir="ltr">&lt;<a href="mailto:warmerdam@pobox.com">warmerdam@pobox.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
I wrote a small test script (msautotest/mspython/ogr_query.py) and I<br>
did not observe any problems with resultsGetShape() and queryByRect().<br>
What problem were you expecting?<div class="im"><br></div></blockquote><div><br>Frank,<br><br>I&#39;ve looked into the problem in a bit more detail and it seems I have the problem with the following test case.<br><br>1. Use queryByRect in a layer to retrieve some shapes into the result set.<br>
2. Use drawQuery (MS_HILITE) in a larger area (covering a larger set of the features from the layer) and notice that different features are highlighed not the features matching with the previous query.<br><br><br>Actually we use the following code in msDrawQueryLayer to draw the background before the selected features are drawn:<br>
<br>if(map-&gt;querymap.style == MS_NORMAL || map-&gt;querymap.style == MS_HILITE) {<br>    layerObj tmp_layer;<br><br>    if(initLayer(&amp;tmp_layer, map) == -1) <br>        return(MS_FAILURE);<br><br>    if (msCopyLayer(&amp;tmp_layer, layer) != MS_SUCCESS)<br>
        return(MS_FAILURE);<br><br>    status = msDrawLayer(map, &amp;tmp_layer, image);<br><br>    freeLayer(&amp;tmp_layer);<br><br>    if(map-&gt;querymap.style == MS_NORMAL || status != MS_SUCCESS) return(status);<br>
  }<br><br><br>It appears that however we use a different layer instance for the drawing, we reuse the previous connection and the same OGR layer reference is used for drawing the background features and then the query results. In this regard, drawing the  the background will cause the feature indexes in the result set go out of sync with the underlying layer.<br>
<br>Best regards,<br><br>Tamas<br><br><br><br></div></div><br>