×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:How to implement a Relative Map using GPS in Flash Lite 3.0

From Nokia Developer Wiki
Jump to: navigation, search
cristovaodoj (Talk | contribs)
cristovaodoj (Talk | contribs)
Line 1: Line 1:
 
[[Category:Flash Lite]][[Category:S60]][[Category:Location Based Services]]
 
[[Category:Flash Lite]][[Category:S60]][[Category:Location Based Services]]
  
A Relative Map is known as a in-scale map according with the distance in the real world.
+
A Relative Map is known as an in-scale map according with the distance in the real world.
 
For example: You retrieve your current coordinates by GPS and, after that, move 100 meters ahead and then you want to know the pixel distance on the mobile phone's screen regarding with the scale you chose.
 
For example: You retrieve your current coordinates by GPS and, after that, move 100 meters ahead and then you want to know the pixel distance on the mobile phone's screen regarding with the scale you chose.
 
Would be better show where you are in the Relative Map in agreement with your moviments. Well, I'll explain step-by-step how to do it from, implement the geometric functions to calculate the relation between the real world distance and the relative distance to retrieve asynchronously GPS location informations.
 
Would be better show where you are in the Relative Map in agreement with your moviments. Well, I'll explain step-by-step how to do it from, implement the geometric functions to calculate the relation between the real world distance and the relative distance to retrieve asynchronously GPS location informations.
Line 17: Line 17:
  
  
===Relative Map Scheme===
+
==='''Relative Map Scheme'''===
  
Let's understand what 'area_limit' is; It is the maximum value in meters which you can move vertically or horizontally.
+
Let's understand what 'area_limit' is; It is the maximum value in meters which you can move vertically or horizontally.
As the name says 'scale' represents the scale between the drawn rectangle height on the frame and the 'area_limit' double. This value means that every walked meter M in the real world there are P 'walked' pixels on the mobile screen.
+
As the name says 'scale' represents the scale between the drawn rectangle height on the frame and the 'area_limit' double. This value means that every walked meter M in the real world there are P 'walked' pixels on the mobile screen.
So, we had found the 'd_x' and 'd_y' meters distances multiply each one of them for the 'scale' to acquire the horizontal and vertical disntances in pixels. For more details see the scheme shown below:
+
So, we had found the 'd_x' and 'd_y' meters distances multiply each one of them for the 'scale' to acquire the horizontal and vertical disntances in pixels. For more details see the scheme shown below:
  
[[File:Scheme_relative_map.PNG | 250px | center]]
+
[[File:Scheme_relative_map.PNG | 350px | center]]
 +
 
 +
==='''Code Explanation'''===
 +
 
 +
Aqui irei discorrer um pouco sobre os códigos usados em cada frame para a implementação do Mapa Relativo.
 +
 
 +
3.1 - We must disable the keypad (beacuse this example is for touch screen mobiles, precisely the Nokia 5800 ExpressMusc) and set fullscreen mode. Create the variables which represent the central point latitude and longitude and the map area limit. The limit can be whatever numeric value you want; if you want to change it the only thing you have to do is modify the ComboBox labels. Finally, coding the actions of the buttons, all as shown in the code:
 +
 
 +
<code actionscript>
 +
fscommand2("DisableKeypadCompatibilityMode"); // Disable keypad
 +
fscommand2("Fullscreen", true); // Set FullScreen mode
 +
fscommand2("SetQuality", "high"); // Set high quality
 +
 
 +
var UPPER_X_RELATIVE_MAP:Number = 10;
 +
var UPPER_Y_RELATIVE_MAP:Number = 130;
 +
var HEIGHT_RELATIVE_MAP:Number = 340;
 +
var WIDTH_RELATIVE_MAP:Number = 340;
 +
var ICON_HEIGHT:Number = 6;
 +
var ICON_WIDTH:Number = 6;
 +
 
 +
var longitude_center:Number = new Number();
 +
var latitude_center:Number = new Number();
 +
var area_limits:Number = new Number();
 +
 
 +
get_center_location_btn.onRelease = function() {
 +
area_limits = int(area_limit.text.split(" ")[0]);
 +
gotoAndStop(2);
 +
};
 +
 
 +
exit_btn.onRelease = function() {
 +
fscommand2("Quit");
 +
};
 +
 
 +
stop();
 +
</code>

Revision as of 04:53, 5 March 2010


A Relative Map is known as an in-scale map according with the distance in the real world. For example: You retrieve your current coordinates by GPS and, after that, move 100 meters ahead and then you want to know the pixel distance on the mobile phone's screen regarding with the scale you chose. Would be better show where you are in the Relative Map in agreement with your moviments. Well, I'll explain step-by-step how to do it from, implement the geometric functions to calculate the relation between the real world distance and the relative distance to retrieve asynchronously GPS location informations.

Frames Design

1.1 - For starts you must create a new mobile project and select Flash Lite 3.0 and ActionScript 2.0 as player version and ActionScript version, respectively.

1.2 - Insert 4 (four) KeyFrames as in the order shown below:

Frames.PNG

Tip.pngTip: To make easy the application's screens creation set the first frame as the same shown above (Frame 1) the add the next ones; Thereby you won't need repeating code for the repeated components on the diferents frames which have the same functionalities.


Relative Map Scheme

Let's understand what 'area_limit' is; It is the maximum value in meters which you can move vertically or horizontally. As the name says 'scale' represents the scale between the drawn rectangle height on the frame and the 'area_limit' double. This value means that every walked meter M in the real world there are P 'walked' pixels on the mobile screen. So, we had found the 'd_x' and 'd_y' meters distances multiply each one of them for the 'scale' to acquire the horizontal and vertical disntances in pixels. For more details see the scheme shown below:

Scheme relative map.PNG

Code Explanation

Aqui irei discorrer um pouco sobre os códigos usados em cada frame para a implementação do Mapa Relativo.

3.1 - We must disable the keypad (beacuse this example is for touch screen mobiles, precisely the Nokia 5800 ExpressMusc) and set fullscreen mode. Create the variables which represent the central point latitude and longitude and the map area limit. The limit can be whatever numeric value you want; if you want to change it the only thing you have to do is modify the ComboBox labels. Finally, coding the actions of the buttons, all as shown in the code:

fscommand2("DisableKeypadCompatibilityMode"); // Disable keypad
fscommand2("Fullscreen", true); // Set FullScreen mode
fscommand2("SetQuality", "high"); // Set high quality
 
var UPPER_X_RELATIVE_MAP:Number = 10;
var UPPER_Y_RELATIVE_MAP:Number = 130;
var HEIGHT_RELATIVE_MAP:Number = 340;
var WIDTH_RELATIVE_MAP:Number = 340;
var ICON_HEIGHT:Number = 6;
var ICON_WIDTH:Number = 6;
 
var longitude_center:Number = new Number();
var latitude_center:Number = new Number();
var area_limits:Number = new Number();
 
get_center_location_btn.onRelease = function() {
area_limits = int(area_limit.text.split(" ")[0]);
gotoAndStop(2);
};
 
exit_btn.onRelease = function() {
fscommand2("Quit");
};
 
stop();
80 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×