<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2>Abe:</FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff size=2>Thanks 
again for the help.  I ended up getting the highligting to work -- with 
your suggestions, though I thought I would be smart and change the QUERYMAP 
style to selected - not so smart, after reading the STYLE options for 
QUERYMAP it highlighted the found parcels just as it did not found 
parcels as defined in the layer definition... so for quite awhile I did not 
see that I had found the 2 shapes it has said it found (the selected sytle 
option defaults to layer queried definition - and thus it just rendered the 
green line as it did for the other parcels not found in the query, but as found 
in the layer itself).  Anyway, changed that back to hilight as you said and 
it worked fine.</FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff size=2>I 
searched the emails pretty hard to find a way to render the highlighted shapes a 
little better, Ken from DNR was the only post I could 
find.</FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff size=2>Then I 
thought about it some more and derived a much simpiler solution ... 
set up a new layer, create a class with an expression, then send in the 
expression variable or set the expression in PHP however you choose to operate 
(i.e. cgi or scripting).  i.e.  </FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2>CLASSITEM ID</FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2>CLASS</FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff size=2>  
EXPRESSION /%list%/     #NOTE var set in via CGI would 
be list -->  ...&list=1|2|3&..</FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2>or</FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2>$new_expression = "/".$list."/";</FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2>$class->setexpression($new_expression);</FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005></SPAN><SPAN class=343304313-27012005><FONT 
face=Arial color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff size=2>No 
querymap needed and much better control of layer formatting.  
Additionally, I can continue to pass the variable $list around (containing list 
of parcels) and then let the user browse my map with the list of parcels 
highlighted and peek and poke at other data.  And of course add to the list 
or cull from the list.</FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff size=2>Thanks 
again for the help of this tremendous list!</FONT></SPAN></DIV>
<DIV><SPAN class=343304313-27012005><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><FONT size=2><SPAN class=343304313-27012005>S</SPAN>teven Lehr<BR>Assistant 
Professor<BR>Freshmen Program<BR>College of Engineering<BR>Embry-Riddle 
Aeronautical University (LB159)<BR>600 S. Clyde Morris Blvd.<BR>Daytona Beach, 
FL 32114-3900<BR>386-226-7740</FONT> </DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
  size=2>-----Original Message-----<BR><B>From:</B> UMN MapServer Users List 
  [mailto:MAPSERVER-USERS@LISTS.UMN.EDU]<B>On Behalf Of </B>Abe 
  Gillespie<BR><B>Sent:</B> Sunday, January 23, 2005 2:39 AM<BR><B>To:</B> 
  MAPSERVER-USERS@LISTS.UMN.EDU<BR><B>Subject:</B> Re: [UMN_MAPSERVER-USERS] PHP 
  Highlight list of Parcels Passed In<BR><BR></FONT></DIV>Um ... yeah, it's late 
  and I'm tired. Please replace "ampersand" with "at symbol" at the appropriate 
  place. :)<BR><BR>-Abe<BR><BR>On Jan 23, 2005, at 1:44 AM, Abe Gillespie 
  wrote:<BR><BR>
  <BLOCKQUOTE><?smaller>Ok, since this list has been so helpful and generous 
    to me in the past, here is an exhaustive example. I hope this will finally 
    get you going. Disclaimer: I'm doing this all from memory and w/o testing so 
    there may be a few errors.<BR><BR>Setup a map file like this:<BR><BR>MAP<BR><?/smaller><TT><?x-tad-bigger>NAME "Parcel 
    Query"<BR>STATUS on<BR>EXTENT xmin ymin xmax ymax<BR>SIZE 300 
    300<BR>SHAPEPATH "/data_path"<BR>IMAGETYPE png<BR>IMAGECOLOR 255 255 255<?/x-tad-bigger></TT></BLOCKQUOTE>
  <BLOCKQUOTE><?smaller><BR><BR><?/smaller><TT><?x-tad-bigger>QUERYMAP<BR>STYLE 
    hilite<BR>COLOR 255 0 0<BR>END<?/x-tad-bigger></TT></BLOCKQUOTE>
  <BLOCKQUOTE><?smaller><BR><BR>LAYER<BR>NAME "Parcels"<BR>DATA 
    "parcels"<BR>CLASS<BR>OUTLINECOLOR 0 255 0<BR>END<BR>TEMPLATE 
    "x"<BR>END<BR>END<BR><BR>Setup a web page like 
    this:<BR><BR><html><BR><head><BR><?<BR>$parcel_ids = 
    "1|2|3|4|5";<BR><BR>if (PHP_OS == "WINNT" || PHP_OS == 
    "WIN32")<BR>dl("php_mapscript.dll");<BR>else<BR>dl("php_mapscript.so");<BR><BR>$map 
    = ms_newMapObj("parcels.map");<BR>$layer = 
    $map->getLayerByName("parcels");<BR><BR>// 
    Query.<BR>$layer->queryByAttributes("", "/".$parcel_ids."/", 
    MS_MULTIPLE);<BR>// If you want to avoid errors when no matches are found 
    use the ampersand<BR>// in the above statement like this: 
    @$layer->queryByAttributes();<BR><BR>// Render an image and get its 
    URL.<BR>$img = $map->drawQuery();<BR>$url = $img->saveWebImage(MS_PNG, 
    1, 1, 
    0);<BR>$img->free();<BR>?><BR></head><BR><body><BR><img 
    src="<? echo $url; ?>" /><BR><?<BR>if 
    ($layer->getNumResults() > 0)<BR>echo $layer->getNumResults()." 
    parcels found.";<BR>else<BR>echo "No parcels 
    found.";<BR>?><BR></body><BR></html><BR><BR>Now that I look 
    at it, the last thing you may have been missing was the mapObj::queryMap() 
    method. Anyhow, I hope this helps.<BR><BR>-Abe<BR><?/smaller><BR>On Jan 22, 
    2005, at 10:07 PM, Steve Lehr wrote:<BR><BR>
    <BLOCKQUOTE>Abe:<BR><BR>I appreciate the help, still not getting it 
      though. I'm wondering if I need<BR>to draw out the map after rendering? 
      I've sceen other posts but no real<BR>solutions...<BR><BR>I'll start from 
      scratch rather then trying to reuse something I have. If<BR>anyone else 
      has a more complete example I'd really appreciate seeing 
      it.<BR><BR>Thanks<BR><BR>Steven Lehr<BR>Assistant Professor<BR>Freshmen 
      Program<BR>College of Engineering<BR>Embry-Riddle Aeronautical University 
      (LB159)<BR>600 S. Clyde Morris Blvd.<BR>Daytona Beach, FL 
      32114-3900<BR>386-226-7740<BR><BR>-----Original Message-----<BR>From: UMN 
      MapServer Users List [mailto:MAPSERVER-USERS@LISTS.UMN.EDU]On<BR>Behalf Of 
      Abe Gillespie<BR>Sent: Saturday, January 22, 2005 8:22 PM<BR>To: 
      MAPSERVER-USERS@LISTS.UMN.EDU<BR>Subject: Re: [UMN_MAPSERVER-USERS] PHP 
      Highlight list of Parcels Passed<BR>In<BR><BR><BR>Something else I 
      noticed. You shouldn't even have to setup a separate<BR>layer to show 
      queried parcels (though there are ways to do this). I<BR>suggest starting 
      out with one layer that renders queried and<BR>non-queried parcels at the 
      same time. Once you get the hang of that<BR>then you can do two different 
      layers (if you still even want to). Make<BR>the layer like 
      this:<BR><BR>LAYER<BR>NAME "parcels"<BR>DATA "parcels"<BR>STATUS 
      on<BR>TYPE polygon<BR>CLASS<BR>OUTLINECOLOR 0 255 0<BR>END<BR>TEMPLATE "x" 
      # Must be present to query on (though "x" means<BR>absolutely 
      nothing).<BR>END<BR><BR>The above layer will render all your parcels green 
      outline with hollow<BR>fill. Then when you use the PHP code to query it 
      will render your<BR>queried parcels red. This assumes you have QUERYMAP 
      setup correctly.<BR><BR>-Abe<BR><BR>On Jan 22, 2005, at 7:12 PM, Steve 
      Lehr wrote:<BR><BR>
      <BLOCKQUOTE>Abe I've never used the QUERY MAP before, I tried putting it 
        in the<BR>layer<BR>and it did not like that?<BR><BR>My initial layer 
        looks like:<BR><BR>I changed my code to pass Pipe delimited.<BR><BR>But 
        I'm not quite certian I'm still getting what I need to do to 
        my<BR>.map.<BR><BR>Thanks for the help..below is the layer repeated my 
        EXPRESSION is<BR>trashed I<BR>realize.<BR><BR>
        <BLOCKQUOTE>LAYER<BR>NAME "selected_parcels"<BR>DATA parcels<BR>STATUS 
          DEFAULT<BR>TYPE POLYGON<BR>CLASSITEM QPID<BR>CLASS<BR>EXPRESSION 
          "/%parcels%/"<BR>COLOR 255 0 
        0<BR>END<BR>END<BR></BLOCKQUOTE><BR><BR>Steven Lehr<BR>Assistant 
        Professor<BR>Freshmen Program<BR>College of Engineering<BR>Embry-Riddle 
        Aeronautical University (LB159)<BR>600 S. Clyde Morris Blvd.<BR>Daytona 
        Beach, FL 32114-3900<BR>386-226-7740<BR><BR>-----Original 
        Message-----<BR>From: UMN MapServer Users List 
        [mailto:MAPSERVER-USERS@LISTS.UMN.EDU]On<BR>Behalf Of Abe 
        Gillespie<BR>Sent: Saturday, January 22, 2005 7:05 PM<BR>To: 
        MAPSERVER-USERS@LISTS.UMN.EDU<BR>Subject: Re: [UMN_MAPSERVER-USERS] PHP 
        Highlight list of Parcels Passed<BR>In<BR><BR><BR>For the red you need 
        to setup the QUERYMAP. For the PHP it will be<BR>something like 
        this:<BR><BR>$target = 
        use_appropriate_string_func_to_conver_semi_to_pipe($parcels);<BR>// 
        $target should look like "1|2|3|4" ... where the numbers are 
        the<BR>IDs.<BR>$layer = 
        $map->getLayerByName("parcels");<BR>$layer->queryByAttributes("parcel_id_field", 
        "/".$target."/",<BR>MS_MULTIPLE);<BR><BR>Also, don't forget to add the 
        TEMPLATE "x" tag in your LAYER<BR>definition.<BR><BR>I'm not a RegEx 
        expert, so someone please put me in check if I'm<BR>leading Steven 
        astray.<BR><BR>-Abe<BR><BR>On Jan 22, 2005, at 6:37 PM, Steve Lehr 
        wrote:<BR><BR>
        <BLOCKQUOTE>I'm trying to write some PHP that I can send extents and 
          list of<BR>parcels to<BR>get it to highlight the parcels.<BR><BR>I'd 
          like to highlight all the found parcels in RED.<BR><BR>My php gets a 
          variable by post called parcels and contains at this<BR>time a<BR>semi 
          colon delimited list of ids in the attribute column QPID of 
          the<BR>parcels.dbf.<BR><BR>LAYER<BR>NAME "selected_parcels"<BR>DATA 
          parcels<BR>STATUS DEFAULT<BR>TYPE POLYGON<BR>CLASSITEM 
          QPID<BR>CLASS<BR>EXPRESSION "/%parcels%/"<BR>COLOR 255 0 
          0<BR>END<BR>END<BR><BR><BR>I've got my extents. I've got the list of 
          parcels. Now I want to<BR>highlight<BR>the list of parcels with 
          something like the below. But I have to do<BR>something in php to take 
          that ; delimited list and the turn on all the<BR>matching attributes. 
          (I belive its a QUERYMAP with MULTIPLE_SELECT)<BR>but I'm<BR>having 
          trouble getting my brain around what I need to code - 
          might<BR>someone<BR>have a sample.<BR><BR>Thanks<BR><BR>Steven 
          Lehr<BR>Assistant Professor<BR>Freshmen Program<BR>College of 
          Engineering<BR>Embry-Riddle Aeronautical University (LB159)<BR>600 S. 
          Clyde Morris Blvd.<BR>Daytona Beach, FL 
          32114-3900<BR>386-226-7740<BR><BR></BLOCKQUOTE><BR></BLOCKQUOTE><BR></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>