ArcGIS API for Silverlight – Advanced Topics

Slides:



Advertisements
Similar presentations
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California ArcGIS API for Flex.
Advertisements

Technical Workshops | Esri International User Conference San Diego, California Building Applications with ArcGIS Runtime SDK for Windows Phone Rex Hansen.
Esri UC 2014 | Technical Workshop | Automating Cache Workflows and Tile Usage Heat Maps Eric J. Rodenberg.
Esri UC2010 | Tech Workshops Technical Workshops Esri UC2010 | Tech Workshops ArcGIS API for Microsoft Silverlight/WPF – An Introduction Art Haddad Rex.
Esri International User Conference | San Diego, CA Technical Workshops | Road Ahead - Silverlight Rex Hansen Wednesday, July 13.
Esri International User Conference | San Diego, CA Technical Workshops | ArcGIS API for Microsoft Silverlight – Advanced Topics Morten Nielsen
Esri UC 2014 | Technical Workshop | Building Java Apps with ArcGIS Runtime SDK Mark Baird and Vijay Gandhi.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Editing in ArcMap:
Sharing Geographic Content
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Best Practices for.
ArcGIS Workflow Manager An Introduction
Gary MacDougall Premjit Singh Managing your Distributed Data.
Technical Workshops | Esri International User Conference San Diego, California ArcMap: Tips and Tricks Miriam Schmidts Jorge Ruiz-Valdepena July 23 – 27,
Esri UC 2014 | Technical Workshop | Accessing Spatial Databases in ArcGIS using Query Layers Annie Sasidar.
Fundamentals of working with geographic data
Network Analysis with Python
Developing Windows Desktop and Device Apps with the ArcGIS Runtime SDK for.NET Rex Hansen Thad Tilton.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Caching Imagery Using.
Best Practices for Designing Effective Map Services Tanu Hoque.
Enabling High-Quality Printing in Web Applications
Esri UC 2014 | Technical Workshop | Animating Thousands of Graphics with ArcGIS Runtime SDK for Java Mark Baird and Vijay Gandhi.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Road Ahead - ArcGIS.
Advance Map Automation With Python
ArcGIS Runtime SDK for iOS: Debugging Offline Feature Editing Garima Bradley &)&) &)&)
Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy
Technical Workshops | Esri International User Conference San Diego, California Creating Geoprocessing Services Kevin Hibma, Scott Murray July 25, 2012.
ArcGIS Server for Administrators
Esri UC 2014 | Technical Workshop | Python Map Automation – Beyond the Basics of arcpy.mapping Jeff Barrette Jeff Moulds.
Technical Workshops | Esri International User Conference San Diego, California Supporting High-Quality Printing in Web Applications with ArcGIS 10.1 for.
Esri UC 2014 | Technical Workshop | Designing and Using Cached Map Services Tom Brenneman & Eric Rodenberg.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Geocoding – An Introduction.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Supporting High-Quality.
Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Building Map Books.
Working with Feature Services Gary MacDougall Russell Brennan.
Esri UC 2014 | Technical Workshop | Creating Geoprocessing Services Kevin Hibma.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Migrating Parcel data.
Esri UC 2014 | Demo Theater | Batch Geocoding Online Bruce
Developing Cross Platform Apps with the ArcGIS Runtime SDK for Qt
Esri UC 2014 | Technical Workshop | ArcGIS API for JavaScript: An Introduction Kelly Hutchins Derek Swingley.
Esri UC 2014 | Technical Workshop | Editing in ArcMap: An Introduction Lisa Stanners, Phil Sanchez.
On-the-fly image processing in ArcGIS Pro Simon Woo.
Esri UC 2014 | Technical Workshop | Best Practices for Designing Effective Map Services Ty Fitzpatrick Tanu Hoque.
Esri UC 2014 | Technical Workshop | Administering ArcGIS for Server with Python Jon Bodamer.
ArcGIS Data Reviewer: Assessing Positional Accuracy
ArcGIS Workflow Manager: Advanced Workflows and Concepts
Working with Feature Layers
ArcGIS for Server: What’s New
Shankar Chandrasekaran
Creating Geoprocessing Services
Geoprocessing with ArcGIS for Server
ArcGIS Viewer for Windows: An Introduction
ArcGIS Deed Drafter: An Introduction
Python Map Automation – Beyond the Basics of arcpy.mapping
Automating and Validating Edits
Learning Common GIS Workflows
Learning Common GIS Workflows
Building Map Books in ArcGIS
ArcGIS Workflow Manager: Using Custom Properties to Automate Workflows
ArcGIS Pro: What’s New in Editing and Data Management
Python Map Automation – Beyond the Basics of arcpy.mapping
ModelBuilder – Getting Started
ArcGIS API for Silverlight – An Introduction
Geoprocessing Services in JavaScript
Publishing image services in ArcGIS
Creating Basemaps to Manage Buildings and Facilities
ArcGIS Editor for OpenStreetMap: Contributing data
Designing and Using Cached Map Services
Presentation transcript:

ArcGIS API for Silverlight – Advanced Topics July 25-26, 2012 ArcGIS API for Silverlight – Advanced Topics Rex Hansen Jennifer Nery

Agenda Introductions and overview Graphics data sources ArcGIS Portal API High-Quality Printing Deep dive into image services Editing workflow Dynamic Layers with Query Statistics

Graphics Data Sources Jennifer Nery

Adding Graphics to GraphicsLayer foreach(Graphic g in myGraphics) graphicsLayer.Graphics.Add(myGraphics); or graphicsLayer.GraphicsSource = myGraphics; read-only when GraphicsSource is used! can by any IEnumerable<Graphic>

Adding Custom Data to a GraphicsLayer public class MyData { public double Longitude { get; set; } public double Latitude { get; set; } } … foreach(MyData in dataList) myGraphicsLayer.Graphics.Add( new Graphic() { new MapPoint(Longitude, Latitude) );

…Simpler with PointDataSource <esri:GraphicsLayer> <esri:GraphicsLayer.GraphicsSource> <esri:PointDataSource XCoordinateBinding="{Binding Longitude}" YCoordinateBinding="{Binding Latitude}" ItemsSource="{StaticResource dataList}" /> </esri:GraphicsLayer.GraphicsSource> </esri:GraphicsLayer>

ArcGIS Portal API Jennifer Nery

using ESRI.ArcGIS.Client.Portal var portal = new ArcGISPortal(“http://serverURL”); var parameters = new SearchParameters { QueryString = query.Text, Limit = 5 }; portal.SearchItemsAsync(parameters, (result, error) => { if(error == null) Results.ItemsSource = result.Results; };

<ListBox x:Name=“Results”> <ListBox <ListBox x:Name=“Results”> <ListBox.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text=“{Binding Title}”/> <TextBlock Text=“{Binding Owner}”/> <Image Source=“{Binding ThumbnailUri}”/> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox>

…with IdentityManager IdentityManager.Current.RegisterServers( new ServerInfo[ ] { new ServerInfo() { ServerURL = “http://serverURL”, TokenServiceURL = “http://tokenURL” } }); IdentityManager.Current.ChallengeMethod = Challenge;

Sign in IdentityManager.Current.GenerateCredentialAsync( “http://serverURL”, username, password, (credential, error) => { if(error == null) { IdentityManager.AddCredential(credential); Portal.InitializeAsync(“http://serverURL”, (crd, ex) => {…} ) ; } } );

Sign out var credential = IdentityManager.Current.FindCredential( “http://serverURL”, username); IdentityManager.Current.RemoveCredential(credential ); portal.InitializeAsync(“http://serverURL”, (crd, ex) => {…});

High-Quality Printing Jennifer Nery

using ESRI.ArcGIS.Client.Printing var printTask = new PrintTask(“http://taskUrl”); printTask.ExecuteCompleted += (s, e) => { if (e.Error == null) HtmlPage.Window.Navigate(e.PrintResult.Url, “_blank”); }; printTask.ExecuteAsync(new PrintParameters(MyMap)); or printTask.StatusUpdated += (s, e) => {…}; printTask.JobCompleted += (s, e) => {…}; printTask.SubmitJob(…);

<StackPanel x:Name=“PrintPanel”> <ComboBox x:Name=“Templates” ItemsSource=“{Binding LayoutTemplates}”/> <ComboBox x:Name=“Formats” ItemsSource=“{Binding Formats}”/> <TextBox x:Name=“MapTitle” Text=“Print Demo”/> </StackPanel> printTask.GetServiceInfoCompleted += (s, e) => { PrintPanel.DataContext = e.ServiceInfo; }; printTask.GetServiceInfoAsync();

var printParams= new PrintParameters(MyMap); printParams var printParams= new PrintParameters(MyMap); printParams.LayoutTemplate = (string) Templates.SelectedItem; printParams.Format = (string) Formats.SelectedItem; printParams.LayoutOptions = new LayoutOptions() { Title = MapTitle.Text, LegendOptions = new LegendOptions() {…}, ScaleBarOptions = new ScaleBarOptions() {…}, … }; printParams.MapOptions = new MapOptions() {…}; printParams.ExportOptions = new ExportOptions() {…} printTask.ExecuteAsync(printParams);

PrintTask: Known Limitations in v3.0 Custom symbols/renderers Clustering KmlLayer does not support visibleFolders GraphicsLayer with mixed geometries FeatureLayer selection/geometry require ObjectID

Related Session Supporting High-Quality Printing in Web Applications with ArcGIS 10.1 Server Thursday, July 26, 2012 8:30 AM – 9:45 AM Room 07 A/B

Diving into Image Services Rex Hansen

Image Server Editing Add, update and delete rasters in a mosaic dataset public class ArcGISImageServiceLayer : Layer { AddRasters( ImageServiceAddParameters, Action<ImageServiceEditResults, Exception>) UpdateRaster( ImageServiceUpdateParameters, Action<ImageServiceEditResults, Exception>) DeleteRasters( IEnumerable<int>, Action<ImageServiceEditResults, Exception>) }

Upload Task Great for upload of large files Provides progress, cancellation and deletion Great for large geoprocessing input or raster uploads

Mensuration Task New task for measuring length, height, area etc. based on imagery data public class MensurationTask : TaskBase { Point ( … ) DistanceAndAngle ( … ) HeightFromBaseToTop ( … ) HeightFromBaseAndTopShadow ( … ) HeightFromTopAndTopShadow ( … ) AreaAndPerimeter ( … ) Centroid ( … ) }

Raster Functions Common and custom functions to change how a raster is rendered RasterFuctionsComboBox.ItemsSource = imgLayer.RasterFunctionInfos; var rasterFunction = RasterFuctionsComboBox.SelectedItem as RasterFunctionInfo; RenderingRule renderingRule = new RenderingRule() { RasterFunctionName = rasterFunction.Name }; imgLayer.RenderingRule = renderingRule; imgLayer.Refresh();

Editing Workflow Rex Hansen

Editor Tracking Feature last edited by another user Feature moved, last edited user and date updated

Ownership Can’t update or delete, don’t own the feature Created feature, can update and delete

Attribute-only editing Feature is not allowed for delete or geometry edit.

Feature Service – Editor Tracking FeatureLayer.EditUserName Client side validation FeatureLayer.IsUpdateAllowed(graphic) Check if feature can be updated FeatureLayer.IsGeometryUpdateAllowed(graphic) Check if feature’s geometry can be updated FeatureLayerInfo.EditFieldsInfo Owner, editor, date FeatureLayerInfo.OwnershipBasedAccessControl If others can update, delete FeatureLayerInfo.AllowGeometryUpdates Attribute only editing

Dynamic Layers with Query Statistics Rex Hansen

Change the renderers LayerDrawingOptions: Allows you to override the renderer for each layer. Use GenerateRendererTask helper to create good class breaks. DynamicLayerInfos: Reorder the layers Change the source data Map layers, workspaces, tables, joins…

DynamicLayerInfos LayerMapSource LayerDataSource: reference layers already in map service LayerDataSource: TableDataSource (workspaces & GDB versions) QueryDataSource (query layers) RasterDataSource (raster data) JoinDataSource (join the above sources) Note: When you use DynamicLayerInfos, you replace all existing layer infos.

QueryTask - Statistics Sum, Average, Min, Max, Count, Standard Deviation, Variance var query = new Query() { GroupByFieldsForStatistics = new List<string> { "SUB_REGION" }, OutStatistics = new List<OutStatistic> { new OutStatistic() { OnStatisticField = "POP2000", OutStatisticFieldName = "SubRegionPopulation", StatisticType = StatisticType.Sum . . .

Thank you for attending Have fun at UC2012 Open for Questions Please fill out the evaluation: www.esri.com/ucsessionsurveys First Offering ID: 787 Second Offering ID: 1936