User Tools

Site Tools


source_code_wpfeditionsample_arcgisserverrestlayer_cs_160908.zip

Source Code WpfEditionSample ArcGISServerLayer CS 160908.zip

App.xaml.cs

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
 
namespace Wpf_ArcGISServerRestLayer
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
    }
}

MainWindow.xaml.cs

using System;
using System.Windows;
using ThinkGeo.MapSuite.Core;
using ThinkGeo.MapSuite.WpfDesktopEdition;
 
namespace Wpf_ArcGISServerRestLayer
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            wpfMap1.MapUnit = GeographyUnit.DecimalDegree;
 
            // Uses the WorldMapKit as the background layer.
            WorldMapKitLayer worldMapKitLayer = new WorldMapKitLayer();
            worldMapKitLayer.Projection = WorldMapKitProjection.DecimalDegrees;
 
            // Creates a new ArcGISServerRestLayer.  This will be used to show counties based on population.
            // documentation for ArcGIS Server REST API can be found at:  http://resources.arcgis.com/en/help/arcgis-rest-api/ , V 9.3 : http://resources.esri.com/help/9.3/arcgisserver/apis/rest/index-9-3.html
            ArcGISServerRestLayer arcGisLayer = new ArcGISServerRestLayer();
 
            // Specifies the uri of the web service.
            arcGisLayer.ServerUri = new Uri("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/export");
 
            // Sets our parameters for image format.
            arcGisLayer.Parameters.Add("format", "png");
            //arcGisLayer.ImageFormat = ArcGISServerRestLayerImageFormat.Png; // we can use the property 'ImageFormat' instead of the 'format' in parameters. When they coexist, the property is perferred.
 
            // Sets our parameters for transparency.
            arcGisLayer.Parameters.Add("transparent", "true");
 
            // Specifies the layerId(s) you wish to display.  LayerId 2 is the county layer.
            arcGisLayer.Parameters.Add("layers", "show:2");
 
            // Specifies the layer and field you wish to query(layerid: field).  in this example, the layerid is 2 and the data field to query is POP1999.
            arcGisLayer.Parameters.Add("layerdefs", string.Format("2:POP1999{0}", txtPopulationFilter.Text));
 
            LayerOverlay layerOverlay = new LayerOverlay();
            layerOverlay.Layers.Add(worldMapKitLayer);
            layerOverlay.Layers.Add("ArcGISServerRestLayer", arcGisLayer);
 
            wpfMap1.Overlays.Add("LayerOverlay", layerOverlay);
 
            wpfMap1.CurrentExtent = new RectangleShape(-140, 60, -58, 30);
            wpfMap1.Refresh();
        }
 
        private void btnSubmitQuery_Click(object sender, RoutedEventArgs e)
        {
            // Gets our ArcGIS Layer and update the layerdefs parameter.
            var layerOverlay = (LayerOverlay)wpfMap1.Overlays["LayerOverlay"];
            var arcGISLayer = (ArcGISServerRestLayer)layerOverlay.Layers["ArcGISServerRestLayer"];
            arcGISLayer.Parameters["layerdefs"] = string.Format("2:POP1999{0}", txtPopulationFilter.Text);
            wpfMap1.Refresh();
        }
    }
}
source_code_wpfeditionsample_arcgisserverrestlayer_cs_160908.zip.txt · Last modified: 2016/09/08 04:55 by tgwikiupdate