View
13
Download
0
Category
Preview:
Citation preview
Introduction to the StreetMap Mobile SDKIntroduction to the StreetMap Mobile SDK
Jeff RogersJeff RogersAndrey KozhevnikovAndrey Kozhevnikov
Developer Summit 2008Developer Summit 2008 11
AgendaAgenda
•• OverviewOverview–– What is StreetMap MobileWhat is StreetMap Mobile
•• Positioning StreetMap MobilePositioning StreetMap Mobile•• Demonstration of Sample ApplicationDemonstration of Sample Application•• SDK ComponentsSDK Components
–– Major component areas and capabilitiesMajor component areas and capabilities•• Recommended PracticesRecommended Practices
–– Map DevelopmentMap Development–– LookupsLookups–– GRF filesGRF files–– Code SamplesCode Samples
•• Support ResourcesSupport Resources•• EDNEDN•• Discussion forumsDiscussion forums
Developer Summit 2008Developer Summit 2008 22
OverviewOverview
Developer Summit 2008Developer Summit 2008 33
StreetMap Mobile SDKStreetMap Mobile SDK
•• A SDK that allows A SDK that allows developers to build developers to build custom navigation custom navigation solutionssolutions
•• Includes C++ and C# Includes C++ and C# Sample Application Sample Application and Source Codeand Source Code
StreetMap Mobile: Target PlatformsStreetMap Mobile: Target Platforms
•• Windows Mobile for Pocket PC 2003, 2003 SEWindows Mobile for Pocket PC 2003, 2003 SE•• Windows Mobile 5.0/6.0Windows Mobile 5.0/6.0•• Windows XP/XP Tablet/VistaWindows XP/XP Tablet/Vista•• CE 4.2 Support discontinued with Version 1.1CE 4.2 Support discontinued with Version 1.1
Developer Summit 2008Developer Summit 2008
StreetMap Mobile CapabilitiesStreetMap Mobile Capabilities•• Audible Turn by Turn NavigationAudible Turn by Turn Navigation•• On Board and Hybrid NavigationOn Board and Hybrid Navigation•• High Performance 2D and 2.5D MapsHigh Performance 2D and 2.5D Maps•• Feature Find (addresses, Poi) Feature Find (addresses, Poi) •• RoutingRouting•• GPS and Map Matching supportGPS and Map Matching support•• Global data supportGlobal data support
•• Maps (Tele Atlas or NAVTEQ data available.)Maps (Tele Atlas or NAVTEQ data available.)•• Custom Data toolkitCustom Data toolkit•• Takes in stops from ALR and NATakes in stops from ALR and NA
StreetMap Mobile Product ComponentsStreetMap Mobile Product Components
•• SDKSDK–– BinariesBinaries–– OMDsOMDs–– DocsDocs
•• Developer Reference GuideDeveloper Reference Guide•• .NAVMAP Description.NAVMAP Description•• Localization GuidesLocalization Guides•• GRF (Stops, Directions file) format descriptionGRF (Stops, Directions file) format description
–– Sample ApplicationsSample Applications•• C++ and C# .NETC++ and C# .NET
–– SDC GP Data ToolsSDC GP Data Tools•• SDC GP ToolsSDC GP Tools•• Tool HelpTool Help
•• TTS Installer TTS Installer –– Separate Installer by LicenseSeparate Installer by LicenseDeveloper Summit 2008Developer Summit 2008 77
StreetMap Mobile SDK: PrerequisitesStreetMap Mobile SDK: Prerequisites
•• Visual Studio 2005 Standard and up, or Visual Studio 2008 Visual Studio 2005 Standard and up, or Visual Studio 2008 Professional and upProfessional and up
•• C# or C++C# or C++
•• Familiarity withFamiliarity with•• .NET Framework 2.0/.NET Compact Framework 2.0.NET Framework 2.0/.NET Compact Framework 2.0•• COM COM
•• Windows Mobile 5.0/6.0 SDKs (Pocket PC)Windows Mobile 5.0/6.0 SDKs (Pocket PC)•• Active Sync 4.1 or higher installed on XP or WMDC on VistaActive Sync 4.1 or higher installed on XP or WMDC on Vista•• Access to mobile devices to test deploymentAccess to mobile devices to test deployment•• Access to GPS devicesAccess to GPS devices•• Data engineering and preparation skillsData engineering and preparation skills
Developer Summit 2008Developer Summit 2008
PositioningPositioning
Developer Summit 2008Developer Summit 2008 99
Standalone Navigation ClientStandalone Navigation Client
•• Navigation ArchitectureNavigation Architecture•• On BoardOn Board•• HybridHybrid•• Off Board*Off Board*
Developer Summit 2008Developer Summit 2008 1010
StreetMap (Mobile Client)StreetMap (Mobile Client)NavigatingNavigatingTrackingTracking
ArcGIS ServerArcGIS ServerFindFindRoute OptimizationRoute OptimizationTrackingTrackingGeo DatabaseGeo DatabasePublishingPublishing
Web ServicesWeb Services
Component In a Fleet Management SolutionComponent In a Fleet Management Solution
•• Fleet Management ArchitectureFleet Management Architecture
Developer Summit 2008Developer Summit 2008 1111
StreetMap (Mobile Client)StreetMap (Mobile Client)Navigating (On Board/Hybrid)Navigating (On Board/Hybrid)TrackingTracking
ALR (Desktop)ALR (Desktop)PlanningPlanningRoute OptimizationRoute OptimizationDispatchingDispatchingMonitoringMonitoring
Web ServicesWeb Services
ArcGIS ServerArcGIS ServerFindFindRoute OptimizationRoute OptimizationTrackingTrackingGeo DatabaseGeo DatabasePublishingPublishing
DemonstrationDemonstration
Developer Summit 2008Developer Summit 2008 1212
StreetMap Mobile StreetMap Mobile ArchitectureArchitecture
Developer Summit 2008Developer Summit 2008 1313
SDK ComponentsSDK Components
• Map Document• Map Renderer• Lookup Functionality• Routing Components• GPS Components • Map Matching Components• Text To Speech with directions• Localization Components
Andrey
Map Document (NAVMAP)Map Document (NAVMAP)
•• .NAVMAP file.NAVMAP file–– Layers CollectionLayers Collection–– Rendering PropertiesRendering Properties–– ServicesServices
•• Lookup ServiceLookup Service•• Routing ServiceRouting Service•• Location Search (Reverse Geocoder)Location Search (Reverse Geocoder)
–– Rendering properties/schemas for day night mode, multi lingual Rendering properties/schemas for day night mode, multi lingual labelslabels
•• .NAVMAP file specification included with the SDK.NAVMAP file specification included with the SDK–– Write .NAVMAP manuallyWrite .NAVMAP manually
•• MXD2NAVMAP ConverterMXD2NAVMAP Converter–– GP ToolGP Tool
Developer Summit 2008Developer Summit 2008 1515Andrey
Data Access ComponentsData Access Components
•• Access to SDC Map LayersAccess to SDC Map Layers•• Map Document Returns the Collection of Feature Map Document Returns the Collection of Feature
ClassesClasses•• For each Feature classFor each Feature class
–– Browse for fields and field typesBrowse for fields and field types–– Make SQL queriesMake SQL queries–– Geometry propertiesGeometry properties
Developer Summit 2008Developer Summit 2008 1616Andrey
Map RendererMap Renderer•• Rendering Polylines, Polygons, Points, MultiRendering Polylines, Polygons, Points, Multi--pointspoints•• PolylinesPolylines
–– Color, width, outline, outline color, transparencyColor, width, outline, outline color, transparency
•• PolygonsPolygons–– Color, width, outline, outline color, fill color, transparencyColor, width, outline, outline color, fill color, transparency
•• Points and MultiPoints and Multi--pointspoints–– Symbol type (circle, square, raster symbol)Symbol type (circle, square, raster symbol)–– Color, size, symbol name (raster's), transparencyColor, size, symbol name (raster's), transparency
•• LabelsLabels–– Font name, height, color, effects (bold, italic, underlined)Font name, height, color, effects (bold, italic, underlined)
•• Custom Geometry Support through the APICustom Geometry Support through the API•• 2D Map and 2.5D Map Implemented with Different 2D Map and 2.5D Map Implemented with Different
Display transformationsDisplay transformationsDeveloper Summit 2008Developer Summit 2008 1717Andrey
Lookup FunctionalityLookup Functionality
•• Not Traditional Geocoding Not Traditional Geocoding –– simple model, no complex rules, locale specific logicsimple model, no complex rules, locale specific logic–– Suggest only available charactersSuggest only available characters
•• BB--Tree Approach (hierarchical)Tree Approach (hierarchical)–– Any SDC data sourceAny SDC data source–– Street Address and intersection models supportedStreet Address and intersection models supported–– POI lookups with categoriesPOI lookups with categories–– City LookupsCity Lookups
•• Lookups Have Several lnputsLookups Have Several lnputs–– Streets Streets -- Start from State, City, Street Name, House NumberStart from State, City, Street Name, House Number–– POI POI –– Category, state, city, nameCategory, state, city, name–– Supports optional fields State and City Optional find POI acrossSupports optional fields State and City Optional find POI across
entire databaseentire database
•• Customizable Structure Through GP ToolsCustomizable Structure Through GP ToolsDeveloper Summit 2008Developer Summit 2008 1818Andrey
Routing ComponentsRouting Components
•• New Simple Model (SM Mobile 1.1)New Simple Model (SM Mobile 1.1)•• Fill Collection of StopsFill Collection of Stops
–– Each Stop is X,Y and nameEach Stop is X,Y and name–– X,Y can come from Lookups, Map, GRF (XML)X,Y can come from Lookups, Map, GRF (XML)
•• Fill Routing OptionsFill Routing Options–– Quickest, Shortest, Restrictions, Trip Planning Settings, BarrieQuickest, Shortest, Restrictions, Trip Planning Settings, Barriersrs
•• Call Solve MethodCall Solve Method–– Returns directionsReturns directions–– Directions are geometry and text instructions plus summary of Directions are geometry and text instructions plus summary of
time and distancetime and distance
•• Solve RerouteSolve Reroute–– Optimizes knowledge of existing route to make back on track Optimizes knowledge of existing route to make back on track
adjustmentadjustmentDeveloper Summit 2008Developer Summit 2008 1919Andrey
GPS ComponentsGPS Components
•• NMEA GPS implementationNMEA GPS implementation•• Interface with Serial and File GPSInterface with Serial and File GPS•• Fires events with GPS positionsFires events with GPS positions•• Using GPS for displaying location on mapUsing GPS for displaying location on map•• Using GPS for map matching capabilitiesUsing GPS for map matching capabilities•• Using GPS for tracking capabilitiesUsing GPS for tracking capabilities
Developer Summit 2008Developer Summit 2008Andrey
Map Matching ComponentsMap Matching Components
•• Takes X,Y coordinates to do map matching against the Takes X,Y coordinates to do map matching against the streets geometrystreets geometry
•• Respects speed, bearing, latency to correctly Respects speed, bearing, latency to correctly understand our current location on the networkunderstand our current location on the network
•• Determine on/off route stateDetermine on/off route state•• If off route you can use router to reIf off route you can use router to re--routeroute
Developer Summit 2008Developer Summit 2008 2121Andrey
Text To Speech with DirectionsText To Speech with Directions
•• Used for supporting voice guidanceUsed for supporting voice guidance•• Convert Abbreviations to full names depending on Convert Abbreviations to full names depending on
contextcontext•• Supports MSAPISupports MSAPI•• Supports Low Level APIs like LoquendoSupports Low Level APIs like Loquendo
Developer Summit 2008Developer Summit 2008 2222Andrey
Localization ComponentsLocalization Components
•• Localization of the UI through .NET resource filesLocalization of the UI through .NET resource files•• Localization of Driving Directions through Driving Localization of Driving Directions through Driving
Directions Language file (routing.lng)Directions Language file (routing.lng)•• Data localization supported through dataset (Unicode Data localization supported through dataset (Unicode
compliant) Multilanguage supportcompliant) Multilanguage support
Developer Summit 2008Developer Summit 2008 2323Andrey
Application LogicApplication Logic
•• What is the application Doing?What is the application Doing?•• Loading the Map DocumentLoading the Map Document•• UI for Lookup and Custom KeyboardUI for Lookup and Custom Keyboard
–– Shows available characters and list of candidatesShows available characters and list of candidates
•• Controlling MapControlling Map–– Zoom In, Zoom Out, Switching 2 and 2.5 DZoom In, Zoom Out, Switching 2 and 2.5 D
•• Defining Routing SettingsDefining Routing Settings•• Add Stops, Control StopsAdd Stops, Control Stops•• Advanced map Matching and TrackingAdvanced map Matching and Tracking•• Advance Voice GuidanceAdvance Voice Guidance
–– Prompts based on location relative to next maneuverPrompts based on location relative to next maneuver
•• Persists user settingsPersists user settingsDeveloper Summit 2008Developer Summit 2008 2424Andrey
Provided Sample ApplicationProvided Sample Application
•• Provided Sample application in C++ and C#Provided Sample application in C++ and C#•• Implements all standard system componentsImplements all standard system components
Developer Summit 2008Developer Summit 2008 2525Andrey
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 2626
Useful TipsUseful Tips
Developer Summit 2008Developer Summit 2008 2626
UI DesignUI Design
•• Design for the mobile user experienceDesign for the mobile user experience–– Large ButtonsLarge Buttons–– Minimize menu/window depthMinimize menu/window depth–– Make things easy to findMake things easy to find
•• Consider deployment platform and available UI Consider deployment platform and available UI capabilitiescapabilities–– Transparency for buttonsTransparency for buttons
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 2727
Data Development ConsiderationsData Development Considerations
•• SizeSize––Hardware ConstraintsHardware Constraints––UpdatesUpdates
•• PerformancePerformance––Data generalization and filteringData generalization and filtering
•• Form FactorForm Factor––Develop map document for the mobile deviceDevelop map document for the mobile device
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 2828
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 2929
Data Development WorkflowData Development Workflow
•• PreprocessingPreprocessing––Data FilteringData Filtering
•• GP Tools GP Tools ––BlockingBlocking––GeneralizationGeneralization––Compression (Layers)Compression (Layers)––Routing IndexesRouting Indexes––Lookup IndexesLookup Indexes––Develop Map DocumentDevelop Map Document
Developer Summit 2008Developer Summit 2008 2929
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 3030
Building LookupsBuilding Lookups
•• Source Data is SDCSource Data is SDC•• Lookups follow hierarchies in the data (BLookups follow hierarchies in the data (B--Tree)Tree)
•• Hierarchies can be defined as one or more Hierarchies can be defined as one or more levelslevels
•• Hierarchies filled by unique values in fields Hierarchies filled by unique values in fields from SDC filefrom SDC file
Developer Summit 2008Developer Summit 2008 3030
StateState
StreetStreet
City 1City 1 City 2City 2
StreetStreetStreetStreet
STATE CITY STREET ADDR_F ADDR_T
CA Redlands New York 300 400
CA Redlands New York 400 500
CA Redlands Redlands 1000 2000
CA Yucaipa Oak Glenn 100 200
More LookupsMore Lookups•• Alias and abbreviation tables supportedAlias and abbreviation tables supported•• GP Tools build the indexes and lookup service filesGP Tools build the indexes and lookup service files
–– .bxx is the index.bxx is the index–– .ls is the service file.ls is the service file
•• Services are implemented in the clientServices are implemented in the client•• C++ sample application can be used to test the indexesC++ sample application can be used to test the indexes
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 3131
Building Map LayersBuilding Map Layers
•• Mobile maps are multiMobile maps are multi--scalescale•• Generalization is critical to support performance at Generalization is critical to support performance at
different scalesdifferent scales•• Generalization parameters are different than those for Generalization parameters are different than those for
desktop mapsdesktop maps•• Most line and polygon layers generalized 4 timesMost line and polygon layers generalized 4 times•• Guidelines can be applied for inserting custom layers to Guidelines can be applied for inserting custom layers to
an existing mapan existing map
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 3232
Generalization ParametersGeneralization Parameters
•• Some generic values of generalization from DouglasSome generic values of generalization from Douglas--Peuker algorithm and scale ranges usedPeuker algorithm and scale ranges used
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 3333
Gener_1; Prec_1 Gener_2; Prec_2 Gener_3; Prec_3 Gener_4; Prec_4 Gener_5; Prec_5Highways 0.0576577; 2200 0.0072072; 11000 0.00144144; 11000Major Roads 0.000432432; 22000 0.00002882; 55000Roads 0.00002882; 55000Major Water 0.0576577; 2200 0.0072072; 11000 0.00144144; 11000 0.000432432; 22000Water 0.000230626; 22000 0.00002882; 55000National Parks 0.0576577; 2200 0.0072072; 11000 0.00144144; 11000 0.000432432; 22000GreenBelt 0.000230626; 22000 0.00002882; 55000CityArea 0.0072072; 11000 0.000432432; 22000 0.00002882; 55000
ProvinceArea 0.0576577; 2200 0.0144144; 5500 0.0072072; 11000 0.000432432; 22000 0.00002882; 55000
UNIVERSAL values of generalization parameters for SM Mobile datamaxscale 5850000 2260000 847000 317000 117000 45700 17800 7313 3370
minscale 5850000 2260000 847000 317000 117000 45700 17800 7313 3370
Generalization 0.0576577 0.014414414 0.00144144 0.00144144 0.00144144 0.000432432 0.000432432 0.00002882 0.00002882 0.00002882Precision (MultBy) 2200 11000 11000 11000 11000 22000 22000 55000 55000 55000
Authoring the MapAuthoring the Map
•• Build an MXD for cartographic LayersBuild an MXD for cartographic Layers•• Consider the deployment map size and resolutionConsider the deployment map size and resolution•• Design map for mobileDesign map for mobile
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 3434
Creating the NAVMAPCreating the NAVMAP
•• Run the MXD 2 NAVMAP ToolRun the MXD 2 NAVMAP Tool–– Select the MXDSelect the MXD–– Map the Routing ServiceMap the Routing Service–– Map the Lookup Service(s)Map the Lookup Service(s)•• Test the .NAVMAP fileTest the .NAVMAP fileC++ Sample ApplicationC++ Sample Application
•• Edit the .NAVMAP fileEdit the .NAVMAP file•• Integrate the .NAVMAP fileIntegrate the .NAVMAP file
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 3535
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 3636
Importing Stops from External ApplicationsImporting Stops from External Applications•• SM Mobile consumers GRF filesSM Mobile consumers GRF files•• From StreetMap UI, Custom ALR toolbar, SM Mobile SDK From StreetMap UI, Custom ALR toolbar, SM Mobile SDK
Developer Summit 2008Developer Summit 2008 3636
•• FindFind•• Click on mapClick on map
StreetMap Mobile: Code SamplesStreetMap Mobile: Code Samples
•• Map RenderingMap Rendering•• RoutingRouting•• GPSGPS•• Map MatchingMap Matching•• LookupLookup
Developer Summit 2008Developer Summit 2008
Microsoft Office d 97 - 2003 Docum
Support ResourcesSupport Resources
ArcGIS Server 9.2 FinalArcGIS Server 9.2 Final 3838
•ESRI Showcase•Mobile Island (StreetMap Team)
•ESRI Developers Network (EDN) website• http://edn.esri.com
Further questions?Further questions?
Developer Summit 2008Developer Summit 2008 3939
Recommended