Lab Session: Play with Features: Difference between revisions
Jump to navigation
Jump to search
Created page with "In this lab, you will add a compass to your application, allow it to pull weather data by your location, and have it choose a random location on shake." |
m 8 revisions |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
In this lab, you will add a compass to your application, allow it to pull weather data by your location, and have it choose a random location on shake. | In this lab, you will add a compass to your application, allow it to pull weather data by your location, and have it choose a random location on shake. | ||
== Student Outline == | |||
The following lab contains three parts. Start by opening LabFeatures2.nsx. | |||
=== Compass === | |||
Using the resources and code from the Compass sample, add a compass to ''frmCompass'' in your app. | |||
=== Geolocation === | |||
# Attach an onchange event to ''flpCurrentLocation''. When it is switched to On, you should retrieve the current location using [[https://developer.mozilla.org/en-US/docs/Web/API/Geolocation.getCurrentPosition navigator.geolocation.getCurrentPosition]] and disable ''txtCity'' and ''btnLoad''. When switched to off, ''txtCity'' and ''btnLoad'' should be re-enabled. | |||
# When the current location has been retrieved, enable ''btnLoad''. | |||
# When ''btnLoad'' is pressed and ''flpCurrentLocation'' is in the On position, load the weather information via latitude and longitude, using the following API: http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139 | |||
=== Accelerometer === | |||
# A shaking motion can be sensed by setting a threshold for change in [[Event|accelerationIncludingGravity]]. Experiment to determine what an acceptable threshold is for your device. (an example of this in JavaScript is available here: http://stackoverflow.com/a/4475330) | |||
# When on ''frmMain'', listen for accelerometer events that could indicate a shaking motion. Set the location to a random latitude and longitude to load weather for that location. | |||
== Bonus == | |||
* Modify the compass so it points somewhere other than north. | |||
* As you saw in the lecture, it's possible to update the current location continuously. Modify your code to function this way, rather than only retrieving the location once. | |||
* When retrieving a random location, it might be helpful to display what cities you are near, or what the latitude and longitude is. Modify your app to provide this functionality. | |||
* The accelerometer is capable of detecting many movements beyond shakes. Now that you've modified your app to display the random location you've retrieved, modify it so that after a random location is retrieved tilting the phone will modify that location, increasing or decreasing the latitude or longitude. |
Latest revision as of 06:24, 7 January 2014
In this lab, you will add a compass to your application, allow it to pull weather data by your location, and have it choose a random location on shake.
Student Outline
The following lab contains three parts. Start by opening LabFeatures2.nsx.
Compass
Using the resources and code from the Compass sample, add a compass to frmCompass in your app.
Geolocation
- Attach an onchange event to flpCurrentLocation. When it is switched to On, you should retrieve the current location using [navigator.geolocation.getCurrentPosition] and disable txtCity and btnLoad. When switched to off, txtCity and btnLoad should be re-enabled.
- When the current location has been retrieved, enable btnLoad.
- When btnLoad is pressed and flpCurrentLocation is in the On position, load the weather information via latitude and longitude, using the following API: http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139
Accelerometer
- A shaking motion can be sensed by setting a threshold for change in accelerationIncludingGravity. Experiment to determine what an acceptable threshold is for your device. (an example of this in JavaScript is available here: http://stackoverflow.com/a/4475330)
- When on frmMain, listen for accelerometer events that could indicate a shaking motion. Set the location to a random latitude and longitude to load weather for that location.
Bonus
- Modify the compass so it points somewhere other than north.
- As you saw in the lecture, it's possible to update the current location continuously. Modify your code to function this way, rather than only retrieving the location once.
- When retrieving a random location, it might be helpful to display what cities you are near, or what the latitude and longitude is. Modify your app to provide this functionality.
- The accelerometer is capable of detecting many movements beyond shakes. Now that you've modified your app to display the random location you've retrieved, modify it so that after a random location is retrieved tilting the phone will modify that location, increasing or decreasing the latitude or longitude.