Designing a mobile computing application

Assignment Help Programming Languages
Reference no: EM13912771

TASK 1 (TRACKING THE USER):

LTUPersonalLogger should be able to track the user by getting regular updates (at a frequency that the user can specify, but have a default value) on the user's location. For example, at the click of a button (e.g., labelled "Track", or some other useful label, or some other widget), and then at the click of another button (or some other UI option), LTUPersonalLogger should stop tracking. When the user stops tracking, the user should be asked (in a dialog box) whether s/he would like the tracked information saved or not, and if so, should save the path information on the phone.

Provide the following features:

i). The user should able to browse previously saved paths and ask LTUPersonalLogger to show them on a screen on a map (e.g., using Google map).

ii). You should use a media/mean/Bayesian filter to filter out outlier points or smooth out the path.

iii). As using the GPS is battery consuming, the app should also be sensitive to battery levels and perhaps stop GPS based tracking or disallow tracking or warn the user if battery levels are too low (e.g., below 20%).

iv). When a tracked path is saved, LTUPersonalLogger should allow the user to compute how many calories were burnt while walking on that path: calories burnt depends on the walking speed (1 mph is around 1.6 km/h):

"Walking speed is an important factor in determining the amount of calories burned. The average walking stroll is less than 2 mph, which burns 136 calories per hour. Turn it into a speed-walking pace of 3.5 mph and your burn rate goes up to 238. At 5 mph (you might as well call this a jog), a person can burn up to 544 calories per hour." [src: https://www.ehow.com/how-does_4569224_many- calories-walking-burn_.html?ref=Track2&utm_source=ask]

The calories burnt also depends on height and weight of a person, which a?ects walking speed. Hence, for this assignment, simply use the following formula:

Calories-burnt = hours-walked * calories-per-hour
= (distance-walked-in-miles / walking-speed-in-mph) * calories-per-hour
= ((distance-walked-in-km / 1.6) / 2) * 136
= distance-walked-in-km * 42.5
(assuming a walking speed on average of 2mph)

TASK 2 (USER CAN ASK FOR RECOMMENDATIONS OF NEARBY POIs: QUERY AND BROWSE THE LOCATIONS AND WALKING PATHS TO POINTS-OF-INTEREST OF A CERTAIN TYPE WITHIN A GIVEN DISTANCE FROM THE USER'S CURRENT LOCATION) : [Coding]
LTUPersonalLogger should provide a user interface to allow the user to enter a distance measure and type of Point-Of-Interest (POI) (e.g., "museum") in order to query (using Google Places API) for particular types of POIs (e.g., museums) within a given distance from the current location of the user. The user can then select one or more POI( s) from the l ist of returned POIs and LTUPersonalLogger should show on a map the selected POI(s)'s location and the walking path to the POI(s) from the user's current location (whatever the user's current location).

For example, using the Place Search feature of the Google Places API (see https://developers.google.com/places/documentation/search), the user can query for museums (POIs of type "museum") within 3000m (or 3km) of where the user currently is, supposing the user is currently at
location=-37.7838757,144.9515533, via this URL:
https://maps.googleapis.com/maps/api/place/nearbysearch/xml? location=-37.7838757,144.9515533&radius=3000&types=museum&sensor=tr ue&key=AIzaSyD4owSfxQjLu-_8ykHy3nJkKL6gai3wOAs

[Note that you should replace the key in the URL above with your own key.]

The response from Google is then a document containing a list of museums within 3km of the user, such as the following:
<PlaceSearchResponse>
<status>OK</status>
<result>
<name>Melbourne Museum</name>
<vicinity>11 Nicholson St, Carlton</vicinity>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.8036460</lat>
<lng>144.9729420</lng>
</location>
</geometry>
<rating>4.6</rating>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png</icon>
<reference>CoQBcwAAAHeDBSMia-8jHROwbiY69zp-pXhcT4BvJ23rI3tWb0FKjdzyIWe- XXuMslLUlMlXBmHTeSBIgs9oI7m6cwHSl03XPWzql4kwxYV5OHTqZlfh4CozHjz- KHM1J2ePRyWHKDjX4Vs53zMmxugn-e3wZV2dSDFRItiNaI_7yZEhdVaxEhDGic56nGcv7DoW1kZu- T4eGhQHTuutJpN_0C2XrL_JOuooqs3t2w</reference>
<id>4bd7eaf60fc576b806f296343c456e83f0450301</id>
<opening_hours>
<open_now>true</open_now>
</opening_hours>
<photo>

<photo_reference>CnRwAAAAbXbme5r32isC4jnz1Avf5xW9_sZAV0EMoQaJ7n0tclm3a- iFr8Xm_qCuM9PccbNWpFoGAb2wOASO2zl8udi9r1XbemSg5mA8O8VFo-wDULyw9X- rfe4S7MJqdr3w_yJneBIUUxNXQubJKgK7xh1GWhIQc9Vp7S72LcpQMeF6eJdmOxoUdvw8o2Fjgkc39 TIgHk0zgZx4aiQ</photo_reference>
<width>768</width>
<height>1024</height>
<html_attribution>From a Google User</html_attribution>
</photo>
<place_id>ChIJn97JQNpC1moRIcJsVMEQLI8</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>Old Melbourne Gaol</name>
<vicinity>377 Russell St, Melbourne</vicinity>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.8078640</lat>
<lng>144.9652000</lng>
</location>
</geometry>
<rating>3.9</rating>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png</icon>
<reference>CoQBdQAAADY36_wSlH88Sdxj1yDviMJMqvUPbMkxRNlTUOyx7o80- DfiWVkDty4gwRBd_agsQFwzkSCgkLset_G1D_sIa8Ze18eh0a4-pn6Cw- kopKsPM_dLv6pLeJLOxeqDm3- lDv2ZYYUkLtlUw8YVJaPpnV02ajbPn8jnnlze1sTXjD5IEhCA1ib2u1koP4TSkTbHr0VmGhRuuPRu_ZwU HUl950CpywiQUo0Ofw</reference>
<id>e98f8eb67cc5040be241794?abcf3a9eabfbd3e</id>
<opening_hours>
<open_now>true</open_now>
</opening_hours>
<photo>

<photo_reference>CnRnAAAApBWABPnn63GgW0arQCpN35Mey7NSfvcu6kEFJe2T5WHhKYmcA2uta xRnwR0elrcyCRF-qInWEKHhSHxRBRUz6vzNxICYfqdKbgE9jLbzmXVxCidwj7geFXrj57p5ORug3vis- J3ezYkj3qrHDmAugBIQz2fnCHlXBa7ceh3eUd1-9BoURCl-XHK7_sBB7TolWgjVw-pyCGU</ photo_reference>
<width>448</width>
<height>299</height>
</photo>
<place_id>ChIJYUcwasxC1moResepeNQs7Z0</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>Ian Potter Museum of Art</name>
<vicinity>800 Swanston St, Carlton</vicinity>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.7975810</lat>
<lng>144.9643090</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png</icon>

<reference>CoQBewAAAHupR5iaz9Wxa84mzyTEBRKzcqjntQbAZdxLKsu2WhNKgHhpfaZUFhtjPkILP 5zKukZwG5gY85FE-9YSK3aFNpP6aOprUxbHaWl5s5h25jcv3PtUcaG_tTXGkGBytmJlupdcrrE1f3qpWy
_YAJ7tcyfA- a77_ljIVE9qQoBozjq_EhDEKt5uSepX2pZSLuLyB22bGhTYqMJFm_1PHdmTFCjMHxBhWbPnYQ</ reference>
<id>1cb421e12238e7fdb2b06b83b048002bc06e7084</id>
<place_id>ChIJg9Jjvi1d1moRF77DDPazqqo</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>Grainger Museum</name>
<vicinity>13 Royal Parade, Parkville</vicinity>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.7973270</lat>
<lng>144.9584220</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png</icon>

<reference>CoQBcQAAAMCQOyaQ7WftpwWFJjpl1ARpzZqCqENJdfl9el9VJRamjHGzbnQ3PjKkYEGR QljXt1fynbv6vuGWHjmr9KgkCmWLEICHOg6wNwYhlBU36to5VE8fgfcLxB5waZlTwKXLFvWMdY6gGEi D2_-3ZJGcw364dX0v4MsFJtaf83otPLV8EhBOtfTdKwsz2e9R7APAeVN4GhQxRXi_ZgGwbWm0fb855h NTCTj0ww</reference>
<id>8c6871ad0a38424a00d115?2305c2e385f7c762</id>
<opening_hours>
<open_now>true</open_now>
</opening_hours>
<place_id>ChIJ_dBZXSxd1moRWA0wMvYa5VA</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>Fire Services Museum of Victoria</name>
<vicinity>39 Gisborne St, East Melbourne</vicinity>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.8085420</lat>
<lng>144.9754110</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png</icon>

<reference>CpQBgwAAAP6jB4Bw74zi32yLBWOnOmIj91oLKKU5fHytgaxfHWr107HkZJ0OzWVzCvD8 hNgbMjox7ZreDI9MBuLtRuoqjNwZjrk7pbC- E312nlMa6dR46OAYYFVI40JL93W7t0QCA8kTe1_du7TqOLZ0lgyeGuoDSZnBQGMk44vhMwW5ZVsrlQ R8epn0WATPqR8WrgqEihIQtbWtFvZYVCQ5f-FmhkrDwxoUYU-sSwgb1gT9XHSbqNQk6FlnSO0</ reference>
<id>100096ada1f3adc18de9e33f0d927bef3cd6be14</id>
<opening_hours>
<open_now>false</open_now>
</opening_hours>
<place_id>ChIJa2Up5MRC1moRW57TS6-ur-4</place_id>
<scope>GOOGLE</scope>

</result>
<result>
<name>Australian Galleries</name>
<vicinity>35 Derby St, Collingwood</vicinity>
<type>art_gallery</type>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.8070630</lat>
<lng>144.9847600</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/art_gallery-71.png</icon>
<reference>CoQBdwAAAA75cg0RHLlcekyjXi6341Q9qlVpyL-
_KWdaTZZpNfWh_jik6buNJwVWB12joqGcjKkFb3FdqW1vGtspy4C6kkmhqqwpNXlnC7IcZRFgZkNXq V4I0axwNrdD85AqjLLUh8Z1RrRyE41q2lWFy_1zFZj51gMxVnz70TUQ0ims7- v8EhBN9XHx61vihKG4VSN9chJ0GhQ6KC9TGsc3JuqTT0KzXLpHj992Dg</reference>
<id>2193df8771478a2c169765e90726d21319f05c94</id>
<opening_hours>
<open_now>true</open_now>
</opening_hours>
<photo>
<photo_reference>CnRnAAAAiWuT3uBItuLhC3yeg_BlB5vAdXl5oJGjxsPjIAhA2AEoBqqZ3v- bhr0dXDF60Ju7UqnJs7IAErtSjIoyULg0KKgSK- MRze?CbFVLqecB19o47czijcwYLItMAbuwt0c8FpWXnUveVoAf7o0kY_x7xIQRvAT_jbU99L9zqDKnuaX jhoUszokebwrGasQPaMHwFvgArU2fOc</photo_reference>
<width>400</width>
<height>400</height>
</photo>
<place_id>ChIJJQciid1C1moRhsbV4k9-h48</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>Asia Education Foundation</name>
<vicinity>4th Floor, Sidney Myer Asia Centre/Swanston St, Parkville</vicinity>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.7985040</lat>
<lng>144.9642300</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png</icon>
<reference>CoQBewAAAJK0RYpi5JLBHhF5sdpqtFucd0hMpxLt19hSIE0tUlPgY5EvxsmBDc- a5EAbm2PotFbS8B9-Hr- DU2qM4AHWDSlt0qcyi_nKT6XIWxnwzSnp6gHECniIiPMl6qK5dJelqYLNiNvFt73qWHOsOPCfy093DOZ xR7whPf8gbEVo8y5zEhC0zsjpclOpzPcmEjoV0vHgGhRI24rW06HEmZ7YcpBAOX2iapaebQ</ reference>
<id>dc3371231591f91814c11fd82c7?052ebe68e77</id>
<place_id>ChIJJ-aIfNRC1moRwmaPM7lrBQ4</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>Mary MacKillop Heritage Centre - Museum</name>
<vicinity>362 Albert St, East Melbourne</vicinity>
<type>museum</type>

<type>establishment</type>
<geometry>
<location>
<lat>-37.8097970</lat>
<lng>144.9792060</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png</icon>
<reference>CpQBigAAAEKYq0sVP-aOy4KX9uBJEQzWT0XqBX7AfPlOkxZNq0- Wa_3srEP0iD1WHArCV85jmai9thl6S3gnFeInkE-sUmWbx7QbsODKs3OWCsD-7AbCxr6mAhniCqdFL- iosbAVpPILO5- OrlobUUUtoizgUSJ8UZVX9rywF6kDmKP2m6Hicq6rs0X6BHTsYFlR0bYcJRIQU4Er11ko6BFcsZkLeyg gIhoUgyeaSpER2aqDAyFHL3TDI7L5-K8</reference>
<id>7ad102c507349c52269519d50400f1989e40a773</id>
<place_id>ChIJfyHZP8NC1moRGrAW1qx5oc4</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>George Paton Gallery</name>
<vicinity>2nd Floor Union House University of Melbourne/Union Rd, Melbourne City</vicinity>
<type>art_gallery</type>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.7968880</lat>
<lng>144.9613820</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/art_gallery-71.png</icon>
<reference>CoQBdwAAAIKHod_3rkl- IVa4QHeECw_ybSWF7i_cLRhzJawJVdTkeCmwYTKSNlamA1lb_AEAwMeUC_2wnBxkAojVWhwlmznZ GYnqIJIDStQKgTaSlu9HWiZKgixvFxErGLNZUbddjJGKcmIM7GRuBkUgZClhgpDxX8hbDnTdTNhZ5_G oxZpyEhAAoOnGcSgrXADFYvyYbwImGhRrxdhkL9ixDTHwEZ9-OtHOFnoiww</reference>
<id>e6e302873a600d60b77a484adddaa382b97b299d</id>
<opening_hours>
<open_now>true</open_now>
</opening_hours>
<place_id>ChIJg9Jjvi1d1moRm76xelEQX6Y</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>House Of Tibet Pty Ltd - Vastra</name>
<vicinity>272 Victoria St, Brunswick</vicinity>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.7675220</lat>
<lng>144.9644940</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png</icon>
<reference>CpQBgQAAANI9Qj-xLcIFgx2w4Ef- kV0qYPbUWL8ZFqF3wbKnvXkRtsCvv4JuzVGFsGRVSF- tu9rKRUr_WUjsWCZxDKrESfoZlpErFwKblpnC5L4gq0e5KzVKrU9wMwN_WivI- Ufb2bYsZ2T5x_pwUQcp1Gcj6_BLhxMnQI4eKSpFle38DOJ6PfqFM9L9_69H4lJHjZet-BIQhM- PEWhMlihhYPj6usb9RxoUvk3wJJP3hkjvz-LKqw5SrLN_Cy0</reference>

<id>93fca91cdb4da0f171690dca9010bc9348452faf</id>
<opening_hours>
<open_now>true</open_now>
</opening_hours>
<place_id>ChIJE7eEok1D1moRZ12kbUj4zh0</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>FilmNeverDie Gallery</name>
<vicinity>367 Mile Ln, Parkville</vicinity>
<type>art_gallery</type>
<type>museum</type>
<type>electronics_store</type>
<type>store</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.7806720</lat>
<lng>144.9586160</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/art_gallery-71.png</icon>

<reference>CoQBdgAAAEaVB9j4cfUh4nUmNJekbydt807pyTHV2JKWyKl1GhOs0rY36WdXFKCkO0Bd GEJtoRQMZZQiGu66W-JWKRJtlTZXIA0WfGquby74he6gZ42lZBXahmlHuMVTalq5- lK188fR10m3acNPNQeIWjNfNJFxmxmtTv2lU9mVdCzm9CmuEhCHrTapIvNCkrM4ESU4wPsPGhRahR tvxMhTuPs6cGq4of6q02NdHg</reference>
<id>939bca41854bf7bd7d463be8fd84494cc63540aa</id>
<opening_hours>
<open_now>true</open_now>
</opening_hours>
<photo>
<photo_reference>CnRnAAAAcN5jI3t8D4oOFtVbi- gyYd9nQ886aB93MbiYg7d1G5NMIKz1Qqfomgu0MyS1U7T6- ymBSTypZHMCKgt2aa4Rs6un1ImvKueXbL4p6tdaJJ4_rrni3W5w- WNDl48VrbzawVTputdH9UPSo1rhKHWJJhIQR2ibWGfgH0yOJhQsSdZI7hoUmjN3Xtsq21VFfhkNb3mn 29NDrVo</photo_reference>
<width>1648</width>
<height>2048</height>
</photo>
<place_id>ChIJ5WUs_sxc1moRNwoqo0_FhUs</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>Ecology and Heritage Partners Pty Ltd</name>
<vicinity>292 Mt Alexander Rd, Ascot Vale</vicinity>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.7799800</lat>
<lng>144.9317380</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png</icon>

<reference>CpQBhwAAACYa8SW0XOeOvjFj_LKsF7hMcr_FTeiqLlmYQeqXXPDFL_AgJowIjzXO0ExD mD7MEvSM9hWKiJG28WkFxmjFo3uKxRVE_uhe1S8wxgR0GAFM2vJNFEdcqnS2qiWS2xrKPRXzYC9jf

kIphjdtMq73Vn0CxmLG6GX7rh6ElKRIIzTaX_TSGFi8d- JhoGYwz7u92BIQUEqipN0z26cl9bPbYAyO1hoU7jCwYxGHB91eTfnrvk7sfEKk-pM</reference>
<id>6d5990d2986ee0f0d253838fcc7417fd4f184556</id>
<place_id>ChIJW8dywQ7PsGoRvZvSgVDlWnQ</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>Ecology Partners</name>
<vicinity>2/420 Victoria St, Brunswick</vicinity>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.7665060</lat>
<lng>144.9567340</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png</icon>

<reference>CoQBcwAAAHCkt0aupnqPEU47fZolli8oeGPYQF6xq1HAULWSCOW8enrJRi8r9D5XnIQWs MzJwxI_T_EYGfgAC4kLlhtK3XwgRBpcYJFJ6z2ETnzAzCIV4EJbn01IzIT9yjBt_2lMfoK-grg- Ig35M4CZUEPviL4w0b0nqB1YNEXB1fmWPZPzEhCf5tv_RMzdNuEcx6Hq5ZaoGhS1Lzlz- C5ZUpZveJOX6aURFDpFnA</reference>
<id>15fb5aaf1aa7e33e3724043f8ab31828bb455dd0</id>
<place_id>ChIJqXatyLNc1moRJ4o8zoHFNZ0</place_id>
<scope>GOOGLE</scope>
</result>
<result>
<name>Essendon Historical Society</name>
<vicinity>768 Mt Alexander Rd, Moonee Ponds</vicinity>
<type>museum</type>
<type>establishment</type>
<geometry>
<location>
<lat>-37.7645380</lat>
<lng>144.9239850</lng>
</location>
</geometry>
<icon>https://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png</icon>
<reference>CoQBfQAAAKQ5a- aAr2I9_vsjUU1RMfgwQ0Cf5wRURavmcfWmyqv1lvAlr3AqRvWV_HoEv8rfxD33IQ6mz4_Zj03tZzTju3SO t2tpuwHpNh_DZOmqM36atSpijaaD8wioAAKUsYGdTAkR17MNXwiCS_DNwFFwP- o_lWLXhMlRrCeeTgwgK6daEhCtqZYYtw72ue_8q-9PEp8gGhRUGcQ2O5gxMNZgpSap7kC2Az3uKQ<
/reference>
<id>6edee1ca785479e7329df86c4da53f0ecd0e7f27</id>
<place_id>ChIJY-qsmfNc1moR9Gs4BHa-OXs</place_id>
<scope>GOOGLE</scope>
</result>
</PlaceSearchResponse>
The information including name and location of the museums can be extracted from the document and listed for the user.

The walking path can be obtained via the Google Directions API (https:// developers.google.com/maps/documentation/directions/?hl=pl). For example, the following shows the path for a walk from the Ian Potter Museum of Art to the

Melbourne Museum, as returned by the Google Directions API via the URL (query):

URL/query:
https://maps.googleapis.com/maps/api/dir ections/xml? origin=-37.7975810,144.9643090&destination=-37.8036460,144.9729420&sens or=false&units=metric&mode=walking

The walking path returned in response to the query (or type the above URL into a browser to see the result):
<?xml version="1.0" encoding="UTF-8"?>
<DirectionsResponse>
<status>OK</status>
<route>
<summary>Grattan St</summary>
<leg>
<step>
<travel_mode>WALKING</travel_mode>
<start_location>
<lat>-37.7975898</lat>
<lng>144.9643718</lng>
</start_location>
<end_location>
<lat>-37.8004123</lat>
<lng>144.9638954</lng>
</end_location>
<polyline>
<points>|iueFijxsZl@H~ANRBTBD?x@HbBNt@F`DX</points>
</polyline>
<duration>
<value>225</value>
<text>4 mins</text>
</duration>
<html_instructions>Head &lt;b&gt;south&lt;/b&gt; on &lt;b&gt;Swanston St&lt;/b&gt; toward &lt;b&gt;Monash Rd&lt;/b&gt;</html_instructions>
<distance>
<value>317</value>
<text>0.3 km</text>
</distance>
</step>
<step>
<travel_mode>WALKING</travel_mode>
<start_location>
<lat>-37.8004123</lat>
<lng>144.9638954</lng>
</start_location>
<end_location>
<lat>-37.8010654</lat>
<lng>144.9699532</lng>
</end_location>
<polyline>
<points>p{ueFkgxsZ@K@OFkAD{@LgC@UHiAB{@NmC@QJoAP{DB[LmCL_CB[</points>
</polyline>
<duration>
<value>431</value>
<text>7 mins</text>

</duration>
<html_instructions>Turn &lt;b&gt;left&lt;/b&gt; onto &lt;b&gt;Grattan St&lt;/b&gt;</ html_instructions>
<distance>
<value>537</value>
<text>0.5 km</text>
</distance>
<maneuver>turn-left</maneuver>
</step>
<step>
<travel_mode>WALKING</travel_mode>
<start_location>
<lat>-37.8010654</lat>
<lng>144.9699532</lng>
</start_location>
<end_location>
<lat>-37.8008013</lat>
<lng>144.9699946</lng>
</end_location>
<polyline>
<points>t_veFemysZu@G</points>
</polyline>
<duration>
<value>26</value>
<text>1 min</text>
</duration>
<html_instructions>Turn &lt;b&gt;left&lt;/b&gt; onto &lt;b&gt;Rathdowne St&lt;/b&gt;</ html_instructions>
<distance>
<value>30</value>
<text>30 m</text>
</distance>
<maneuver>turn-left</maneuver>
</step>
<step>
<travel_mode>WALKING</travel_mode>
<start_location>
<lat>-37.8008013</lat>
<lng>144.9699946</lng>
</start_location>
<end_location>
<lat>-37.8031152</lat>
<lng>144.9732354</lng>
</end_location>
<polyline>
<points>~}ueFmmysZX]HIDGz@{@v@y@tAgBbAgB@?Vk@fA_Cp@}ABI</points>
</polyline>
<duration>
<value>296</value>
<text>5 mins</text>
</duration>
<html_instructions>Turn &lt;b&gt;right&lt;/b&gt; at &lt;b&gt;Barkly St&lt;/b&gt;&lt;div style=&quot;font-size:0.9em&quot;&gt;Destination will be on the right&lt;/div&gt;</html_instructions>
<distance>
<value>387</value>
<text>0.4 km</text>
</distance>
<maneuver>turn-right</maneuver>

</step>
<duration>
<value>978</value>
<text>16 mins</text>
</duration>
<distance>
<value>1271</value>
<text>1.3 km</text>
</distance>
<start_location>
<lat>-37.7975898</lat>
<lng>144.9643718</lng>
</start_location>
<end_location>
<lat>-37.8031152</lat>
<lng>144.9732354</lng>
</end_location>
<start_address>786 Swanston Street, University of Melbourne, Carlton VIC 3053, Australia</ start_address>
<end_address>The Royal Exhibition Building No4 Gate, Carlton VIC 3053, Australia</end_address>
</leg>
<copyrights>Map data ©2014 Google</copyrights>
<overview_polyline>
<points>|iueFijxsZvD`@xE`@`DX@KH{A^cH`@kHp@eNB[u@Gb@g@`AcAlCaDdAgB~AkDt@gB</ points>
</overview_polyline>
<warning>Walking directions are in beta. Use caution - This route may be missing sidewalks or pedestrian paths.</warning>
<bounds>
<southwest>
<lat>-37.8031152</lat>
<lng>144.9638954</lng>
</southwest>
<northeast>
<lat>-37.7975898</lat>
<lng>144.9732354</lng>
</northeast>
</bounds>
</route>
</DirectionsResponse>


TASK 3 (JOURNALLING MORE THAN JUST LOCATIONS - moods and photos):

LTUPersonalLogger should provide a user interface to allow the user to record not just the location but also to allow the user to

• express and record moods (which can be selected from a drop-down menu of predefined moods) (which will be geo-tagged and time-stamped and stored on the device), and

• take photos (which will also be stored on the device and geo-tagged and time- stamped); this feature should also allow the user to provide a textual description of the photo.

The app should also allow the user to see on a list of stored mood entries and photos taken by date, and to view on a map the mood entries and photos taken (filtered by date). Some examples of this idea is haze mapping (https:// www.clickz.com/clickz/column/2282206/visualization-map-tracks-sghaze-via- instagram-in-real-time), and ContextWatcher (https://research.nokia.com/files/ 2006_WTAS_ContextWatcher.pdf).

TASK 4 (JOURNALLING MORE THAN JUST LOCATIONS - physical activity of user): [Coding]

LTUPersonalLogger should provide a button to allow the user to turn on/o? activity recognition [using the API at https://developer.android.com/training/ location/activity-recognition.html] and track the activity of the user (e.g., the user is walking, inactive, on a bus, cycling, etc) and to allow tracked activities to be recorded (which will also be geo-tagged and time-stamped and stored on the device).

Then, modify part (iv) of TASK 1 so that only walking distances are calculated.

TASK 5 (SUPPORTING MULTIPLE SCREEN SIZES): [Coding]

LTUPersonalLogger should have a user interface that supports multiple device s i z e s ( e . g. , s e e https://developer.android.com/guide/practices/ screens_support.html).

For this assignment, only two device sizes, namely, a smartphone (e.g., a typical Android phone size) and tablet (e.g., Nexus 7 size, when in landscape orientation), should be supported. For example, it could have the following layouts:

TASK 6 (CACHING)

LTUPersonalLogger should provide an option on the user interface to allow the user to say whether s/he would like to use previously cached results (e.g., the results of URLs/queries to the Google servers via the Google Directions or Place APIs) on the mobile device or simply reissue queries for results. Design a cache to store previous results - you are free to set some limit on the cache size as you see fit.

[NOTE: e.g., to enable caching of retrieved places of interest so that there is no need to reissue queries to Google if the user is around the same location as before, within a fixed range]

TASK 7 [Coding]

GPS currently may not work well indoors. Add a feature to LTUPersonalLogger in order to track indoor location paths, instead of using GPS.

[Note: this feature relies on having indoor maps and an indoor positioning technology; for this assignment, you can draw up your own maps and need only show three locations that your application can distinguish (e.g., PW215, BG115, BG139, or any choice of three indoor locations on the LTU Bundoora campus you choose) - use either triangulation, signal strength measurements, and/or fingerprinting using WiFi signals to determine indoor locations. Since Google APIs may not be available for indoor locations, you need to build your own directions database (among the three locations you choose). For example, if I am at PW215, it should show a path to BG115 or BG139, depending on the user's request. The database of paths can be hardcoded.]

TASK 8

The documentation describing the system should include:

(i). an overview architectural block diagram of the system (including the mobile client(s) and its major components, and server-side components including the Google map servers, etc, used,

(ii) a brief explanation of the architectural diagram given in (i) about how information requests from the mobile client(s) are processed in your system (use test cases and scenario(s) in your explanation), and comment where and why multithreading was used, if at all (in any form),

(iii) a detailed diagram with explanation describing the structure of the mobile client GUI (showing the di?erent screens and how they are related), for the LTUPersonalLogger mobile application [you can use any tool to draw the screens, etc, or even hand-drawn as along as readable and clear], and

(iv) a description of how context-awareness (beyond only location-awareness) might be useful in extending this application (you do not have to implement this). For example, what other types of context information can be used? How can this context information be acquired and processed? (Sketch this and mention what other sensors can be used, etc)

[Relate to material from lectures as much as possible.]

As far as possible, provide rationale for your design - that is, provide reasons for why it was designed that way.

BONUS TASK [10 marks] (for a possible total of 110/100!)

(i) Geofencing [3 marks] Use the geofencing API [https:// developer.android.com/training/location/geofencing.html] to add geofencing around hot POIs so that the user is notified when s/he is within 100m of one of four (predefined by you) hot POIs, and show these hot POIs on a map.

(ii) "Logging nearby WiFi hotspots" [3 marks] Add a feature to LTUPersonalLogger to scan for nearby WiFi access points (hotspots) periodically (e.g., at a user-specified/default frequency) and to save the scanned data on the phone itself (geotagged and timestamped), as a means of creating a personal map of places with a high density of hotspots; and allow visualising, on a map, of these hotspots.

(iii) " Sharing with" Friends [ 4 marks] Add a feature to LTUPersonalLogger where one can share (part of) one's diary of (user selected) paths and information via Bluetooth or WiFi-Direct.

Reference no: EM13912771

Questions Cloud

Noncurrent liability : Which of the following is NOT classified as a noncurrent liability?
Inflation adjustments : adjustments this standard deduction has increased by $50 every three years. It is reasonable to expect this amount will increase to $1,100 in 2018, $1,150 in 2021, $1,200 in 2024, $1,250 in 2027 and $1,300 in 2030 due to inflation adjustments.
Write a pascal program cross-referencer which will produce : Write a Pascal program cross-referencer which will produce, for a given Pascal program, a list in alphabetical order, of all the identifiers used.
Average method for inventory costs : Medina Corp. uses the weighted average method for inventory costs and had the following information available for the year
Designing a mobile computing application : As using the GPS is battery consuming, the app should also be sensitive to battery levels and perhaps stop GPS based tracking or disallow tracking or warn the user if battery levels are too low - When a tracked path is saved, LTUPersonalLogger shou..
Force needed to drive the conveyor : Sand drops at the rate of 2000 kg/min. from the bottom of a hopper onto a belt conveyor moving horizontally at 250 m/min. Determine the force needed to drive the conveyor, neglecting friction.
A standard cost approach : A fast-food restaurant uses a standard cost approach to aid in controlling its food cost. The following are the standard cost, sales prices, and quantities sold of each of the five items featured on the menu during a particular week:
Money in the economy changed : While Jon is walking to school one morning, a helicopter flying overhead drops a $100 bill. Not knowing how to return it, Jon keeps the money and deposits it in his bank.After this initial transaction, by how much is the money in the economy changed.
Write a procedure to produce the alternative description : Write a procedure to produce the alternative description of the moves based on the observations If we can move a tower of k rings in either direction we can certainly move a tower of k +1rings.

Reviews

Write a Review

 

Programming Languages Questions & Answers

  Extend the user management

Extend the user management so that user can be stored in database - user can be administrator and he can access that admin page

  Write function template to return number of element in queue

Add operation queueCount to class queueType (the array implementation of queues), to return number of elements in the queue. Write down the definition of function template.

  Design application to calculate and show price of order

Design the application to calculate and show the price of order, based on number of units ordered and the customer's status (either wholesaler or retailer).

  Create an abstract representation of a generic animal

Create an abstract representation of a generic Animal that has the at least two polymorphic methods for making a sound and showing the image of the animal.

  Picbasic program

Comment the function associated with every line of the following PICBASIC program

  What are the contents of given register

Memory location 2000H has the word 5000H stored in it. What does each location contain after INC BYTE PTR[2000H]. Also after DEC WORD PTR[2000H]

  Design considerations to comply with ada

Browsing devices that assist people with disabilities, such as an aural browser, are especially dependent on the best use of CSS styles. What design considerations should you be aware to comply with ADA?

  Design application that would output payment coupons

Design the application that would output 12 payment coupons for each of the 15 apartments in each of the 20 buildings. Each coupon should contain the building number.

  Methods to declare and initialize one dimensional arraay

What is an array? Show different methods to declare and initialize one dimensional array. Draw how an integer array of 6 elements having base address 5001 is stored in memory.

  Write functions to change and display attributes

Write class player which contains attributes for players name,average and team. Write three functions to change and display these attributes.

  Statement to assig nnew value to first element of array

Suppose that array of integers named a has been declared and initialized. Write single statement which assigns a new value to first element of the array.

  Your program should read data from a file

Your program should read data from a file which contains one number per line. The total number of lines is not known before execution of the program. The program should detect the end of file to stop reading the data.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd