building applications with the arcgis runtime sdk for ...€¦ · Software Development Kit •...
Transcript of building applications with the arcgis runtime sdk for ...€¦ · Software Development Kit •...
Building Applications with ArcGIS Runtime SDK for Windows Mobile
Glenn Meister Justin Colville
Agenda
• What is ArcGIS Runtime for Windows Mobile
• Software Development Kit
• Application SDK - Introduction and Key Concepts - Inspection Demo (MPC and App Extension)
• Core SDK - Architecture - What’s new - Migration Demo - SDK Demo Routing
• Road Map
Introduction
ArcGIS — A Complete System
Easier More Powerful and Everywhere
Cloud
Enterprise
Local
• Discover • Create • Manage • Visualize • Analyze • Collaborate
Mobile
Desktop
Web
Runtime
Windows Mobile
Windows Linux
Rugged and Embedded Devices
iOS Android Windows Phone
Smartphones and Tablets
Runtime SDK .NET CF
Runtime SDK WPF, Java
Runtime SDK Java
Runtime SDK Objective C
Runtime SDK Java
Runtime SDK Silverlight
What is mobile GIS?
• Carry your maps to the field • Collect and update geographic information • Track and geo-collaborate • Improve efficiency and accuracy • Rapid data collection and seamless data integration • Helps to make informed and timely decisions • Replaces paper based workflows
ArcGIS for Windows Mobile
• Client Applications - Rapid Deployment of Maps, Apps & Projects - Task-based, Workflow Driven User Experience - Disconnected - Synchronization of Data between Field & Office
• API - Coarse-grained .NET API - Extend client applications - Build custom solutions
ArcGIS for Windows Mobile
• Simplified data collection experience • Support for attachments • Geometry editing (WM) • Improved GPS display • Waypoint navigation • Identity and auto-populate of attributes • Portal support • Packaging improvements • MPC project verification
Software Developer Kit
Software Developer Kit
Core SDK API • Builds new field applications
from scratch • Embed GIS into existing
Line-of-business applications
• Connected or occasionally connected filed operations
Application SDK API • Extends ready-to-deploy
applications • Creates new tasks or
customizing existing functions
• Available for Windows and Windows Mobile
Conceptual Documentation, API Reference, VS components & templates
Sample Code
Core SDK and Application SDK N
etw
ork
Reso
urce
s Win Forms
.Net Framework /.Net Compact Framework
Mobile Cache M
icro
soft
Vis
ual S
tudi
o 20
08
Core SDK
Application SDK
Windows Mobile WPF
Sync Agents
GPS Geometry
UI Controls Spatial Reference
Application SDK
Application SDK - Introduction • Designed for ready-to-deploy tablet and Windows Mobile
applications • Allows developers to customize the applications
- Changes existing tasks/functions - Integrates new business logic and Implementations
New tasks Custom map layer
Custom menu items
Application SDK – Key Concepts • Task
- Defines a workflow for field operation - Embeds organization-specific business logic - Creates an entry on Select Task Page - Implements ITask interface - Example
- Custom Data Collection Task
Application SDK – Key Concepts (cont.)
• Extension - Customize behavior of existing Tasks or functions - Needs to hook up to an extensible point in framework - Implements ProjectExtension - Either modifies existing workflow or introduce new
business logic - Example:
- Rangefinder Extension
Application SDK – Conceptual Architecture
Mobile Application
Project
Task
Project Extension
Collect Features Task
View Map Task
WorkList Task
Synchronize Task
Browse Map Page
Map Page
Sketch Method
GPS Averaging Method
GPS Streaming Method Page
WPF Windows Mobile
Application SDK – Extensible Points
• MapPage • CollectFeaturesTask • View/Edit Attributes Page and
Dialog • MenuDialog • SearchTask/WorkList Task • SettingsPage • Measuring Methods • and more…
Application Extension
How to Get Started?
• Project Templates - Seamless integration with Visual Studio IDE - Creates Task or ProjectExtension solutions - Supports both Windows and Windows Mobile - Includes VS project for MPC
• Developer Help - Discusses architecture of the framework - Reveals extensible points with code snippets
• SDK Samples - Implemented in C# - Demonstrates various extensible points
Core SDK
Sync Agents
Core SDK API
Map
Mobile Service Connection
Mobile Cache
GPS
MapAction
Feature Source
Annotation Layer
Tile Cache/StreetMap
What’s new with the Core Framework
• New core libraries to reference • Namespace
- WinForms Namespace ( MapActions & Sketch) - FeatureCaching (MobileServices)
• Components pulled from designer • Attachment support • Key Class changes
- FeatureSource replaces FeatureLayer - Symbols replace PaintOperations - FeatureSyncAgent replaces FeatureLayer/AnnoSyncAgent
`
Migration your Applications
Demo - Core SDK Migration
• Key Updates made - Component declarations\initialization - Namespace changes - New core libraries to reference - Set Target platform - New MapCache
• Other Changes - FeatureSources replacing FeatureLayer - Generic Graphic layers - Extent is now property not method
Trimble Positions Toolkit
• Enhances data collection capabilities - Positional accuracy - Applies estimated accuracy to features during collection - GeoExplorer series devices
• Current release (SDK only) - Trimble GPS construction methods - Post-processing capability
SDK - Routing
Routing
RouterFactoryClass rfc = new RouterFactoryClass(); IRouter _route = rfc.CreateRouter(@“<PATH>\Streets.rs"); StreetMapDataset _dataset = new StreetMapDataset(@“<PATH>\_navteq_na.navmap"); StreetMapLayer _layer = new StreetMapLayer(_dataset); _dataset.Open(); mapControl1.MapLayers.Add(_layer);
Routing
//reverse geocode location = _dataset.FindLocation(mapCoordinate);
//geocode Locator locator = _dataset.Locators[0]; LocatorFilter statefilter = locator.GetNextFilter(); LocatorFilter cityfilter = locator.GetNextFilter(); List<LocatorResult> target = new List<LocatorResult>(housefilter.GetResults()); List<Location> result = List<Location>(target[0].GetLocationCandidates());
Routing
StopCollectionClass stopsCollection = new StopCollectionClass(); //Add StopClass to the StopCollectionClass stopsCollection.Add(); IDirections directions = _route.Solve(stopsCollection, null); IDirectionsSummary summary = directions.Summary; IDirectionCollection directionCollection = directions.Items;
Roadmap
What’s Next?
• Holistic lab - Week of April 16th in Redlands
• Next release on the 10.1 release schedule - Name change - ArcGIS for Windows Mobile - Change in version number – 3.0
What’s Next?
• Table support • Relationship class support • Laser range finder integration • Ad-hoc schema creation • Routing
What’s Next?
• New tablet application - WPF Runtime
• Trimble Positions - SDK and Application extension - Support for Real-time Correction - Greater device support
Questions?