Heres some code I wrote in Ruby on Rails for a dynamic map:<br>&nbsp; def dynamic_map<br>&nbsp;&nbsp;&nbsp; # ====================<br>&nbsp;&nbsp;&nbsp; # Grab values from the form<br>&nbsp;&nbsp;&nbsp; # ====================<br>&nbsp;&nbsp;&nbsp; @minx_d = params[:minx_d].to_f # default extent values
<br>&nbsp;&nbsp;&nbsp; @miny_d = params[:miny_d].to_f<br>&nbsp;&nbsp;&nbsp; @maxx_d = params[:maxx_d].to_f<br>&nbsp;&nbsp;&nbsp; @maxy_d = params[:maxy_d].to_f<br>&nbsp;&nbsp;&nbsp; @minx_img = params[:minx_img].to_f # image coordinate values<br>&nbsp;&nbsp;&nbsp; @miny_img = params[:miny_img].to_f
<br>&nbsp;&nbsp;&nbsp; @maxx_img = params[:maxx_img].to_f<br>&nbsp;&nbsp;&nbsp; @maxy_img = params[:maxy_img].to_f<br>&nbsp;&nbsp;&nbsp; @pin = params[:pin].to_s # parcel identification number<br>&nbsp;&nbsp;&nbsp; @minx = params[:minx].to_f # current extent values<br>&nbsp;&nbsp;&nbsp; @miny = params[:miny].to_f
<br>&nbsp;&nbsp;&nbsp; @maxx = params[:maxx].to_f<br>&nbsp;&nbsp;&nbsp; @maxy = params[:maxy].to_f<br>&nbsp;&nbsp;&nbsp; @zoomfactor = params[:zoomfactor].to_i # -2 is zoomout, -1 or 1 is recenter, 2 is zoomin (Integer value).<br>&nbsp;&nbsp;&nbsp; @tool = params[:tool].to_s # This should match the &#39;getToolbox()&#39; JavaScript function.
<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; # ==============<br>&nbsp;&nbsp;&nbsp; # Initialize MapObj<br>&nbsp;&nbsp;&nbsp; # ==============<br>&nbsp;&nbsp;&nbsp; @map = MapObj.new session[&#39;mapfile&#39;]<br>&nbsp;&nbsp;&nbsp; @map.setExtent @minx, @miny, @maxx, @maxy<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; # ====================
<br>&nbsp;&nbsp;&nbsp; # Paint the selection yellow.<br>&nbsp;&nbsp;&nbsp; # ====================<br>&nbsp;&nbsp;&nbsp; layer = @map.getLayerByName &#39;parcel_poly&#39;<br>&nbsp;&nbsp;&nbsp; layer.classitem = &#39;PIN&#39;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; class_poly_hilite = layer.getClass 0<br>&nbsp;&nbsp;&nbsp; 
layer.insertClass class_poly_hilite<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; class_poly_hilite.name = &#39;poly_hilite&#39;<br>&nbsp;&nbsp;&nbsp; class_poly_hilite.setExpression @pin.strip<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; class_poly_hilite_style = class_poly_hilite.getStyle 0<br>

&nbsp;&nbsp;&nbsp; class_poly_hilite_style.color<div id="1f0w" class="ArwC7c ckChnd">.setRGB 250, 250, 125<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; # =============<br>&nbsp;&nbsp;&nbsp; # Add a push-pin.<br>&nbsp;&nbsp;&nbsp; # =============<br>&nbsp;&nbsp;&nbsp; layer_pt = @map.getLayerByName &#39;parcel_point&#39;
<br>&nbsp;&nbsp;&nbsp; layer_pt.classitem = &#39;pin&#39;
<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; class_pt_hilite = layer_pt.getClass 0<br>&nbsp;&nbsp;&nbsp; layer_pt.insertClass class_pt_hilite<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; class_pt_hilite.name = &#39;pt_hilite&#39;<br>&nbsp;&nbsp;&nbsp; class_pt_hilite.setExpression @pin.strip<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; class_pt_hilite_style = class_pt_hilite.getStyle 0
<br>&nbsp;&nbsp;&nbsp; class_pt_hilite_style.size = 32<br>&nbsp;&nbsp;&nbsp; class_pt_hilite_style.setSymbolByName @map, &#39;pushpin&#39;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; # ===================================<br>&nbsp;&nbsp;&nbsp; # Apply the zoom (aka change the extent value).<br>
&nbsp;&nbsp;&nbsp; # ===================================
<br>&nbsp;&nbsp;&nbsp; if @minx_img != @maxx_img &amp;&amp; @miny_img != @maxy_img<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apply_box @map, @minx_img, @miny_img, @maxx_img, @maxy_img<br>&nbsp;&nbsp;&nbsp; elsif @tool == &#39;fullview&#39;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @map.setExtent @minx_d, @miny_d, @maxx_d, @maxy_d
<br>&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apply_zoom @map, @zoomfactor, @minx_img, @miny_img<br>&nbsp;&nbsp;&nbsp; end<br><br>&nbsp;&nbsp;&nbsp; # Set the new extent values to be sent back to the form.<br>&nbsp;&nbsp;&nbsp; @minx = @map.extent.minx.to_f<br>&nbsp;&nbsp;&nbsp; @miny = @map.extent.miny.to_f

<br>&nbsp;&nbsp;&nbsp; @maxx = @map.extent.maxx.to_f<br>&nbsp;&nbsp;&nbsp; @maxy = @map.extent.maxy.to_f<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; render :partial =&gt; &#39;map_image&#39;<br>&nbsp; end<br><br>Here&#39;s a snippet from my mapfile:<br>&nbsp; LAYER #-- Parcels Polygon Layer
<br>&nbsp;&nbsp;&nbsp; NAME parcel_poly<br>&nbsp;&nbsp;&nbsp; DATA parcelpydoug04<br>&nbsp;&nbsp;&nbsp; MAXSCALE 72000<br>&nbsp;&nbsp;&nbsp; STATUS DEFAULT<br>&nbsp;&nbsp;&nbsp; TYPE POLYGON<br>&nbsp;&nbsp;&nbsp; TRANSPARENCY 50<br>&nbsp;&nbsp;&nbsp; CLASS<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NAME &quot;Parcels&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COLOR -1 -1 -1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OVERLAYOUTLINECOLOR 250 0 0
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OVERLAYSYMBOL &#39;circle&#39;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OVERLAYSIZE 2<br>&nbsp;&nbsp;&nbsp; END<br>&nbsp; END #-- Parcels Polygon Layer<br><br>&nbsp; LAYER #-- Parcels Point Layer<br>&nbsp;&nbsp;&nbsp; NAME parcel_point<br><br>&nbsp;&nbsp;&nbsp; CONNECTIONTYPE postgis
<br>&nbsp;&nbsp;&nbsp; CONNECTION &quot;user=&lt;username_goes_here&gt; dbname=experiments host=localhost port=5432 password=&lt;password_goes_here&gt;&quot;
<br>&nbsp;&nbsp;&nbsp; DATA &quot;wkb_geometry from mn_douglas_parcelpoints&quot;<br><br>&nbsp;&nbsp;&nbsp; MAXSCALE 72000<br>&nbsp;&nbsp;&nbsp; STATUS DEFAULT<br>&nbsp;&nbsp;&nbsp; TYPE POINT<br>&nbsp;&nbsp;&nbsp; #-- TOLERANCEUNITS miles<br>&nbsp;&nbsp;&nbsp; #-- TOLERANCE 10<br>&nbsp;&nbsp;&nbsp; TRANSPARENCY 50<br>&nbsp;&nbsp;&nbsp; CLASS
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NAME &quot;Parcel Point&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COLOR 0 250 0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SYMBOL &#39;circle&#39;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SIZE 10<br>&nbsp;&nbsp;&nbsp; END<br>&nbsp; END #-- Parcels Point Layer<br><br>In
version 4, the parcel lines and points are drawn. The code written
above highlights the selected parcel and changes the point graphic to a
push-pin.
<br>In version 5, the parcel lines and points are not drawn. Only the
highlighted parcel is drawn. Why? How do I write my code so that it
displays the defaults from the mapfile as well as the newly defined
class? I&#39;m stumped.
<br><br>Any comments or suggestions appreciated.<br>~Brant</div>