<div>Hi Mark, the problems is here</div>
<div>&nbsp;</div>
<div><font color="#1f497d">ActiveSelection.GetLayers</font></div>
<div><font color="#1f497d">returns nothing. That means ActiveSelection wasn&#39;t initialized? </font></div>
<div><font color="#1f497d">Could be the class php file doesn&#39;t process properly the posted xmlSelection....</font></div>
<div><font color="#1f497d">I really don&#39;t understand what is wrong... </font></div>
<div><br><br>&nbsp;</div>
<div><span class="gmail_quote">2007/7/13, Mark Pendergraft &lt;<a href="mailto:markp@meadgilman.com">markp@meadgilman.com</a>&gt;:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div lang="EN-US" vlink="purple" link="blue">
<div>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">Well first off, I would open the Map with the siteconnection.</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">After you create the new selection object with the XML selection like so:</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">Dim Selection as New MgSelection(Map, mapSelection)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">You then need to find out what layers are selected, then generate a filter for each layer.</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">Then you can use a featureReader to read the selected objects, and then your code can perform functions based off of the selection.</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">Here is an example function in VB (sorry, but I have to translate your guy's php all the time, so I don't feel that bad)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #4f6228">''''''''''''''''''''''''''' Begin Code '''''''''''''''''''''''''''''''''''''''''''</span><span style="FONT-SIZE: 11pt; COLOR: #1f497d"></span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">Function MakePolygonFromSelection(ByVal featureService As MgFeatureService, ByVal Map As MgMap, ByVal JobNo As String, ByVal XmlSel As String) As MgPropertyCollection</span>
</p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p style="TEXT-INDENT: 0.5in"><span style="FONT-SIZE: 11pt; COLOR: #4f6228">' Open the map with the XML selection that was passed through javascript</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim ActiveSelection As New MgSelection(Map, XmlSel)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #4f6228">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' Get the layers in the activeselection as a mgreadonlylayercollection</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim Layers As MgReadOnlyLayerCollection = ActiveSelection.GetLayers</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p style="TEXT-INDENT: 0.5in"><span style="FONT-SIZE: 11pt; COLOR: #4f6228">' I only want to use the selection if one object was selected…. If you wanted multiple objects, you would loop through the layers</span></p>
<p style="TEXT-INDENT: 0.5in"><span style="FONT-SIZE: 11pt; COLOR: #4f6228">' to find out which layers are selected.. then you could generate an array of strings containing the selections generated filter (like below)</span>
</p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not Layers.GetCount = 1 Then</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ErrorMessage = &quot;More than one object was selected&quot;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Return Nothing</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;Exit Function</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="FONT-SIZE: 11pt; COLOR: #4f6228">' Now get the layer from the selection </span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim Layer As MgLayer = Map.GetLayers.GetItem(Layers.Item(0).Name)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="FONT-SIZE: 11pt; COLOR: #4f6228">' Generate the selection filter for the layer, which you will use to get the selected objects on that layer
</span><span style="FONT-SIZE: 11pt; COLOR: #1f497d"></span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim selectionFilter As String = ActiveSelection.GenerateFilter(Layer, Layer.FeatureClassName)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="FONT-SIZE: 11pt; COLOR: #4f6228">' create a new mgFeatureQueryOptions and set the filter to the selection filter obtained from the active selection set
</span><span style="FONT-SIZE: 11pt; COLOR: #1f497d"></span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim queryOptions As New MgFeatureQueryOptions</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; queryOptions.SetFilter(selectionFilter)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p style="TEXT-INDENT: 0.5in"><span style="FONT-SIZE: 11pt; COLOR: #4f6228">' now create the feature reader, and set it to obtain the objects from the active selection (using the layer, and the query options created using the generatefilter command
</span><span style="FONT-SIZE: 11pt; COLOR: #1f497d"></span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim fr As MgFeatureReader = featureService.SelectFeatures(New MgResourceIdentifier(Layer.GetFeatureSourceId), Layer.GetFeatureClassName, queryOptions)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p style="TEXT-INDENT: 0.5in"><span style="FONT-SIZE: 11pt; COLOR: #4f6228">' read the first feature</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fr.ReadNext()</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="FONT-SIZE: 11pt; COLOR: #4f6228">'the rest of this code transfers the geometry from the selected feature to another feature source..</span>
</p>
<p><span style="FONT-SIZE: 11pt; COLOR: #4f6228">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' this is where you would insert your code to act upon the map features that were selected.</span><span style="FONT-SIZE: 11pt; COLOR: #1f497d"></span></p>

<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim Geom As MgByteReader = fr.GetGeometry(Layer.GetFeatureGeometryName)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim geometryProperty As New MgGeometryProperty(&quot;Geometry&quot;, Geom)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim JobNoProperty As New MgStringProperty(&quot;JobNo&quot;, JobNo)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Dim propertyCollection As New MgPropertyCollection</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; propertyCollection.Add(geometryProperty)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; propertyCollection.Add(JobNoProperty)</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fr.Close()</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fr.Dispose()</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="FONT-SIZE: 11pt; COLOR: #4f6228">' this is the end of the function… you will also want to save your map back to the user session should you update anything on it.
</span><span style="FONT-SIZE: 11pt; COLOR: #1f497d"></span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Return propertyCollection</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;&nbsp;&nbsp; End Function</span><span style="FONT-SIZE: 11pt; COLOR: #9bbb59"></span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #4f6228">''''''''''''''''''''''''''' End Code '''''''''''''''''''''''''''''''''''''''''''</span><span style="FONT-SIZE: 11pt; COLOR: #1f497d"></span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">Well, I hope that clears things up a bit.</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">-Mark Pendergraft</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<div style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
<p><b><span style="FONT-SIZE: 10pt">From:</span></b><span style="FONT-SIZE: 10pt"> <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:mapguide-users-bounces@lists.osgeo.org" target="_blank">mapguide-users-bounces@lists.osgeo.org
</a> [mailto:<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:mapguide-users-bounces@lists.osgeo.org" target="_blank">mapguide-users-bounces@lists.osgeo.org</a>] <b>On Behalf Of </b>Jorge Rubio<br><b>
Sent:</b> Friday, July 13, 2007 10:41 AM<span class="q"><br><b>To:</b> MapGuide Users Mail List<br></span><b>Subject:</b> Re: [mapguide-users] Problems with xmlSelection</span></p></div>
<div><span class="e" id="q_113c0f52d83fb4d1_3">
<p>&nbsp;</p>
<div>
<p>My problems begin before to show selection. $mgSelection is not initialized!</p></div>
<div>
<p><br>&nbsp;</p></div>
<div>
<p><span>2007/7/13, Scott Hameister &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:scotth@mpower-tech.com" target="_blank">scotth@mpower-tech.com</a>&gt;:</span> </p>
<div>
<div>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">The map needs to be saved and refreshed before a selection can show</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<div style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
<p><b><span style="FONT-SIZE: 10pt">From:</span></b><span style="FONT-SIZE: 10pt"> <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:mapguide-users-bounces@lists.osgeo.org" target="_blank">mapguide-users-bounces@lists.osgeo.org 
</a>[mailto:<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:mapguide-users-bounces@lists.osgeo.org" target="_blank">mapguide-users-bounces@lists.osgeo.org</a>] <b>On Behalf Of </b>Jorge Rubio<br><b>
Sent:</b> Friday, July 13, 2007 9:35 AM<br><b>To:</b> MapGuide Users Mail List<br><b>Subject:</b> [mapguide-users] Problems with xmlSelection</span></p></div>
<div>
<p>&nbsp;</p>
<div>
<p>Hi list</p></div>
<div>
<p>&nbsp;</p></div>
<div>
<p>I need to pass an xmlSlection to a php class in order to be used by a member function</p></div>
<div>
<p>&nbsp;</p></div>
<div>
<p>Using javascript I get xmlSelection</p></div>
<div>
<p>&nbsp;</p></div>
<div>
<p>var xmlSel = parent.parent.mapFrame.GetSelectionXML();<br>&nbsp;</p></div>
<div>
<p>I post the selection like this</p></div>
<div>
<p>&nbsp;</p></div>
<div>
<p>someParams + &quot;&amp;SELECTION=&quot; + encodeURIComponent(xmlSel);<br><br clear="all">I get the params at php class file like this</p></div>
<div>
<p>&nbsp;</p></div>
<div>
<p>$mgSessionId = ($_SERVER[&#39;REQUEST_METHOD&#39;] == &quot;POST&quot;)? $_POST[&#39;SESSION&#39;]: $_GET[&#39;SESSION&#39;];<br>$mapName = ($_SERVER[&#39;REQUEST_METHOD&#39;] == &quot;POST&quot;)? $_POST[&#39;MAPNAME&#39;]: $_GET[&#39;MAPNAME&#39;]; 
<br>$mapSelection = rawurldecode(($_SERVER[&#39;REQUEST_METHOD&#39;] == &quot;POST&quot;)? $_POST[&#39;SELECTION&#39;]: $_GET[&#39;SELECTION&#39;]);<br>&nbsp;</p></div>
<div>
<p>so $mapSelection is an XML string.</p></div>
<div>
<p>&nbsp;</p></div>
<div>
<p>Then, I need to get that selection</p></div>
<div>
<p>&nbsp;</p></div>
<div>
<p>$featureService = $this-&gt;site-&gt;CreateService(MgServiceType::FeatureService);<br>$resourceService = $this-&gt;site-&gt;CreateService(MgServiceType::ResourceService);</p>
<p>$map = new MgMap();<br>$map-&gt;Open($resourceService, $mapName);<br>$mgSelection = new MgSelection($map,$mapSelection);</p>
<p>None selection is created!!</p>
<p>What I&#39;m doing wrong?</p>
<p>Thanks in advance.</p></div>
<div>
<p><br>-- <br>Lic. Jorge Rubio </p></div></div></div></div>
<p style="MARGIN-BOTTOM: 12pt"><br>_______________________________________________<br>mapguide-users mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:mapguide-users@lists.osgeo.org" target="_blank">
mapguide-users@lists.osgeo.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://lists.osgeo.org/mailman/listinfo/mapguide-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/mapguide-users 
</a></p></div>
<p><br><br clear="all"><br>-- <br>Lic. Jorge Rubio </p></span></div></div></div><br>_______________________________________________<br>mapguide-users mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:mapguide-users@lists.osgeo.org">
mapguide-users@lists.osgeo.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://lists.osgeo.org/mailman/listinfo/mapguide-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/mapguide-users
</a><br><br></blockquote></div><br><br clear="all"><br>-- <br>Lic. Jorge Rubio