Selection and Zoom Problem

Markus Roth m.roth at gds-team.de
Wed Nov 8 08:54:38 EST 2006


Hello,
 
I have a problem with selections. In my .aspx  (VB) site I generate the selection string for the javascript. This works fine, but the feature is not highlighted and no properties are shown in the Properties frame!?! But in the statusbar the Info is shown that 1 feature is selected. I only use one layer that is based on sdf file.
When I push the Button „Zoom to selection“ after one feature is selected, the map always zooms to coordinates X: 0.0 ; Y: 0.0!
Has anyone an idea what is wrong?
 
This is a sample of a generated selection string:
<?xml version="1.0" encoding="UTF-8"?><FeatureSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FeatureSet-1.0.0.xsd"> <Layer id="e82e9c52-ffff-ffff-8000-000cf1ae97f8">  <Class id="SDF_2_Schema:sp_Lieg_flurstueck_F">   <ID>MTc2MQA=</ID>  </Class> </Layer></FeatureSet>
 
Here is my code:
 
Code from aspx.vb site:
 
Private Function SelectionOb(ByVal Filter As String, ByVal LayerName As String)
 
        Try
            MapGuideApi.MgInitializeWebTier("
 Path to webconfig.ini")
 
            '##
            Dim userInfo As New MgUserInformation(sessionID)
 
            '##
            Dim siteConnection As New MgSiteConnection()
            siteConnection.Open(userInfo)
 
            '##
            Dim resourceService As MgResourceService = siteConnection.CreateService(MgServiceType.ResourceService)
            Dim featureService As MgFeatureService = siteConnection.CreateService(MgServiceType.FeatureService)
            Dim renderingService As MgRenderingService = siteConnection.CreateService(MgServiceType.RenderingService)
 
            '##
            Dim MapDefID As New MgResourceIdentifier(mapDefinition)
            Dim Map As New MgMap()
            Dim mapname As String
            mapname = MapDefID.GetName()
            Map.Open(resourceService, mapname)
 
            '##
            Dim layers As MgLayerCollection = Map.GetLayers()
            Dim layer As MgLayer
            Dim layername1 As String = ""
            Dim i As Integer = 0
            Do Until layername1 = LayerName
                layer = layers.GetItem(i)
                layername1 = layer.GetName()
                i += 1
            Loop
 
            '##
            Dim query As New MgFeatureQueryOptions()
            query.SetFilter(Filter)
            Dim featureClassName As String = layer.GetFeatureClassName()
            Dim featureSource As MgResourceIdentifier = New MgResourceIdentifier(layer.GetFeatureSourceId())
            Dim features As MgFeatureReader = featureService.SelectFeatures(featureSource, featureClassName, query)
            Dim hasResult As Boolean = features.ReadNext()
            Dim Selection As MgSelection = New MgSelection(Map)
 
            Select Case features.GetPropertyType("Key")
                Case MgPropertyType.Int32
                    Selection.AddFeatureIdInt32(layer, featureClassName, features.GetInt32("Key"))
                Case MgPropertyType.String
                    Selection.AddFeatureIdString(layer, featureClassName, features.GetString("Key"))
            End Select
 
            selectiontext = Selection.ToXml()
            TextBox1.Text = selectiontext
            
            layer.ForceRefresh()
            Map.Save(resourceService)
 
            features.Close()
            query = Nothing
 
        Catch ex As Exception
            Label1.Text = ex.ToString
        End Try
    End Function
 
 
The javascript:
 
function Select(){
var seltext = '<%=selectiontext %>';
parent.parent.mapFrame.SetSelectionXML(seltext);
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20061108/727e651c/attachment.html


More information about the Mapguide-users mailing list