<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Menlo;
        panose-1:2 11 6 9 3 8 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
p.p1, li.p1, div.p1
        {mso-style-name:p1;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.5pt;
        font-family:Menlo;
        color:black;}
span.s1
        {mso-style-name:s1;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
p.p2, li.p2, div.p2
        {mso-style-name:p2;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.5pt;
        font-family:Menlo;
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:749349534;
        mso-list-type:hybrid;
        mso-list-template-ids:728512796 -528714042 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.75in;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:1.25in;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:1.75in;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:2.25in;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:2.75in;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:3.25in;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:3.75in;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:4.25in;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:4.75in;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I am trying to query a raster at 2 points in a single php file using php mapscript.  <o:p></o:p></span></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoListParagraph" style="margin-left:.25in;mso-list:l0 level1 lfo1"><span style="font-size:11.0pt">I create a map object.<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:.25in;mso-list:l0 level1 lfo1"><span style="font-size:11.0pt">I get a layer object from my raster<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:.25in;mso-list:l0 level1 lfo1"><span style="font-size:11.0pt">I create 2 point objects.<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:.25in;mso-list:l0 level1 lfo1"><span style="font-size:11.0pt">I query the raster layer object with queryByPoint using point 1 and it is successful, except that it gives me 4 results even though I pass in MS_SINGLE.<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:.25in;mso-list:l0 level1 lfo1"><span style="font-size:11.0pt">I query the raster layer object a second time using queryByPoint with the second point object I created and the query fails.<o:p></o:p></span></li></ol>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">My questions:<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in"><span style="font-size:11.0pt">Shouldn’t this be possible? If so, what am I doing wrong?
<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:11.0pt">Why are 4 points returned when I pass in MS_SINGLE?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I have tried using MapScript 7.2.1, 6.4.4 and 7.0.7 with the same results.<o:p></o:p></span></p>
<p class="p1"><span class="s1">MapScript</span><o:p></o:p></p>
<p class="p2"><o:p> </o:p></p>
<p class="p1"><span class="s1">MapServer Version => MapServer version 7.2.1 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=ICONV SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT
 SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE</span><o:p></o:p></p>
<p class="p1"><span class="s1">PHP MapScript Version => ($Revision$ $Date$)</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:8.5pt;font-family:Menlo;color:black">MapScript<o:p></o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:8.5pt;font-family:Menlo;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:8.5pt;font-family:Menlo;color:black">MapServer Version => MapServer version 7.0.7 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=WMS_SERVER
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE<o:p></o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:8.5pt;font-family:Menlo;color:black">PHP MapScript Version => ($Revision$ $Date$)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:8.5pt;font-family:Menlo;color:black">MapScript<o:p></o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:8.5pt;font-family:Menlo;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:8.5pt;font-family:Menlo;color:black">MapServer Version => MapServer version 6.4.4 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=WMS_SERVER
 SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE<o:p></o:p></span></p>
<p class="MsoNormal" style="background:white"><span style="font-size:8.5pt;font-family:Menlo;color:black">PHP MapScript Version => ($Revision$ $Date$)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">The code I am using is below.  I have set up a test script and sample data here
<a href="http://swc.nd.gov:8000/_Usd8Y3s4N9pgkR">http://swc.nd.gov:8000/_Usd8Y3s4N9pgkR</a>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                The test can be run using php query.php 1 for the fail case. Running php query.php 2 is my work around using 2 map objects.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">$map = new mapObj($path."/simple.map");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">$qlay = $map->getLayerByName("qLayer");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">$pq = ms_newPointObj();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">$pq->setXY(567231,5086977); // 1298.609<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">$pq2 = ms_newPointObj();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">$pq2->setXY(566445,5086590); // 1304.3274<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">$rastquery=$qlay->queryByPoint($pq,MS_SINGLE,1);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">if($rastquery == MS_SUCCESS){<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                error_log("Number of results from 1st query: ".$qlay->getNumResults()."\nShouldn't there be only 1 result since MS_SINGLE is passed?");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                if($qlay->getNumResults()>0){<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                $qlay->open();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                for ($i=0; $i < $qlay->getNumResults(); $i++) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                $rasresult = $qlay->getResult($i);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                if($rasresult === FALSE){<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                                error_log('No result '.$i);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                } else {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                                $rasshptemp = $qlay->getShape($rasresult);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                                error_log("Result $i = ".$rasshptemp->values['value_0']);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">} else {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                error_log('1st query failed');<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">$rastquery=$qlay->queryByPoint($pq2,MS_SINGLE,1);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">if($rastquery == MS_SUCCESS){<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                error_log("Number of results from 1st query: ".$qlay->getNumResults()."\nShouldn't there be only 1 result since MS_SINGLE is passed?");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                if($qlay->getNumResults()>0){<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                // error_log("In rastquery");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                $qlay->open();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                for ($i=0; $i < $qlay->getNumResults(); $i++) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                $rasresult = $qlay->getResult($i);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                if($rasresult === FALSE){<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                                error_log('No result'.$i);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                } else {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                                $rasshptemp = $qlay->getShape($rasresult);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                                error_log("Result $i = ".$rasshptemp->values['value_0']);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                                }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">} else {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                error_log('2nd query failed!');<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">break;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Results<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="p1"><span class="s1">php query.php 1<o:p></o:p></span></p>
<p class="p1"><o:p> </o:p></p>
<p class="p1"><span class="s1">Number of results from 1st query: 4</span><o:p></o:p></p>
<p class="p1"><span class="s1">Shouldn't there be only 1 result since MS_SINGLE is passed?</span><o:p></o:p></p>
<p class="p1"><span class="s1">Result 0 = 1298.5105</span><o:p></o:p></p>
<p class="p1"><span class="s1">Result 1 = 1298.5105</span><o:p></o:p></p>
<p class="p1"><span class="s1">Result 2 = 1298.5105</span><o:p></o:p></p>
<p class="p1"><span class="s1">Result 3 = 1298.5105</span><o:p></o:p></p>
<p class="p1"><span class="s1">[Thu Dec 13 10:17:07 2018].185483 msQueryByPoint(): Search returned no results. No matching record(s) found.</span><o:p></o:p></p>
<p class="p1"><span class="s1">PHP Warning:</span><span class="apple-converted-space"> 
</span><span class="s1">layerObj::queryByPoint(): [MapServer Error]: msQueryByPoint(): No matching record(s) found.</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space"> </span><span class="s1">in /Volumes/Data/WebServer/fris/php/test/query.php on line 36</span><o:p></o:p></p>
<p class="p1"><span class="s1">2nd query failed!</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Any hints or help would be appreciated,
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Paul<o:p></o:p></span></p>
</div>
</body>
</html>