O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Learning ArcGIS Runtime SDK for .NET

Book Description

Learn how to build native, cross-platform mapping apps with this comprehensive and practical guide, using the MVVM pattern

About This Book

  • Enhance the user experience with the power of ArcGIS runtime SDK for .NET.
  • This clear, well segregated book has all the information you need on ArcGIS Runtime SDK. Just name it—this book has it!
  • This highly practical book empowers you to build your own custom application!
  • Get to know the inner details of ArcGIS Runtime SDK from our experts, in this book written by Ron Vincent, with 24 years' experience in the GIS industry and many in GIS training.

Who This Book Is For

This book caters to long-term users of Esri’s technologies that are new to mobile development or are transitioning from older Esri technologies such as ArcGIS Engine. It is also for users who are unfamiliar with Esri or GIS and are in need of a mapping solution for either their desktop or a mobile platform, or both. The book requires knowledge of .NET.

What You Will Learn

  • Understand and implement the MVVM pattern using MVVM Light
  • Create and add layers from offline and online resources such as ArcGIS Online or ArcGIS for Server
  • Create a 2D or 3D map and decide what kind of symbology to use
  • Symbolize the layers based on the geometry
  • Search and find objects in the layers
  • Geocode an address and create a route using an address
  • Edit layer objects from online content and offline content
  • Test the application using test-driven development and then build and release the application for the intended audience

In Detail

ArcGIS is a geographic information system (GIS) that enables you to work with maps and geographic information. It can be used to create and utilize maps, compile geographic data, analyze mapped information, share and discover geographic information and manage geographic information in a database.

This book starts by showing you where ArcGIS Runtime fits within Esri’s overall platform strategy. You'll create an initial map using the SDK, then use it to get an understanding of the MVVM model. You'll find out about the different kinds of layers and start adding layers, and you'll learn to transform maps into a 3D scene.

The next chapters will help you comprehend and extract information contained in the maps using co-ordinates and layer objects. Towards the end, you will learn to set the symbology, decide whether to use 2D or 3D, see how to implement 2D or 3D, and learn to search and find objects. You'll also get to grips with many other standard features of the Application Programming Interface (API), including create applications and finally testing, licensing, and deploying them. Once completed, you will be able to meet most of the common requirements of any mapping application for desktop or mobile platforms.

Style and approach

This comprehensive book takes a completely practical approach, where every chapter explains the important concepts and demonstrates a practical application of them in a hands-on manner.

Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the code file.

Table of Contents

  1. Learning ArcGIS Runtime SDK for .NET
    1. Table of Contents
    2. Learning ArcGIS Runtime SDK for .NET
    3. Credits
    4. About the Author
    5. About the Reviewers
    6. www.PacktPub.com
      1. eBooks, discount offers, and more
        1. Why subscribe?
    7. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Downloading the example code
        2. Downloading the color images of this book
        3. Errata
        4. Piracy
        5. Questions
    8. 1. Introduction to ArcGIS Runtime
      1. Introducing ArcGIS Runtime
      2. Language options
      3. A little history
      4. Apps
      5. Native versus web versus hybrid
      6. Types of mapping apps
      7. Architecture of ArcGIS Runtime
      8. The Esri platform
      9. SDK and API
      10. Why the .NET version of ArcGIS Runtime?
      11. System requirements for the ArcGIS Runtime SDK for .NET
      12. Setting up your environment
        1. Visual Studio
        2. ArcGIS Runtime for .NET SDK
        3. MVVM Light
          1. Sample code
      13. Let's build an app!
        1. The old way of building an app
        2. Under the hood
        3. Enhancing the app
      14. Configuring, testing, and structuring
      15. Summary
    9. 2. The MVVM Pattern
      1. Model-View-ViewModel
        1. The pattern
      2. MVVM in action (without a toolkit)
      3. MVVM Light to the rescue
        1. MVVM Light command parameters
        2. Services and configuration
        3. Displaying a message
      4. Summary
    10. 3. Maps and Layers
      1. MapView
        1. Projections and coordinate systems
        2. Esri logo
        3. MapGrid
          1. Scale
          2. Overlays
          3. Editing
          4. WrapAround
          5. LocationDisplay
          6. Events
          7. Map interactions
        4. Map
          1. Extent
        5. Layers
          1. Dynamic map service – ArcGISDynamicMapServiceLayer
          2. Tiled map service – ArcGISTiledMapServiceLayer
          3. Local tiled layer – ArcGISLocalTiledLayer
          4. Feature service – FeatureLayer
          5. Image services – ArcGISImageServiceLayer
          6. Graphics layers – GraphicsLayer
          7. CSV layer – CsvLayer
          8. Bing layers – BingLayer
          9. The Keyhole Markup Language layers – KmlLayer
          10. Group layers – GroupLayer
          11. Message layer – MessageLayer
          12. Message sublayer – MessageSubLayer
          13. Scene layer – SceneLayer
          14. Web map service layer – WMSLayer
          15. OpenStreetMap – OpenStreetMapLayer
        6. Using online content
        7. Using offline content
          1. Local tiled layers
          2. Map package
          3. Runtime geodatabase
      2. Summary
    11. 4. From 2D to 3D
      1. Why 3D?
      2. From 2D to 3D
        1. Interacting with the Scene property
        2. Viewing in 3D
        3. Viewpoints
      3. Surface model
        1. Online services
        2. Offline sources (files)
        3. Other properties of the SceneView control
        4. 3D content
        5. Layering the Scene properties
      4. Controlling the Scene example
      5. Adding the 3D content
      6. Summary
    12. 5. Geometry and Symbology
      1. Assigning geometry
      2. Geometric objects
        1. Immutability
        2. Geometry object
        3. MapPoint
        4. Envelope
        5. Multipart
        6. Polyline
        7. Polygon
        8. Multipoint
      3. Geometry builders
      4. Units
      5. Converting coordinates
      6. Geometry engine
        1. Project
        2. Buffering
      7. Symbology
        1. Simple symbols
          1. Symbol
            1. MarkerSymbol
            2. SimpleMarkerSymbol
            3. PictureMarkerSymbol
            4. TextSymbol
          2. LineSymbol
          3. FillSymbol
          4. CompositeSymbol
          5. Scene symbols
        2. Renderers
          1. SimpleRenderer
          2. UniqueValueRenderer
          3. ClassBreaksRenderer
          4. TemporalRenderer
        3. Military symbols
      8. Limitations
      9. Summary
    13. 6. Displaying Information
      1. MVVM mouse events
      2. Labeling
      3. Legend
      4. Scale bar
      5. Overlays
        1. Static XAML
        2. Dynamic XAML
      6. Showing locations
      7. Summary
    14. 7. Finding, Querying, and Identifying Features
      1. Tasks
      2. Find versus Query versus Identify
      3. Online searching
        1. FindTask
        2. Canceling a task
        3. QueryTask
          1. A quick example using QueryTask
        4. The QueryTask options
      4. Offline searching
        1. Querying local layers
        2. Spatial querying local layers
      5. IdentifyTask
        1. The online Identify task
        2. The offline Identify task using MVVM Light's messenger
        3. The Identify options
      6. Summary
    15. 8. Geocoding and Routing
      1. Geocoding
        1. Locators
        2. Candidates and scores
        3. Useful terms
        4. Locator tasks
        5. Online geocoding
        6. Offline geocoding
        7. Finding a place
      2. Routing
        1. Setting up a network dataset
        2. Routing overview
        3. Setting up the input parameters
          1. Stops
          2. Impedance
          3. Barriers
          4. Driving directions
          5. U-turn policy
          6. Result options
          7. Geometry options
          8. Restrictions
          9. Time windows
          10. Calculating routes
        4. Example routing app
      3. Summary
    16. 9. Editing Features
      1. Understanding the editing process
        1. Online and offline editing
        2. Creating a feature service
        3. Downloading the Runtime geodatabase
          1. Downloading a Runtime geodatabase using the ArcGIS Server REST API
          2. Generating a Runtime geodatabase using the ArcGIS Runtime API
          3. Generating a Runtime geodatabase from ArcGIS Desktop
          4. Generating a Runtime geodatabase using a Geoprocessing tool
      2. Editing features
        1. Creating a FeatureLayer class
        2. Editing the FeatureLayer class
          1. Editor
            1. Editing the configuration
            2. Navigating while editing
            3. Edit progress
          2. Adding features
          3. Selecting features
          4. Updating features
          5. Deleting features
          6. Committing edits
            1. Online
            2. Offline
        3. Attachments
          1. Obtaining attachments
          2. Attachment information
          3. Attachment data
          4. Editing attachments
            1. Adding an attachment
            2. Deleting an attachment
            3. Updating attachments
      3. Summary
    17. 10. Spatial Analysis
      1. Introducing spatial analysis
      2. Introducing geoprocessing
        1. Preparing for geoprocessing
        2. Online geoprocessing with ArcGIS Runtime
          1. Geoprocessing synchronously
          2. Geoprocessing asynchronously
          3. Working with the output results
            1. GPMesssage
            2. GPFeatureRecordSetLayer
            3. GPResultMapServiceLayer
      3. Offline geoprocessing
        1. Execution types
        2. Maximum number of records
      4. Geoprocessing tools available to ArcGIS Runtime
      5. Summary
    18. 11. Testing and Performance
      1. Testing
        1. Unit testing
        2. Unit testing ArcGIS Runtime
        3. Unit testing with MVVM Light
      2. Test-driven development
        1. Code coverage
        2. Unit testing with Windows Store
      3. Performance
        1. Server-side performance
          1. Hardware
          2. Data
          3. ArcGIS Server configuration
        2. Client-side performance
          1. Introducing graphics programming
          2. Layer rendering options
          3. Which rendering mode?
          4. Graphics rendering
          5. Graphics performance testing
          6. Client-side data access
      4. Summary
    19. 12. Configuring, Licensing, and Deploying
      1. Configuration
      2. Licensing
        1. Licensing discussion
        2. Licensing the app
          1. Basic-level licensing steps
          2. Standard-level licensing steps
            1. Using ArcGIS Online or Portal for Standard-level licensing
          3. Attribution
          4. Esri logo guidelines
        3. Deployment
          1. Deploying with the manifest file
          2. Deploying without a manifest file
      3. Summary
    20. Index