{"id":1817,"date":"2015-06-01T19:34:24","date_gmt":"2015-06-01T14:04:24","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=1817"},"modified":"2023-01-20T18:56:01","modified_gmt":"2023-01-20T13:26:01","slug":"getting-current-location-in-ios-design-and-strategy","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/","title":{"rendered":"Getting Current Location in iOS &#8211; Design and Strategy"},"content":{"rendered":"<p style=\"text-align: justify;\">To get a location in iOS device, there are areas that we need to think about before we implement \/ design for getting location in an application.<\/p>\n<p style=\"text-align: justify;\">Points \/ Areas to consider:<\/p>\n<ol style=\"text-align: justify;\">\n<li><span style=\"font-size: 1rem; line-height: 1.714285714;\">Where to register in application for getting location updates\u00a0<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Accuracy &#8211; What accuracy of location are we looking for<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Exit Strategy in case no location provided<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Check whether location services are enable \/ disable on the device<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Check permissions to get location<\/span><\/li>\n<li>Fall-back strategy &#8211; If we don&#8217;t get the location<\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Where to de-register in application for getting location updates<\/span><\/li>\n<\/ol>\n<h2 style=\"text-align: justify;\">1.\u00a0Where to register in application for getting location updates<\/h2>\n<p style=\"text-align: justify;\">In case we need location at the time of application launch, we need to register the LocationManger to our application,\u00a0We need to do that in AppDelegate and method is:<\/p>\n<p style=\"text-align: justify;\">&#8211; (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { }<\/p>\n<pre class=\"lang:objc decode:true\" title=\"Register for Location Updates\">- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\r\n\t[self registerForLocationUpdates];\r\n\treturn YES;\r\n}\r\n\r\n\/\/Register User Location\r\n-(void) registerForLocationUpdates\r\n{\r\n\tLocationManager *locManager = [LocationManager getInstance];\r\n\t[locManager setManager];\r\n\t[locManager registerForLocation];\r\n}<\/pre>\n<h2 style=\"text-align: justify;\">2. Accuracy &#8211; What accuracy of location are we looking for<\/h2>\n<p style=\"text-align: justify;\">Location accuracy requirement might vary. If application wants to know which city the user is into at the moment then low accuracy will also work. If the application is providing some navigation information then it has to have high accuracy location.<\/p>\n<p style=\"text-align: justify;\">Upon creating the LocationManager instance we need to set the &#8216;desiredAccuracy&#8217;. \u00a0There are five accuracy parameters\u00a0we can set<\/p>\n<p>kCLLocationAccuracyBest (Best accuracy)<br \/>\nkCLLocationAccuracyNearestTenMeters<br \/>\nkCLLocationAccuracyHundredMeters<br \/>\nkCLLocationAccuracyKilometer<br \/>\nkCLLocationAccuracyThreeKilometers<\/p>\n<p>For kCLLocationAccuracyBest &#8211; Source of location &#8211; GPS and Power consumption is High<br \/>\nFor kCLLocationAccuracyThreeKilometers &#8211; Source of location &#8211; Network and Power consumption is Low<\/p>\n<p style=\"text-align: justify;\"><span style=\"text-decoration: underline;\">Situation<\/span> &#8211; If we give Best Accuracy and it did not get from GPS then it will not get it from Network. It will give call back &#8216;didFailWithError&#8217;.<\/p>\n<h2 style=\"text-align: justify;\">3. Exit Strategy in case no location provided.<\/h2>\n<p style=\"text-align: justify;\">It is possible that application has registered for getting location and it is taking time to get the location update. We need to think of a strategy for exit from the current way of getting location. One way could be that we start a timer when we register to get location and if no location is obtained before timer finishes then we stop for getting location update and go to a Fall-back Strategy (See below).<\/p>\n<h2 style=\"text-align: justify;\">4. Check whether location services are enable \/ disable on the device.<\/h2>\n<p style=\"text-align: justify;\">Before starting to register for location updates, firstly we need to check whether location services is ON or OFF.<\/p>\n<p style=\"text-align: justify;\">To check the location service status:<\/p>\n<pre class=\"lang:objc decode:true\" title=\"Checking the location service status\">-(BOOL) isLocationServicesEnabled\r\n{\r\n\tif([CLLocationManager locationServicesEnabled] &amp;&amp;\r\n\t[CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied)\r\n\t{\r\n\t\treturn YES;\r\n\t\t\/\/ show the map\r\n\t}\r\n\telse\r\n\t{\r\n\t\treturn NO;\r\n\t\t\/\/ show error\r\n\t}\r\n}<\/pre>\n<h2>5. Check permissions to get location<\/h2>\n<p style=\"text-align: justify;\">To access location of the device, app needs to prompt the user to get permission from the user to access location. It is possible that user might have not given the permission to the app.<\/p>\n<p style=\"text-align: justify;\">We need to handle this situation and prompt the user giving a proper message.<\/p>\n<h2 style=\"text-align: justify;\">6. Fall-back strategy &#8211; If we don&#8217;t get the location<\/h2>\n<p style=\"text-align: justify;\">If we don&#8217;t get location then what should the application do. It depends on the situation in the application.<\/p>\n<p>Ex &#8211; We can show a pre-defied list of places (Countries, Cities) and let the user choose from it<br \/>\nOr<br \/>\nDon&#8217;t allow the user to enter the application<br \/>\nOr<br \/>\nLet user go inside the application and use those parts of the app that are not dependent on location<\/p>\n<h2>7.\u00a0Where to de-register in application for getting location updates<\/h2>\n<p style=\"text-align: justify;\">Once we have the location or failed to get the location then we need to de-register the application.<\/p>\n<p style=\"text-align: justify;\"><span style=\"line-height: 1.714285714; font-size: 1rem;\"><span style=\"line-height: 1.714285714; font-size: 1rem;\">Code snippet trying to cover the above points:<\/span><\/span><\/p>\n<pre class=\"lang:objc decode:true\" title=\"Getting Location in iOS\">#import \"LocationManager.h\"\r\n\r\n@implementation LocationManager\r\n@synthesize locationManager;\r\n\r\nstatic LocationManager *sharedInstance = nil;\r\n\r\n#pragma mark LocationMannager singleton class method\r\n\r\n+ (LocationManager *) getInstance\r\n{\r\n\t@synchronized(self)\r\n\t{\r\n\t\tif(sharedInstance == nil)\r\n\t\t{\r\n\t\t\tsharedInstance = [[self alloc] init];\r\n\t\t}\r\n\t}\r\n\r\n\treturn sharedInstance;\r\n}\r\n\r\n-(void) setManager\r\n{\r\n\tself.locationManager = [[CLLocationManager alloc]init];\r\n\tself.locationManager.delegate = self;\r\n\tself.locationManager.desiredAccuracy = kCLLocationAccuracyBest;\r\n\r\n\tNSUInteger code = [CLLocationManager authorizationStatus];\r\n\tif (code == kCLAuthorizationStatusNotDetermined &amp;&amp; ([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)] || [self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]))\r\n\t{\r\n\t\t\/\/ choose one request according to your business.\r\n\t\tif([[NSBundle mainBundle] objectForInfoDictionaryKey:@\"NSLocationAlwaysUsageDescription\"])\r\n\t\t{\r\n\t\t\t[self.locationManager requestAlwaysAuthorization];\r\n\t\t}\r\n\t\telse if([[NSBundle mainBundle] objectForInfoDictionaryKey:@\"NSLocationWhenInUseUsageDescription\"])\r\n\t\t{\r\n\t\t\t[self.locationManager requestWhenInUseAuthorization];\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tNSLog(@\"Info.plist does not contain NSLocationAlwaysUsageDescription or NSLocationWhenInUseUsageDescription\");\r\n\t\t}\r\n\t}\r\n}\r\n\r\n-(void) registerForLocation\r\n{\r\n\t[self.locationManager startUpdatingLocation];\r\n\t\/\/ [self.pLocationManager startMonitoringSignificantLocationChanges];\r\n}\r\n\r\n-(void) unRegisterForLocation\r\n{\r\n\t[self.locationManager stopUpdatingLocation];\r\n\t\/\/ [self.pLocationManager stopMonitoringSignificantLocationChanges];\r\n}\r\n\r\n- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations\r\n{\r\n\tBOOL is =[CLLocationManager locationServicesEnabled];\r\n\tif(is)\r\n\t{\r\n\t\tCLLocation* location = [locations lastObject];\r\n\t\t\/\/ NSLog(@\"Tracking from singlton %f %f %@ \",location.coordinate.latitude,location.coordinate.longitude,[NSDate date]);\r\n\t}\r\n}\r\n\r\n- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error\r\n{\r\n\tNSLog(@\"Unable to update with error %@ \",[error localizedDescription]);\r\n\tself.locationManager = nil;\r\n}\r\n\r\n-(BOOL) isLocationServicesEnabled\r\n{\r\n\tif([CLLocationManager locationServicesEnabled] &amp;&amp;\r\n\t[CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied)\r\n\t{\r\n\t\treturn YES;\r\n\t\t\/\/ show the map\r\n\t}\r\n\telse\r\n\t{\r\n\t\treturn NO;\r\n\t\t\/\/ show error\r\n\t}\r\n}\r\n@end<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">\n","protected":false},"excerpt":{"rendered":"<p>To get a location in iOS device, there are areas that we need to think about before we implement \/ design for getting location in an application. Points \/ Areas to consider: Where to register in application for getting location updates\u00a0 Accuracy &#8211; What accuracy of location are we looking for Exit Strategy in case [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1875,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,71,8],"tags":[157,14,160,89,83,165],"class_list":["post-1817","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","category-mobile","category-mobile-architecture-and-design","tag-gps","tag-innovationm","tag-ios","tag-iphone","tag-location","tag-mobile"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Getting Current Location in iOS - Design and Strategy - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting Current Location in iOS - Design and Strategy - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"To get a location in iOS device, there are areas that we need to think about before we implement \/ design for getting location in an application. Points \/ Areas to consider: Where to register in application for getting location updates\u00a0 Accuracy &#8211; What accuracy of location are we looking for Exit Strategy in case [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-06-01T14:04:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-20T13:26:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2015\/06\/InnovationM-Getting-Current-Location-in-iOS-Design-and-Strategy.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"624\" \/>\n\t<meta property=\"og:image:height\" content=\"250\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Getting Current Location in iOS &#8211; Design and Strategy\",\"datePublished\":\"2015-06-01T14:04:24+00:00\",\"dateModified\":\"2023-01-20T13:26:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/\"},\"wordCount\":563,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/06\\\/InnovationM-Getting-Current-Location-in-iOS-Design-and-Strategy.jpg\",\"keywords\":[\"GPS\",\"InnovationM\",\"iOS\",\"iPhone\",\"Location\",\"Mobile\"],\"articleSection\":[\"iOS\",\"Mobile\",\"Mobile Architecture and Design\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/\",\"name\":\"Getting Current Location in iOS - Design and Strategy - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/06\\\/InnovationM-Getting-Current-Location-in-iOS-Design-and-Strategy.jpg\",\"datePublished\":\"2015-06-01T14:04:24+00:00\",\"dateModified\":\"2023-01-20T13:26:01+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/06\\\/InnovationM-Getting-Current-Location-in-iOS-Design-and-Strategy.jpg\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/06\\\/InnovationM-Getting-Current-Location-in-iOS-Design-and-Strategy.jpg\",\"width\":624,\"height\":250,\"caption\":\"InnovationM Getting Current Location in iOS Design and Strategy\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/getting-current-location-in-ios-design-and-strategy\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting Current Location in iOS &#8211; Design and Strategy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Getting Current Location in iOS - Design and Strategy - InnovationM - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/","og_locale":"en_US","og_type":"article","og_title":"Getting Current Location in iOS - Design and Strategy - InnovationM - Blog","og_description":"To get a location in iOS device, there are areas that we need to think about before we implement \/ design for getting location in an application. Points \/ Areas to consider: Where to register in application for getting location updates\u00a0 Accuracy &#8211; What accuracy of location are we looking for Exit Strategy in case [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/","og_site_name":"InnovationM - Blog","article_published_time":"2015-06-01T14:04:24+00:00","article_modified_time":"2023-01-20T13:26:01+00:00","og_image":[{"width":624,"height":250,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2015\/06\/InnovationM-Getting-Current-Location-in-iOS-Design-and-Strategy.jpg","type":"image\/jpeg"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Getting Current Location in iOS &#8211; Design and Strategy","datePublished":"2015-06-01T14:04:24+00:00","dateModified":"2023-01-20T13:26:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/"},"wordCount":563,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2015\/06\/InnovationM-Getting-Current-Location-in-iOS-Design-and-Strategy.jpg","keywords":["GPS","InnovationM","iOS","iPhone","Location","Mobile"],"articleSection":["iOS","Mobile","Mobile Architecture and Design"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/","url":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/","name":"Getting Current Location in iOS - Design and Strategy - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2015\/06\/InnovationM-Getting-Current-Location-in-iOS-Design-and-Strategy.jpg","datePublished":"2015-06-01T14:04:24+00:00","dateModified":"2023-01-20T13:26:01+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2015\/06\/InnovationM-Getting-Current-Location-in-iOS-Design-and-Strategy.jpg","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2015\/06\/InnovationM-Getting-Current-Location-in-iOS-Design-and-Strategy.jpg","width":624,"height":250,"caption":"InnovationM Getting Current Location in iOS Design and Strategy"},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/getting-current-location-in-ios-design-and-strategy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Getting Current Location in iOS &#8211; Design and Strategy"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/1817","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=1817"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/1817\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/1875"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=1817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=1817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=1817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}