Query zoom

0 голосов
спросил 04 Ноя, 08 от Dana (3,340 баллов) в категории Программные продукты Esri
Люди, нужен совет!
В ArcIMSe мы использовали вот такую вот жестко забитую ссылку
http://ims.company.com/website/WellSites/?ActiveLayer=wells&QueryZoom=Yes&Query=WELL_NAME%3D'Well-11' чтобы централизовать открывающееся окно на строго выбранной скважине - на каждую скважину была прописана такая вот ссылка на страничке посвященной ей.
 
Есть ли возможность сделать такое в ArcGIS Server?

3 Ответы

0 голосов
ответил 04 Ноя, 08 от Alexander1 (32,520 баллов)
Посмотрите раздел "Pass initialization parameters in the URL":

http://resources.esri.com/help/9.3/arcgisserver/adf/dotnet/developer/ADF/wma_walkthroughs.htm#parameters


















    
0 голосов
ответил 05 Ноя, 08 от Dana (3,340 баллов)
Спасибо. Иду читать.
0 голосов
ответил 30 Янв, 09 от Dana (3,340 баллов)
Так, после долгого блуждания и поисков на форуме ESRI напоролась на вот эту тему:
 
Код Lynn Hey protected void Page_PreRender(object sender, EventArgs e) показался мне подходящим, но когда я пытаюсь его применить ничего не получается.
 
Прежде всего, я не девелопер. Вообще.
Девелопер уволился, а мне пришлось взять на себя его функции, и если по мелочи я справляюсь, то тут не получается вообще. :(
 
Вот код:
protected void Page_PreRender(object sender, EventArgs e)
    {
        string[] values = queryvalues.GetValues("Name");
        if ((values != null) && (values.Length > 0))
        {
            string strName = values[0];
            strName = strName.Substring(0, strName.Length - 1);

            IEnumerable func_enum = Map1.GetFunctionalities();

            foreach (ESRI.ArcGIS.ADF.Web.DataSources.IGISFunctionality gisfunctionality in func_enum)
            {
                ESRI.ArcGIS.ADF.Web.DataSources.IGISResource gisresource = gisfunctionality.Resource;
                bool supported = gisresource.SupportsFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality));

                if (supported)
                {
                    ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality qfunc;
                    qfunc = (ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality)gisresource.CreateFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality), null);

                    string[] lids;
                    string[] lnames;
                    qfunc.GetQueryableLayers(null, out lids, out lnames);

                    ESRI.ArcGIS.ADF.Web.SpatialFilter spatialfilter = new ESRI.ArcGIS.ADF.Web.SpatialFilter();
                    spatialfilter.ReturnADFGeometries = true;
                    spatialfilter.MaxRecords = 1000;

                    spatialfilter.WhereClause = "GIS.CITY.NAME = '" + strName + "'";
                    //default env - countywide
                    ESRI.ArcGIS.ADF.Web.Geometry.Envelope env = new ESRI.ArcGIS.ADF.Web.Geometry.Envelope(2800000, 1327000, 3170000, 1618000);
                    spatialfilter.Geometry = env;

                    
                    Map1.Extent = env;
                    Map1.Refresh();

                    Int32 intCount = 0;

                    foreach (object o in lnames)
                    {

                        Debug.WriteLine(lids[intCount]);
                        Debug.WriteLine(lnames[intCount]);                        
                       
                        if (o.Equals("Cities"))
                        {
                            System.Data.DataTable datatable = qfunc.Query(null, lids[intCount], spatialfilter);
                            
                            ESRI.ArcGIS.ADF.Web.Display.Graphics.GraphicsLayer graphicslayer = ESRI.ArcGIS.ADF.Web.Converter.ToGraphicsLayer(datatable, System.Drawing.Color.Yellow, System.Drawing.Color.Green);
                            env = graphicslayer.FullExtent;

                            Map1.Extent = env.Expand(15.0);
                            Map1.Refresh();
                        }
                        intCount = intCount + 1;
                    }
                }
            }            

        }
    }
Когда я, пользуясь подсказками с форума и со странички, ссылку на которую дал Alexander, попыталась код внедрить, получилась, естесственно, полная ерунда.
В окне выскочило следующее сообщение:

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0122: 'System.Configuration.Debug' is inaccessible due to its protection level

Source Error:

Line 465:                    {
Line 466:
Line 467:                        Debug.WriteLine(lids[intCount]);
Line 468:                        Debug.WriteLine(lnames[intCount]);                        
Line 469:                       

Source File: e:\Inetpub\ArcGIS\web\city\Default.aspx.cs    Line: 467
Глупый вопрос, понимаю, но - что не так?
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...