MAPPING WITH Presented by Roger Peters
Virtual Xamarin Users Group
January 20th, 2015 XAMARIN h#ps://github.com/SmartyP/xamarin-‐mapping-‐sample-‐apps
To Embed or Not to Embed • What are you mapping? (Points, Regions, etc.) • How many items are you mapping? • What functionality does your user need/expect? • Time / Effort considerations
Launch Map Activity Open Google Maps to GPS coordinate Open Google Maps to Street View Reference: h#p://developer.xamarin.com/guides/android/pla>orm_features/ maps_and_locaAon/maps/part_1_-‐_maps_applicaAon/
Embed Google Maps API v2 Reference: h#p://developer.xamarin.com/guides/android/pla>orm_features/ maps_and_locaAon/maps/part_2_-‐_maps_api/ Use MapFragment in Activity layout XML: Get reference to control from code behind:
Setup Your App for Google Maps • Generate a SHA1 fingerprint from signing .keystore • Get a Google Maps API key • Add API key to AndroidManifest.xml • Add permissions for INTERNET, ACCESS_NETWORK_STATE, and WRITE_EXTERNAL_STORAGE, etc. ref:
h#ps://code.google.com/apis/console/
h#ps://developers.google.com/maps/documentaAon/android/start#obtain_a_google_maps_api_key
Setup Your App for MapKit • Update info.plist to include NSLocationWhenInUseUsageDescription and NSLocationAlwaysUsageDescription strings • Call RequestWhenInUseAuthorization() on startup Note: new requirements for iOS8+
Per Platform Setup iOS - Must add 2 text strings to Info.plist for iOS8+ Android - Must include Google Maps API key in AndroidManifest.xml and include app permissions Windows Phone - Must add needed capabilities to WMAppManifest.xml Reference: h#p://developer.xamarin.com/guides/cross-‐pla>orm/xamarin-‐forms/working-‐with/maps/
Xamarin.Forms Map Control (cont’d) Created via XAML: Reference: h#p://developer.xamarin.com/guides/cross-‐pla>orm/xamarin-‐forms/working-‐with/maps/
Advanced Maps - Marker Clustering References: h#ps://developers.google.com/maps/documentaAon/android/uAlity/marker-‐clustering
h#p://robots.thoughtbot.com/how-‐to-‐handle-‐large-‐amounts-‐of-‐data-‐on-‐maps
h#p://blogs.msdn.com/b/bingdevcenter/archive/2013/10/15/clustering-‐pushpins-‐in-‐windows-‐store-‐apps.aspx Grouping large numbers of markers into group markers to avoid plotting thousands of items each draw call. Included in Google Maps Android API Utility Library. Create your own on other platforms.
Mapping With Xamarin Summary • Each approach requires some level of setup • There is variance in capabilities between mapping platforms • Xamarin.Forms.Maps provides cross-platform approach with common map functions