Date post: | 18-Dec-2014 |
Category: |
Technology |
Upload: | luke |
View: | 53 times |
Download: | 2 times |
Enterprise Mobile DevelopmentMy experience with Apple Maps, Google Maps, ESRI iOS & Server
Luke PhilipsSoftware Architect
Level 3 Communications@lucus_patrick
Background
• –
• –
– Call a Level 3 Sales rep to see the app for yourself
CENSORED
Map It Objectives
• Make accessible on the map all of our physical assets and POI’s
• Large amount of vector data– Unreasonable nor secure to distribute a full
database copy of the assets• Had to treat the device like an Etch-a-sketch
– No meaningful data persisted, no security issue if device was lost, rely on secured services
Basic iOS/ObjC MVCModel View Controller Pattern Common to iPad Development
Model ViewController Interface Builder L3GTMiBuildingTenant.h L3TenantDetailsViewController.h L3TenantDetailsViewController_iPad.xib
L3GTMiBuildingTenant.m L3TenantDetailsViewController.m L3TenantDetailsViewController_iPad.xib
Connect xib Outlets to
view controller IBOutlets.
Connect xib Actions to
view controller IBActions.
Google Maps
• Initial map UI effort utilized Google Maps with the iOS MapKit framework
• No ‘adding of kml’ to the map, all data must be parsed and set up as overlays/annotations
• Overlays are polylines / Annotations are points– polygons are completed lines
• Very basic/non-existent map controllers– How do I 'identify' the polygon I've tapped on? Iterate
through all and compute if it's a hit– What’s a layer?
Real Time Mapping
• Calling services rather than giving out copies of the data ensure being always up-to-date
• In a 3G-bandwidth world, how to get the minimum amount of data needed to properly render the map
• ArcGIS Server MapServices keeps us connected to the Inventory and a useful API
Generalize
• Get only one vertex per visible pixel– Any more is extraneous data
• Simple yet powerful, maxAllowableOffset parameter– “Feature layers can generalize geometries on the
fly” - http://blogs.esri.com/esri/arcgis/2011/06/13/feature-layers-can-generalize-geometries-on-the-fly/
• Parse results, create Overlay, and plot to map
Apple Maps
• Say goodbye to native Google Maps (or anything Google on an iDevice)
• With iOS 6, all iDevices will use Apple maps– No conversion, the base iOS MapKit calls back to
Apple services• New 3D view based off of LIDAR & other data,
and C3 Technologies– For a non-Apple view, try Nokia maps– No 3D SDKs
ArcGIS Runtime for iOS• Rich library of map controllers
– My own attempt at map controllers for a Feature Service not nearly as polished at the ESRI code
• Observe/sniff HTTP requests to see their efficiency
– Feature Service was fast, looking to go faster with Tiled Services• Safe alternative SDK from the Google/Apple battles
– No sudden changes in UI/SDK• Tightly coupled to capabilities of AGS• Would prefer more control of the HTTP Request methods
– ESRI SDK follows ‘ASP model’ of security, not applicable to my security model• Making the Feature service requests on my own has allowed full
customization of caching– CoreData is no GDB, caching hits its limits
In Summary
• A hybrid map experience with MapKit and ArcGIS Services forced a deep understanding of all technologies– Appreciate the depth and refinement of ArcGIS iOS
but also the rudimentary capabilities of MapKit• Be sure to evaluate all technologies for the
optimal solutions• As a developer we’re never happy, always
looking for more capabilities and control