banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Fri 20 May 2011 04:19

Gis-Student
Juste Inscrit !
Date d'inscription: 21 Dec 2010
Messages: 1

Affichage de sélection sur carte

Bonjour,

je suis entrain de développer une web mapping application sur VS2008 avec le serveur carto Arcgis SERVER 9.3
Lorsque je fais une requête attributaire sur les couches de la carte, je peux récuperer le nombre des features selectionnées dans un text box,  le problème c'est que le résultat de cette requête ne s'affiche pas sur la carte sur le champs, mais ne se fait qu'apres avoir arréter le debogage : donc lorsque je demarre le debogage une seconde fois, je vois sur la carte les features de la derniere requete qui sont selectionnés!!

Voilà, j'espere avoir bien expliqué mon problème, voici le code de la requête:

Code:

 Dim mapfunc As IMapFunctionality = Me.Map1.GetFunctionality(0)
        Dim ags_mr As ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapResourceLocal
        ags_mr = CType(mapfunc.Resource, ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapResourceLocal)
        Dim mapServer As ESRI.ArcGIS.Carto.IMapServer = CType(ags_mr.MapServer, IMapServer)
        Dim mapServerObjs As ESRI.ArcGIS.Carto.IMapServerObjects = CType(mapServer, IMapServerObjects)
        Dim map As ESRI.ArcGIS.Carto.IMap = mapServerObjs.Map("")
        Dim pServerContext As ESRI.ArcGIS.Server.IServerContext = ags_mr.ServerContextInfo.ServerContext
        Dim pFlayer As IFeatureLayer
        Dim pQueryFilter As IQueryFilter
        Dim mf As ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapFunctionality
        mf = Map1.GetFunctionality(0)
        Dim mapDescription As ESRI.ArcGIS.ADF.ArcGISServer.MapDescription = mf.MapDescription

        pQueryFilter = pServerContext.CreateObject("esrigeodatabase.queryfilter")
        pQueryFilter.WhereClause = "DIAMETRE_NOMINAL ='" + ddlDiametre.Text + "'"
        Dim pFCursor As IFeatureCursor
        pFlayer = Rechercher_Layer_byname_in_carte(map, "SDE.CONDUITEDISTRIBUTION")
        pFCursor = pFlayer.Search(pQueryFilter, True)
        Dim pFeature As IFeature
        pFeature = pFCursor.NextFeature

        'selectionner les entitées correspondantes
        Dim pActiveView As IActiveView
        Dim Pselect As IFeatureSelection
        Pselect = CType(pFlayer, IFeatureSelection)
        Pselect.SelectFeatures(pQueryFilter, esriSelectionResultNew, False)
        pActiveView = map
        pActiveView.Refresh()
        ' text box où je récupere le nombre d'entités selectionnées
        txtBox.Text = map.SelectionCount
        pnlRechercheDiametre.Refresh()
        Map1.Refresh()

Hors ligne

 

Pied de page des forums

Powered by FluxBB