Share My Creation Compass GM a gyro-magnetic compass app featuring true and magnetic heading

PhilN

Member
Licensed User
Hi everyone, you are all welcome to download and install my free and newly released gyro-magnetic compass app "Compass GM" written in B4A from the Play Store. As long as your device has a compass. Please let me know what you think and if you want to please rate and write a review on it in the Store. You may also post comments here of course.

I also want to thank this amazing B4X community for helping me and especially Erel, who on numerous occasions has helped me in the past.

Credit and thanks also goes to:

AccelratedSurface(ver 1.12) Informatix
Gestures(ver 1.20) Agraham
GoogleMapsExtras(ver 1.34) Warwound
Magnetics(ver 1.00) Derez
Reflection(ver 2.20) Agraham
SensorExtender(ver 0.01) MikieK
Erel for creating such an amazing dev tool as B4A.

DayView.jpg
RedNightView.jpg


Edit: I am glad to announce the compass Day/Night modes. I created a red night view to reduce night blinding due to bright light. Please check it out on Google Play in the link provided above.

The red tint was achieved by using the ImageProcessing (Version: 1.06) library. When the user selects night mode, the activity is recreated and all the images are loaded normally as bitmaps and then image processed with the tint applied. When the user again selects day mode, the activity is recreated again but without any image processing. Buttons had to be dealt with in a slightly different way.
 
Last edited:

Geezer

Active Member
Licensed User
Running on an S10+ and keeps stopping. Just loading the app and waiting 15 or so seconds and it crashes.
 

PhilN

Member
Licensed User
Ok. Sorry for that. Did you provide permissions? If you don’t mind please check the permissions. I did have some issues with permissions which I thought were resolved. I’ll have to look into this...
 

Geezer

Active Member
Licensed User
Both permissions are allowed.

It crashes immediately if I try to save the waypoint file. If I clear them and set a new one, and then save the file, it flickers and reloads the default saying there is no file
 
Last edited:

PhilN

Member
Licensed User
I will look into it as soon as I receive the crash report from Google Play.

Edit: [SOLVED] I upgraded my wife's Samsung A50 from Android 9 to 10 and was able to reproduce the error. I have subsequently fixed the error. It is available in the Google Play Store.
 
Last edited:

Geezer

Active Member
Licensed User
I will look into it as soon as I receive the crash report from Google Play.

Edit: [SOLVED] I upgraded my wife's Samsung A50 from Android 9 to 10 and was able to reproduce the error. I have subsequently fixed the error. It is available in the Google Play Store.
Works well. Very impressive
 

incendio

Well-Known Member
Licensed User
Very impressive, but the number on the top is 'cut off', see attachment.

Android 10, display set to extra large.
 

Attachments

incendio

Well-Known Member
Licensed User
Text in many apps will be cut with this setting.
Not really, actually I use your technique to make text appear almost in the same size with different display size.

Forgot how to use it, will look when running on computer, I think it's accessibility.
 
Last edited:

dlfallen

Active Member
Licensed User
Beautiful look! I loved the interface from the beginning. However:

The app works fine on my smartphone, but does not work properly on my tablet (Samsung Galaxy Tab S2, Android 7.0). (1) The menu button does not work on either page. I get visual feedback that the button was pushed, but nothing happens. (2) All text on the waypoint list is chopped off at the top of the text.

I do not understand the usefulness of the waypoint format. The distance and bearing are stored as constants. The "DY1 House on hill" is 12.6 km away - from where? Certainly not from my current location, and only from one exact location on the planet. You move from that spot, and the distance/bearing is no longer correct. Why not store the Lat/Lon of each waypoint. Then you can calculate distance and bearing from your current location to the waypoint - from anywhere. That seems infinitely more useful to me. Or am I missing the point of your approach?

Still love the UI!
 

PhilN

Member
Licensed User
Thank you for the compliment.

I will have to try and run some tests perhaps on Firebase to seewhether I can reproduce the fault that you experience onyour Samsung Galaxy S2. I will also have to set the AutoSacale Rate to a lower value to see whether it fixes the text size in the waypoint editor. The app was written with traditional waypoints in mind that have bearing and distance only, not GPS coordinates. This is clearly stated in the app description on Google Play. In the old days before GPS aircraft would navigate that way. It’s called dead reckoning. Anyway, I should perhaps consider revising this as you have said as times have certainly changed and then also create a method to load a path (GPS waypoint list) from a CSV file then show the updated distance to each waypoint periodically. I like your suggestion. Thank you. It’s going to take some time to implement it as I’m quite busy with other work.
 

dlfallen

Active Member
Licensed User
I certainly appreciate that you are busy, and as I paid nothing for your app I have no standing to request anything. But you strike me as a person who appreciates feedback.

My understanding of dead reckoning is that it requires a known starting point. There are none for your pre-stored waypoints. Knowing that the "old tin shack" is 6.20km from somewhere on a bearing of 336 does nothing for me. Yes, if I knew the starting point then I could find the shack, but as-is that info is useless to me.

I think that the recording of GPS waypoints has a lot of potential. For example, when I was in Amsterdam I used a car locator app to mark the location of my hotel. Then, after wandering all over town, when I was ready to return to the hotel I whipped out the app and it pointed the way back. It is quite liberating in a strange city to know you are not going to get lost. Your app could go way beyond this if it used GPS coordinates. For example, in Rome there are many points-of-interest within walking distance of each other. You could preload the GPS coordinates of these attractions (it's not too difficult to look them up). You app would then show the direction and distance to any of these points any time, and anywhere you happened to be. If you went to the trouble of doing this for various popular destinations, you could market it as a travel app.

I record GPS waypoints in my own B4A app (GPSlog) and it does calculate distance between any two points, but not the bearing as it was not intended as a navigational aid. Rather, I use the coordinates to view the locations with google map. I could, I suppose, add bearing to the mix but my app is not nearly as pretty as yours.
 

PhilN

Member
Licensed User
I certainly appreciate that you are busy, and as I paid nothing for your app I have no standing to request anything. But you strike me as a person who appreciates feedback.

My understanding of dead reckoning is that it requires a known starting point. There are none for your pre-stored waypoints. Knowing that the "old tin shack" is 6.20km from somewhere on a bearing of 336 does nothing for me. Yes, if I knew the starting point then I could find the shack, but as-is that info is useless to me.

I think that the recording of GPS waypoints has a lot of potential. For example, when I was in Amsterdam I used a car locator app to mark the location of my hotel. Then, after wandering all over town, when I was ready to return to the hotel I whipped out the app and it pointed the way back. It is quite liberating in a strange city to know you are not going to get lost. Your app could go way beyond this if it used GPS coordinates. For example, in Rome there are many points-of-interest within walking distance of each other. You could preload the GPS coordinates of these attractions (it's not too difficult to look them up). You app would then show the direction and distance to any of these points any time, and anywhere you happened to be. If you went to the trouble of doing this for various popular destinations, you could market it as a travel app.

I record GPS waypoints in my own B4A app (GPSlog) and it does calculate distance between any two points, but not the bearing as it was not intended as a navigational aid. Rather, I use the coordinates to view the locations with google map. I could, I suppose, add bearing to the mix but my app is not nearly as pretty as yours.
I do appreciate feedback. I will certainly consider what you say, but then I think I should rather create a travel/map/nav app as such.

The pre-stored waypoints are simply examples and have no reference to the real world. The idea with the way point list as it is now is that one would take a printed map for instance if you went hiking in the countryside and then mark off waypoints on the map. Of course the starting point is where you left your car or perhaps a cabin that you slept in over night. The 2nd point on the map would be your first waypoint in the app which is referenced to the starting point and has both direction and distance. Each subsequent point is referenced from the previous point. Hence the dead reckoning method of navigation.

This app was intended to be a compass app only and I added the waypoint list for those who might use it in the traditional dead reckoning method of navigation. I do realize that there are very few who would use it because of the way it was created. That is why I will strongly consider adding GPS way points to it, but that would then require an editor as no one would like to enter actual GPS coordinates by typing. An editor would require a map like Google Maps. That is quite easy to implement however now the app is no longer a compass app. So perhaps its best to remove the waypoint list from the compass app and create a proper travel/compass/maps/nav/hiking app with a much broader scope.
 

dlfallen

Active Member
Licensed User
I get the sense that you write programs for reasons similar to my own. I write them so they will do exactly what I want, the way I want them to work. Despite the abundance of GPS apps, I wrote my own because none of the others had all the features I wanted, had features I did not need, and did things in a different way than I wanted them to work. So if that is the case for you - more power to you. I do make my creations available to others in case they find them useful or instructive. If they want a modification that I do not, I provide the source code so they can adapt my app to their own specifications.

Having said that, here are a few thoughts about waypoints:
Each subsequent point is referenced from the previous point.
But you provide a means to reorder the way points. So if you move WP#2 (Large tree) up to the WP#1 position the waypoint list becomes unusable. From your original starting point you would go 5.4km bearing 201 which would not put you anywhere identified on your waypoint list.

This app was intended to be a compass app only
If you like the way the app works for you, leave it alone. If you drop the waypoint feature your app will be lost among literally dozens of other compass apps. If you leave it as-is, few if any will find this useful (as you have acknowledged). If you change waypoints to GPS coordinates the usefulness and audience would be maximized.

That is why I will strongly consider adding GPS way points to it, but that would then require an editor.
I don't understand what you mean here, or why an editor would be required. One could simply store the current GPS location to the waypoint list, adding a description.

An editor would require a map like Google Maps.
Huh? My app does have the option to map the current location, or any waypoint location, but I don't see this a a required feature. Real nice to have, however. Maybe I just don't understand your concept of an editor.

no one would like to enter actual GPS coordinates by typing
Minor point here, but you are wrong. I do it all the time. Generally, I enter them into a spreadsheet, save it as a CSV file, and then import it into the app. I also cut-and-paste published coordinates into the spreadsheet.

Adding GPS coordinates has other uses besides travel. Geocaching is another good example of how your app could be used and would broaden your audience. As long as you can import a CVS file, your app would have great flexibility and utility.

I hope you take this all as an attempt to be helpful, not as unsolicited criticism. I only wish your source code was available so I could modify it so suit myself. That is your decision to make and I won't challenge it. Thanks for sharing your beautiful app with us. I do appreciate that.
 
Top