<html><body bgcolor="#FFFFFF"><div>What version? What happens if you close the layer between calls to queries?</div><div><br></div><div>Steve<br><br>Sent from my iPad</div><div><br>On Jul 4, 2011, at 11:15 AM, "Charlie Allgrove" <<a href="mailto:charlie.allgrove@connectionservices.com">charlie.allgrove@connectionservices.com</a>> wrote:<br><br></div><div></div><blockquote type="cite"><div><div class="WordSection1"><p class="MsoNormal">Hi<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">I have a shapefile containing almost 250k points in 3 cols (lat/long/sitetype). <o:p></o:p></p><p class="MsoNormal">I need to use PHP mapscript to query that file to tell me how many points of a given type are present in a given rectangle.<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">The script will either tell me the number of points in rectangle, OR points of a given type, but never both...<o:p></o:p></p><p class="MsoNormal">Unfortunately I'm not at liberty to post the datafile anywhere, but the gist of the PHP is here:<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal"><snip><o:p></o:p></p><p class="MsoNormal">$lstrMapPath = "/path/to/shapefile";<o:p></o:p></p><p class="MsoNormal">$lstrOutput = "";<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">$lobjMap = ms_newMapObj($lstrMapPath);<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">$lobjLayer = $lobjMap->getLayerByName("layer1");<o:p></o:p></p><p class="MsoNormal"> if(!$lobjLayer) {<o:p></o:p></p><p class="MsoNormal">                exit; // errors handled elsewhere<o:p></o:p></p><p class="MsoNormal">}<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">$lobjLayer->open();<o:p></o:p></p><p class="MsoNormal">/* THIS WORKS */<o:p></o:p></p><p class="MsoNormal">@$lobjLayer->queryByRect($lobjRect);<o:p></o:p></p><p class="MsoNormal">$lintCount = $lobjLayer->getNumResults();<o:p></o:p></p><p class="MsoNormal">    <o:p></o:p></p><p class="MsoNormal">/* THIS ALSO WORKS - BUT NOT IF THE queryByRect() is enabled above */<o:p></o:p></p><p class="MsoNormal">/*<o:p></o:p></p><p class="MsoNormal">@$lobjLayer->queryByAttributes('sitetype','8',MS_MULTIPLE);<o:p></o:p></p><p class="MsoNormal">$lintCount = $lobjLayer->getNumResults();<o:p></o:p></p><p class="MsoNormal">*/<o:p></o:p></p><p class="MsoNormal">$lstrOutput = "layer".$k.":".$lintCount;<o:p></o:p></p><p class="MsoNormal">$lobjLayer->close();<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">echo $lstrOutput;<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal"> </snip><o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">Any pointers would be gratefully received!<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">Cheers<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">Charlie<span style="font-size:10.5pt;font-family:Consolas"><o:p></o:p></span></p><p class="MsoNormal"><o:p> </o:p></p></div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>mapserver-users mailing list</span><br><span><a href="mailto:mapserver-users@lists.osgeo.org">mapserver-users@lists.osgeo.org</a></span><br><span><a href="http://lists.osgeo.org/mailman/listinfo/mapserver-users">http://lists.osgeo.org/mailman/listinfo/mapserver-users</a></span><br></div></blockquote></body></html>