{"id":99,"date":"2013-09-09T15:57:35","date_gmt":"2013-09-09T10:27:35","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=99"},"modified":"2014-03-07T19:00:56","modified_gmt":"2014-03-07T13:30:56","slug":"location-testing-in-mobile-apps","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/","title":{"rendered":"Location Testing in Mobile Apps"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"line-height: 1.714285714; text-align: justify; font-size: 1rem;\">Welcome to the world of <\/span><strong style=\"line-height: 1.714285714; text-align: justify; font-size: 1rem;\">Location<\/strong><span style=\"line-height: 1.714285714; text-align: justify; font-size: 1rem;\">. We have been talking about Location as an important attribute in mobile apps today. Business people and Developers are talking about it. Have you ever thought as to how a testing of apps based on location can be done? Let us talk about it.<\/span><\/p>\n<p>This articles flows like this:<\/p>\n<ol>\n<li>What is Location?<\/li>\n<li>Concept of Location Provider<\/li>\n<li>Case Study<\/li>\n<li>Tools for testing Location based applications<\/li>\n<\/ol>\n<h2><span style=\"color: #3366ff;\">1. What is<strong>\u00a0<strong>Locatio<\/strong>n<\/strong>?<\/span><\/h2>\n<p style=\"text-align: justify;\"><strong>Location<\/strong> is place or point that something is at on this earth. Each point on this earth is identified by two data points &#8211; Latitude and Longitude. There are more attributes to Location but these two are the core.<\/p>\n<h2 dir=\"ltr\"><span style=\"color: #3366ff;\"><strong>2. Concept of Location Provider<\/strong><\/span><\/h2>\n<p dir=\"ltr\">A location provider provides current location of the device to the applications running in the device.<\/p>\n<p dir=\"ltr\" style=\"text-align: justify;\">Each provider has a set of criteria under which it may be used; for example, some providers require GPS hardware and visibility to a number of satellites; others require the use of the cellular radio, or access to a specific carrier&#8217;s network, or to the internet. They may also have different battery consumption characteristics or monetary costs to the user<\/p>\n<p dir=\"ltr\"><span style=\"line-height: 1.714285714; font-size: 1rem;\"><strong>Types of Location Provider &#8211;\u00a0<\/strong><\/span><span style=\"line-height: 1.714285714; font-size: 1rem;\">There are three Location Providers &#8211; GPS Provider, Network Provider and Passive.<\/span><\/p>\n<ul>\n<li>GPS &#8211; \u00a0This provider determines location using satellites. Depending on conditions, this provider may take a while to return a location fix.<\/li>\n<li>Network &#8211; This provider determines location based on availability of cell tower and WiFi access points. Results are retrieved by means of a network lookup.<\/li>\n<li>Passive &#8211; A special location provider for receiving locations without actually initiating a location fix.This provider will return locations generated by other providers.<\/li>\n<\/ul>\n<p><strong>Comparison of Providers:<\/strong><\/p>\n<table>\n<colgroup>\n<col width=\"*\" \/>\n<col width=\"220\" \/>\n<col width=\"196\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\">Provider &#8211; <strong>GPS<\/strong><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Provider &#8211;<strong> Network<\/strong><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Provider &#8211;<strong> Passive<br \/>\n<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Autonomous GPS<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Assisted GPS \/ Wifi<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">CellID lookup\/Wifi<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Use GPS chip on device<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Use GPS chip on device as well as assistance from network (cellular network) to provide fast initial fix<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Doesnot require any GPS chip on device to be active<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Line of site to the satellite<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Work without any line of site to sky<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Work without any line of site to sky<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Sometime take long time to get a fix<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Provide fast lock and accurate<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Provide fast lock<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Power Usage &#8211; high<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Power Usage &#8211; Medium\/Low<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Power Usage &#8211; Low<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Accuracy &#8211; 20ft<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Accuracy &#8211; 200ft<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Accuracy &#8211; 5300ft\/1 mile<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><strong>3. Case Study<\/strong><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><strong style=\"line-height: 1.714285714; font-size: 1rem;\">Situation<\/strong><\/span><span style=\"line-height: 1.714285714; font-size: 1rem;\"> &#8211; Let us study with an example on how to track delivery of goods. Suppose a truck having goods moving along a road has to deliver goods to retail shops in the city. Truck driver is carrying a mobile device and an application.\u00a0A Route is provided that carries address and location of retailers on that route and this data is provided to the application. \u00a0Application gets the current location from Location Provider and compares the proximity of location of retailers with current location. If distance between current location and retailer location is within range then that retailer is marked as visited.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #3366ff;\"><strong>Test Case<\/strong><\/span> &#8211; User goes on the route with this application and application marks the retailers addresses on the route correctly.<\/p>\n<p><span style=\"color: #3366ff;\"><strong>How to Test?<\/strong><\/span><\/p>\n<p style=\"text-align: justify;\">There are two ways to do it:<\/p>\n<p style=\"text-align: justify;\">1. Physically go on that route and test.<br \/>\n2. Emulate that user is moving on that route while physically elsewhere.<\/p>\n<p style=\"text-align: justify;\">You can do a very limited testing while following approach<strong> #1<\/strong> above. So, I will be talking about how to emulate different scenarios while sitting on your desk. Here it goes&#8230;<\/p>\n<p style=\"text-align: justify;\"><span style=\"line-height: 1.714285714; font-size: 1rem;\">Before we take a deep dive, let us understand concept of Location file formats &#8211; <strong>KML<\/strong> and <strong>GPX. <\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"line-height: 1.714285714; font-size: 1rem;\"><span style=\"color: #3366ff;\"><strong>GPX\u00a0<\/strong><\/span>(the GPS Exchange Format) is a light-weight XML data format for the interchange of GPS data (waypoints, routes, and tracks) between applications and Web services on the Internet.<\/span><\/p>\n<p><span style=\"color: #3366ff;\"><strong>GPX File Format:<\/strong><\/span><\/p>\n<pre>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n &lt;gpx\r\n version=\"1.1\"\r\n creator=\"Created by Google My Tracks on Android.\"\r\n xmlns=\"http:\/\/www.topografix.com\/GPX\/1\/1\"\r\n xmlns:topografix=\"http:\/\/www.topografix.com\/GPX\/Private\/TopoGrafix\/0\/1\"\r\n xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n xsi:schemaLocation=\"http:\/\/www.topografix.com\/GPX\/1\/1 http:\/\/www.topografix.com\/GPX\/1\/1\/gpx.xsd http:\/\/www.topografix.com\/GPX\/Private\/TopoGrafix\/0\/1 http:\/\/www.topografix.com\/GPX\/Private\/TopoGrafix\/0\/1\/topografix.xsd\"&gt;\r\n &lt;metadata&gt;\r\n &lt;name&gt;&lt;![CDATA[Truck Route]]&gt;&lt;\/name&gt;\r\n &lt;desc&gt;&lt;![CDATA[]]&gt;&lt;\/desc&gt;\r\n &lt;\/metadata&gt;\r\n &lt;trk&gt;\r\n &lt;name&gt;&lt;![CDATA[Truck Route]]&gt;&lt;\/name&gt;\r\n &lt;desc&gt;&lt;![CDATA[]]&gt;&lt;\/desc&gt;\r\n &lt;type&gt;&lt;![CDATA[]]&gt;&lt;\/type&gt;\r\n &lt;extensions&gt;&lt;topografix:color&gt;c0c0c0&lt;\/topografix:color&gt;&lt;\/extensions&gt;\r\n &lt;trkseg&gt;\r\n &lt;trkpt lat=\"28.581475\" lon=\"77.314435\"&gt;\r\n &lt;ele&gt;137.5&lt;\/ele&gt;\r\n &lt;time&gt;2013-04-03T14:37:10.000Z&lt;\/time&gt;\r\n &lt;\/trkpt&gt;\r\n &lt;trkpt lat=\"28.581517\" lon=\"77.314399\"&gt;\r\n &lt;ele&gt;137.5&lt;\/ele&gt;\r\n &lt;time&gt;2013-04-03T14:37:11.000Z&lt;\/time&gt;\r\n &lt;\/trkpt&gt;\r\n &lt;\/trkseg&gt;\r\n &lt;\/trk&gt;\r\n &lt;\/gpx&gt;<\/pre>\n<p><span style=\"color: #3366ff;\"><strong>KML<\/strong> <\/span>is a file format used to display geographic data in an Earth browser such as Google Earth, Google Maps, and Google Maps for mobile. KML uses a tag-based structure with nested elements and attributes and is based on the XML standard<\/p>\n<p><span style=\"color: #3366ff;\"><strong>KML File Format:<\/strong><\/span><\/p>\n<pre>&lt;?xml version=\"1.0\" encoding=\"ASCII\"?&gt;\r\n &lt;kml xmlns=\"http:\/\/earth.google.com\/kml\/2.2\"&gt;\r\n &lt;Document&gt;\r\n &lt;name&gt;GE2ADT&lt;\/name&gt;\r\n &lt;Placemark&gt;&lt;name&gt;21&lt;\/name&gt;&lt;description&gt;GE2ADT Route&lt;\/description&gt;&lt;Point&gt;&lt;coordinates&gt;-74.61453,40.47307,0&lt;\/coordinates&gt;&lt;\/Point&gt;&lt;\/Placemark&gt;\r\n &lt;Placemark&gt;&lt;name&gt;22&lt;\/name&gt;&lt;description&gt;GE2ADT Route&lt;\/description&gt;&lt;Point&gt;&lt;coordinates&gt;-74.614564,40.472985,0&lt;\/coordinates&gt;&lt;\/Point&gt;&lt;\/Placemark&gt;\r\n &lt;Placemark&gt;&lt;name&gt;23&lt;\/name&gt;&lt;description&gt;GE2ADT Route&lt;\/description&gt;&lt;Point&gt;&lt;coordinates&gt;-74.614661,40.472743,0&lt;\/coordinates&gt;&lt;\/Point&gt;&lt;\/Placemark&gt;\r\n &lt;Placemark&gt;&lt;name&gt;24&lt;\/name&gt;&lt;description&gt;GE2ADT Route&lt;\/description&gt;&lt;Point&gt;&lt;coordinates&gt;-74.614784,40.472387,0&lt;\/coordinates&gt;&lt;\/Point&gt;&lt;\/Placemark&gt;\r\n &lt;Placemark&gt;&lt;name&gt;25&lt;\/name&gt;&lt;description&gt;GE2ADT Route&lt;\/description&gt;&lt;Point&gt;&lt;coordinates&gt;-74.615058,40.471677,0&lt;\/coordinates&gt;&lt;\/Point&gt;&lt;\/Placemark&gt;\r\n &lt;Placemark&gt;&lt;name&gt;26&lt;\/name&gt;&lt;description&gt;GE2ADT Route&lt;\/description&gt;&lt;Point&gt;&lt;coordinates&gt;-74.615168,40.471369,0&lt;\/coordinates&gt;&lt;\/Point&gt;&lt;\/Placemark&gt;\r\n &lt;Placemark&gt;&lt;name&gt;27&lt;\/name&gt;&lt;description&gt;GE2ADT Route&lt;\/description&gt;&lt;Point&gt;&lt;coordinates&gt;-74.615289,40.471028,0&lt;\/coordinates&gt;&lt;\/Point&gt;&lt;\/Placemark&gt;\r\n &lt;\/Document&gt;\r\n &lt;\/kml&gt;<\/pre>\n<p><span style=\"color: #3366ff;\"><strong style=\"line-height: 1.714285714; font-size: 1rem;\">How to generate these files?<\/strong><\/span><\/p>\n<p dir=\"ltr\"><strong><\/strong>There are few tools available to generate GPX \/ KML files. See the Section (Tools) for more details.<span style=\"color: #3366ff;\"><strong style=\"line-height: 1.714285714; text-align: justify; font-size: 1rem;\"><br \/>\n<\/strong><\/span><\/p>\n<h2 dir=\"ltr\"><span style=\"color: #a4c739;\">Testing Steps (In Android)<\/span><\/h2>\n<p dir=\"ltr\"><strong>1. <span style=\"text-decoration: underline;\">Generate the file<\/span><\/strong> &#8211; First of all generate KML \/ GPX file of a route as described above.<\/p>\n<p dir=\"ltr\"><strong>2.<span style=\"text-decoration: underline;\"> Run generated file in Emulator<\/span>\u00a0<\/strong>&#8211; KML \/ GPX File will be played inside Emulator Control of DDMS perspective of Eclipse (with ADT Plugin). Following are the Steps on how to play KML or GPX file in Emulator.<\/p>\n<p><strong>Step 1<\/strong> &#8211;&gt; Open Eclipse<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/lh4.googleusercontent.com\/rRJ0JGbKXI64IlIQuBIFnk36FsgQ7WJLbia5J3QleKFNwabb0zuFeDOg4x4dOwY_2o_5mjAm24_g-gVWcYXr1LU3JwzirUy6SXNfoK2u5I7zxVeOIAyutH8O\" width=\"452px;\" height=\"301px;\" \/><\/p>\n<p><strong>Step 2<\/strong> &#8211;&gt; Create an application that will listen to Location Updates from Location Provider. Open \u00a0\/ Create a Project:<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/14.png\"><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-242\" alt=\"14\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/14.png\" width=\"317\" height=\"435\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/14.png 317w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/14-218x300.png 218w\" sizes=\"(max-width: 317px) 100vw, 317px\" \/><\/a><\/p>\n<p><strong>Step 3<\/strong> &#8211;&gt; Create AVD \/ Emulator.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/AVD2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-251\" alt=\"AVD\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/AVD2.png\" width=\"922\" height=\"187\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/AVD2.png 922w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/AVD2-300x60.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/AVD2-624x126.png 624w\" sizes=\"(max-width: 922px) 100vw, 922px\" \/><\/a><\/p>\n<p><strong>Step 4<\/strong> &#8211;&gt; Run Your Application in Android Emulator<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Run_app.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-244\" alt=\"Run_app\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Run_app.png\" width=\"737\" height=\"549\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Run_app.png 737w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Run_app-300x223.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Run_app-624x464.png 624w\" sizes=\"(max-width: 737px) 100vw, 737px\" \/><\/a><\/p>\n<p><strong>Step 5<\/strong> &#8211;&gt; Open Google Map In Emulator<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/lh6.googleusercontent.com\/TI-oQafGzCRUpLxrF0Eip5vPEXYoygh_gxyuKQY1-bIY-wSq8ur4WpEj460Imor7vTpNEe5sqOFw4gtH-wLBCv7HP1nWsJqkUimUA3AUWRbO_-uuBFcQekQ7\" width=\"332px;\" height=\"367px;\" \/><\/p>\n<p><strong>Step 6<\/strong> &#8211;&gt; In DDMS, \u00a0select Emulator Control<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-245\" alt=\"Location Control\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/7.png\" width=\"863\" height=\"301\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/7.png 863w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/7-300x104.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/7-624x217.png 624w\" sizes=\"(max-width: 863px) 100vw, 863px\" \/><\/a><\/p>\n<p><strong>Step 7<\/strong>&#8211;&gt;\u00a0For Loading GPX File, select your applcation and then click on &#8220;Load GPX&#8230;&#8221;<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/lh4.googleusercontent.com\/9NC7N1oAJZz5YaqEmOtpuxwUbimL8BpwfH2vYuxk0jbJLd5tEuc7UZFwExjqvfdQRHN4Zs4yy1exPgGN7NNUYQQNkCsoIpZ4bGTzVaT-5mSvtH4_aGlYLw2s\" width=\"398px;\" height=\"311px;\" \/><\/p>\n<p><strong>Step 8<\/strong> &#8211;&gt; After loading GPX File in Location Control, you will see your GPX File name<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/load_gpx.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-246\" alt=\"load_gpx\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/load_gpx.png\" width=\"706\" height=\"249\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/load_gpx.png 706w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/load_gpx-300x105.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/load_gpx-624x220.png 624w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><\/a><\/p>\n<p><strong>Step 9<\/strong> &#8211;&gt; To Play GPX File, Select GPX file and click Play button at the bottom.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Play_gpx.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-247\" alt=\"Play_gpx\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Play_gpx.png\" width=\"702\" height=\"156\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Play_gpx.png 702w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Play_gpx-300x66.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Play_gpx-624x138.png 624w\" sizes=\"(max-width: 702px) 100vw, 702px\" \/><\/a><\/p>\n<p>You will see a point move on the Map.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Map_pointer.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-248\" alt=\"Map_pointer\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Map_pointer.png\" width=\"540\" height=\"414\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Map_pointer.png 540w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Map_pointer-300x230.png 300w\" sizes=\"(max-width: 540px) 100vw, 540px\" \/><\/a><\/p>\n<p>Similarly you can load KML files.<\/p>\n<p><em>Notes:- \u00a0DDMS support only GPX 1.1 Files<\/em><\/p>\n<p dir=\"ltr\"><strong>3. <span style=\"text-decoration: underline;\">Check the data in the application if the route is marked correctly<\/span><\/strong><\/p>\n<p dir=\"ltr\">See the results of the Test in your application.<\/p>\n<h2 dir=\"ltr\"><span style=\"color: #6c6c6c;\"><strong>Testing Steps (On iOS):<\/strong><\/span><\/h2>\n<p dir=\"ltr\"><strong>1.\u00a0Generate the file\u00a0<\/strong>&#8211; There is different GPX file format that is to be played on iOS simulator. For details please follow &#8216;RunKeeper&#8217; tool below and generate GPX file of route.<\/p>\n<p dir=\"ltr\"><strong>2.\u00a0Run that generated\u00a0in Simulator\u00a0<\/strong>&#8211;\u00a0Open up your xCode project, you can select Product -&gt; Debug -&gt; Simulate Location-&gt;Add GPX file from the menu bar to add GPX file to your project<\/p>\n<p>\u00a0<a style=\"line-height: 1.714285714; font-size: 1rem;\" href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-267\" alt=\"1\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/1.png\" width=\"754\" height=\"717\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/1.png 754w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/1-300x285.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/1-624x593.png 624w\" sizes=\"(max-width: 754px) 100vw, 754px\" \/><\/a><\/p>\n<p dir=\"ltr\">It will ask you to choose\/add your GPX file.<\/p>\n<p dir=\"ltr\"><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/24.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-268\" alt=\"2\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/24.png\" width=\"719\" height=\"639\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/24.png 719w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/24-300x266.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/24-624x554.png 624w\" sizes=\"(max-width: 719px) 100vw, 719px\" \/><\/a><\/p>\n<p dir=\"ltr\">After adding GPX file, you can select Location icon in xCode and click your GPX file name .<\/p>\n<p dir=\"ltr\"><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-269\" alt=\"3\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/3.png\" width=\"424\" height=\"176\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/3.png 424w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/3-300x124.png 300w\" sizes=\"(max-width: 424px) 100vw, 424px\" \/><\/a><\/p>\n<p dir=\"ltr\">You will see a point move on the Map<\/p>\n<p dir=\"ltr\"><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-270\" alt=\"4\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/4.png\" width=\"319\" height=\"484\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/4.png 319w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/4-197x300.png 197w\" sizes=\"(max-width: 319px) 100vw, 319px\" \/><\/a><\/p>\n<h2><span style=\"color: #3366ff;\"><strong>4. Tools for testing Location based application<\/strong><\/span><\/h2>\n<p dir=\"ltr\"><span style=\"color: #3366ff;\"><strong><span style=\"line-height: 1.714285714; font-size: 1rem;\">1. My Tracks\u00a0<\/span><\/strong><\/span><\/p>\n<p dir=\"ltr\">It is an Android application useful for creating KML, GPX file. My Tracks records your path, speed, distance, and elevation while you walk, run, bike, or do anything else outdoors. You can download My Tracks from Google Play.<\/p>\n<p>URL &#8211;\u00a0<a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.maps.mytracks\">https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.maps.mytracks<\/a>)<\/p>\n<p dir=\"ltr\"><strong><span style=\"text-decoration: underline;\">Usage<\/span>\u00a0<\/strong>&#8211; Somebody can physically record the path by actually moving on that Good Delivery Route and generate the File for Testing team.<\/p>\n<p dir=\"ltr\"><span style=\"color: #3366ff;\"><strong>2. KML Generator\u00a0<\/strong><\/span><\/p>\n<p dir=\"ltr\">It is website that generate KML file using GPS coordinate. We just have to put latitude and longitude under GPS coordinate column and output as KML (download). You can go to this website through this url &#8211; \u00a0<a href=\"http:\/\/kmltools.nobletech.com\/\">http:\/\/kmltools.nobletech.com\/<\/a><\/p>\n<p dir=\"ltr\"><strong><span style=\"text-decoration: underline;\">Usage<\/span><\/strong>\u00a0&#8211; If you know the Coordinates (Latitude and Longitude) of the points on the Path then you can generate KML file.<\/p>\n<p dir=\"ltr\">\u00a0<img decoding=\"async\" alt=\"\" src=\"https:\/\/lh5.googleusercontent.com\/i_Dp3X5adw66S80fxTlUIvK35EiwE3srhcYguHYBym7TxQ3LIQdtjOmmEDBwvFsjbrdl40qEUwPFGJigIHUUr-cGfw9axGPsYwYthNS0L63NWAY45cXIQZjR\" width=\"697px;\" height=\"359px;\" \/><\/p>\n<p dir=\"ltr\"><span style=\"color: #3366ff;\"><strong>3. Google Earth to ADT plugin\u00a0<\/strong><\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify;\">This application helps in converting KML file to another format of KML that Android development tools (Suitable for Eclipse Android ADT plugin)\u00a0can understand. Here a link to the url &#8211; (<a href=\"http:\/\/ge2adt.appspot.com\/\">http:\/\/ge2adt.appspot.com\/<\/a>)<\/p>\n<p dir=\"ltr\" style=\"text-align: justify;\">This application help in generating kml file for make path or placemark in google earth or convert Google Earth routes to a format suitable for Eclipse Android ADT plugin 0.8.0<\/p>\n<p><img decoding=\"async\" style=\"line-height: 1.714285714; font-size: 1rem;\" alt=\"\" src=\"https:\/\/lh5.googleusercontent.com\/87qritLHOnnWqdj7R1ADp-nhS_VAtPlMc1g2Ukt8gGLetVgNwPoQanCb9zFNC_5vJpzgjQu3q5Y-KvlrVUKAwCrBnFQaLBB2wmiCJFT0ZYeEaiatJrZgyYbq\" width=\"708px;\" height=\"250px;\" \/><\/p>\n<p><span style=\"color: #3366ff;\"><strong>\u00a04. Google Earth<\/strong><\/span><\/p>\n<p>You can visually see the path \/ route on Google Earth.<\/p>\n<p>Ex. You can have a <span style=\"text-decoration: underline;\">Delivery Route KML file<\/span> &amp; the <span style=\"text-decoration: underline;\">Actual KML file<\/span> that was played and see the points on Google Earth.<\/p>\n<p><img decoding=\"async\" alt=\"\" src=\"https:\/\/lh4.googleusercontent.com\/bkzWwEF-oGwxcZKkMaNCO4SjxjjGcRF2hGwdYX4OOxc23flGm7a9sx6wikCFfpiPTSW_8njIMEPGjB3jJfuJ4DqMTrHnuuUz3ZRbjPLTiGxmceVD0Ffee9iqkQ\" width=\"735px;\" height=\"389px;\" \/><\/p>\n<p><span style=\"color: #3366ff;\"><strong>5. RunKeeper\u00a0<\/strong><\/span><\/p>\n<p>This application generate GPX file that is to be played on iOS simulator. Follow below steps to generate GPX file.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Usage<\/strong><\/span>\u00a0&#8211; Somebody can physically record the path by actually moving on that Good Delivery Route and generate the File for Testing team.<\/p>\n<p>1. Download \u2018RunKeeper\u2019 app from the app store, and run it.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/A.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-261\" alt=\"A\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/A.png\" width=\"243\" height=\"367\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/A.png 243w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/A-198x300.png 198w\" sizes=\"(max-width: 243px) 100vw, 243px\" \/><\/a><\/p>\n<p>2.\u00a0After sign up for the app, you can start capturing GPS log. Press \u2018Start Activity\u2019 and walk around under an open sky.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/B.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-262\" alt=\"B\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/B.png\" width=\"244\" height=\"364\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/B.png 244w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/B-201x300.png 201w\" sizes=\"(max-width: 244px) 100vw, 244px\" \/><\/a><\/p>\n<p>3. After you logged GPS data enough, press \u2018STOP\u2019 button, and then \u2018Yes I\u2019m done\u2019<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/C.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-263\" alt=\"C\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/C.png\" width=\"491\" height=\"366\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/C.png 491w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/C-300x223.png 300w\" sizes=\"(max-width: 491px) 100vw, 491px\" \/><\/a><\/p>\n<p>4.\u00a0Hit \u2018Save\u2019 to transfer GPS data to RunKeeper website.<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/D.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-264\" alt=\"D\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/D.png\" width=\"243\" height=\"365\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/D.png 243w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/D-199x300.png 199w\" sizes=\"(max-width: 243px) 100vw, 243px\" \/><\/a><\/p>\n<p>5. Log in to RunKeeper website with the account that you signed up from step 2 Then click on \u2018Activities\u2019<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Runkeeper1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-265\" alt=\"Runkeeper1\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Runkeeper1.png\" width=\"870\" height=\"417\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Runkeeper1.png 870w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Runkeeper1-300x143.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Runkeeper1-624x299.png 624w\" sizes=\"(max-width: 870px) 100vw, 870px\" \/><\/a><\/p>\n<p>6. Scroll down, and then you can find \u00a0\u2018Export GPX\u2019 option. Click on it, so you can download GPX file from the website<\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Runkeeper-Export.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-266\" alt=\"Runkeeper-Export\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Runkeeper-Export.png\" width=\"700\" height=\"315\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Runkeeper-Export.png 700w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Runkeeper-Export-300x135.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/Runkeeper-Export-624x280.png 624w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<p>After downloading GPX file, the GPX file format looks like this.<\/p>\n<pre>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n &lt;gpx\r\n version=\"1.1\"\r\n creator=\"RunKeeper - http:\/\/www.runkeeper.com\"\r\n xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n xmlns=\"http:\/\/www.topografix.com\/GPX\/1\/1\"\r\n xsi:schemaLocation=\"http:\/\/www.topografix.com\/GPX\/1\/1 http:\/\/www.topografix.com\/GPX\/1\/1\/gpx.xsd\"\r\n xmlns:gpxtpx=\"http:\/\/www.garmin.com\/xmlschemas\/TrackPointExtension\/v1\"&gt;\r\n &lt;trk&gt;\r\n &lt;name&gt;&lt;![CDATA[Running 8\/23\/13 1:44 pm]]&gt;&lt;\/name&gt;\r\n &lt;time&gt;2013-08-23T13:44:05Z&lt;\/time&gt;\r\n &lt;trkseg&gt;\r\n &lt;trkpt lat=\"28.581355000\" lon=\"77.319664000\"&gt;&lt;ele&gt;207.0&lt;\/ele&gt;&lt;time&gt;2013-08-23T13:44:05Z&lt;\/time&gt;&lt;\/trkpt&gt;\r\n &lt;trkpt lat=\"28.581355000\" lon=\"77.319664000\"&gt;&lt;ele&gt;207.0&lt;\/ele&gt;&lt;time&gt;2013-08-23T13:44:06Z&lt;\/time&gt;&lt;\/trkpt&gt;\r\n &lt;\/trkseg&gt;\r\n &lt;\/trk&gt;\r\n &lt;\/gpx&gt;<\/pre>\n<p style=\"text-align: justify;\">This GPX format can&#8217;t be played on iOS simulator. We have to do some modification so that it can be play on iOS simulator. Remove all of &lt;trk&gt; and &lt;trkseg&gt; from the files (Find and delete it). Press \u00a0ALT+Command+F, and replace tag &#8216;trkpt&#8217; into &#8216;wpt&#8217;.<\/p>\n<p>GPX File Format &#8211; playable in iOS simulator:<\/p>\n<pre>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;gpx\r\nversion=\"1.1\"\r\ncreator=\"RunKeeper - http:\/\/www.runkeeper.com\"\r\nxmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\nxmlns=\"http:\/\/www.topografix.com\/GPX\/1\/1\"\r\nxsi:schemaLocation=\"http:\/\/www.topografix.com\/GPX\/1\/1 http:\/\/www.topografix.com\/GPX\/1\/1\/gpx.xsd\"\r\nxmlns:gpxtpx=\"http:\/\/www.garmin.com\/xmlschemas\/TrackPointExtension\/v1\"&gt;\r\n&lt;name&gt;&lt;![CDATA[Running 8\/23\/13 1:44 pm]]&gt;&lt;\/name&gt;\r\n&lt;time&gt;2013-08-23T13:44:05Z&lt;\/time&gt;\r\n&lt;wpt lat=\"28.581355000\" lon=\"77.319664000\"&gt;&lt;ele&gt;207.0&lt;\/ele&gt;&lt;time&gt;2013-08-23T13:44:05Z&lt;\/time&gt;&lt;\/wpt&gt;\r\n&lt;wpt lat=\"28.581355000\" lon=\"77.319664000\"&gt;&lt;ele&gt;207.0&lt;\/ele&gt;&lt;time&gt;2013-08-23T13:44:06Z&lt;\/time&gt;&lt;\/wpt&gt;\r\n&lt;\/gpx&gt;<\/pre>\n<p>Application URL:<br \/>\n<a href=\"https:\/\/itunes.apple.com\/us\/app\/runkeeper-gps-track-running\/id300235330?mt=8\">https:\/\/itunes.apple.com\/us\/app\/runkeeper-gps-track-running\/id300235330?mt=8<\/a><br \/>\nWebsite URL:<br \/>\n<a href=\"https:\/\/runkeeper.com\/login\">https:\/\/runkeeper.com\/login<\/a><\/p>\n<p><span style=\"font-size: 1rem; line-height: 1.714285714;\">I hope this was helpful and I didn&#8217;t overload you &#8230;. \ud83d\ude42<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome to the world of Location. We have been talking about Location as an important attribute in mobile apps today. Business people and Developers are talking about it. Have you ever thought as to how a testing of apps based on location can be done? Let us talk about it. This articles flows like this: [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":239,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3,71,7],"tags":[159,14,160,83,82,165],"class_list":["post-99","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-ios","category-mobile","category-mobile-testing","tag-android","tag-innovationm","tag-ios","tag-location","tag-location-testing","tag-mobile"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Location Testing in Mobile Apps | InnovationM Blog<\/title>\n<meta name=\"description\" content=\"Location is an important attribute in mobile apps today. Have you ever thought as to how a testing of apps based on location can be done?\" \/>\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\/location-testing-in-mobile-apps\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Location Testing in Mobile Apps | InnovationM Blog\" \/>\n<meta property=\"og:description\" content=\"Location is an important attribute in mobile apps today. Have you ever thought as to how a testing of apps based on location can be done?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-09-09T10:27:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-03-07T13:30:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/InnovationM-Location-Testing-Mobile.png\" \/>\n\t<meta property=\"og:image:width\" content=\"299\" \/>\n\t<meta property=\"og:image:height\" content=\"154\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ashish Seth\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ashish Seth\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/\"},\"author\":{\"name\":\"Ashish Seth\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d1d9e5f4c0107300797bec032e33bd\"},\"headline\":\"Location Testing in Mobile Apps\",\"datePublished\":\"2013-09-09T10:27:35+00:00\",\"dateModified\":\"2014-03-07T13:30:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/\"},\"wordCount\":1510,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/08\\\/InnovationM-Location-Testing-Mobile.png\",\"keywords\":[\"Android\",\"InnovationM\",\"iOS\",\"Location\",\"Location Testing\",\"Mobile\"],\"articleSection\":[\"Android\",\"iOS\",\"Mobile\",\"Mobile Testing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/\",\"name\":\"Location Testing in Mobile Apps | InnovationM Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/08\\\/InnovationM-Location-Testing-Mobile.png\",\"datePublished\":\"2013-09-09T10:27:35+00:00\",\"dateModified\":\"2014-03-07T13:30:56+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d1d9e5f4c0107300797bec032e33bd\"},\"description\":\"Location is an important attribute in mobile apps today. Have you ever thought as to how a testing of apps based on location can be done?\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/08\\\/InnovationM-Location-Testing-Mobile.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/08\\\/InnovationM-Location-Testing-Mobile.png\",\"width\":299,\"height\":154,\"caption\":\"InnovationM Location Testing on Mobile\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/location-testing-in-mobile-apps\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Location Testing in Mobile Apps\"}]},{\"@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\\\/c4d1d9e5f4c0107300797bec032e33bd\",\"name\":\"Ashish Seth\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d1c0e1956e790baa328f124e3d59baea74d670f6db4835389365f1272d091df0?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d1c0e1956e790baa328f124e3d59baea74d670f6db4835389365f1272d091df0?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d1c0e1956e790baa328f124e3d59baea74d670f6db4835389365f1272d091df0?s=96&r=g\",\"caption\":\"Ashish Seth\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/ashish-seth\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Location Testing in Mobile Apps | InnovationM Blog","description":"Location is an important attribute in mobile apps today. Have you ever thought as to how a testing of apps based on location can be done?","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\/location-testing-in-mobile-apps\/","og_locale":"en_US","og_type":"article","og_title":"Location Testing in Mobile Apps | InnovationM Blog","og_description":"Location is an important attribute in mobile apps today. Have you ever thought as to how a testing of apps based on location can be done?","og_url":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/","og_site_name":"InnovationM - Blog","article_published_time":"2013-09-09T10:27:35+00:00","article_modified_time":"2014-03-07T13:30:56+00:00","og_image":[{"width":299,"height":154,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/InnovationM-Location-Testing-Mobile.png","type":"image\/png"}],"author":"Ashish Seth","twitter_misc":{"Written by":"Ashish Seth","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/"},"author":{"name":"Ashish Seth","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/c4d1d9e5f4c0107300797bec032e33bd"},"headline":"Location Testing in Mobile Apps","datePublished":"2013-09-09T10:27:35+00:00","dateModified":"2014-03-07T13:30:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/"},"wordCount":1510,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/InnovationM-Location-Testing-Mobile.png","keywords":["Android","InnovationM","iOS","Location","Location Testing","Mobile"],"articleSection":["Android","iOS","Mobile","Mobile Testing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/","url":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/","name":"Location Testing in Mobile Apps | InnovationM Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/InnovationM-Location-Testing-Mobile.png","datePublished":"2013-09-09T10:27:35+00:00","dateModified":"2014-03-07T13:30:56+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/c4d1d9e5f4c0107300797bec032e33bd"},"description":"Location is an important attribute in mobile apps today. Have you ever thought as to how a testing of apps based on location can be done?","breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/InnovationM-Location-Testing-Mobile.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2013\/08\/InnovationM-Location-Testing-Mobile.png","width":299,"height":154,"caption":"InnovationM Location Testing on Mobile"},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/location-testing-in-mobile-apps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Location Testing in Mobile Apps"}]},{"@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\/c4d1d9e5f4c0107300797bec032e33bd","name":"Ashish Seth","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d1c0e1956e790baa328f124e3d59baea74d670f6db4835389365f1272d091df0?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d1c0e1956e790baa328f124e3d59baea74d670f6db4835389365f1272d091df0?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d1c0e1956e790baa328f124e3d59baea74d670f6db4835389365f1272d091df0?s=96&r=g","caption":"Ashish Seth"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/ashish-seth\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/99","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\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=99"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/99\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/239"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=99"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=99"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=99"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}