Hi Naeim,
Thanks for the additional information. I spent some time today looking at your form and the issue you reported. I think I understand the problem, and you can resolve it with better form configuration.
By design and default behaviour of the field app, if a geopoint question has a default or calculation set, the result of the default or calculation will always be used, and will not be over-written by the location sensor data. The user can choose to over-write the calculation with location sensor data, if they select the GPS button on the geopoint question. If you make the geopoint read-only, then this is not possible. There was a previous bug that used to exist around the calculation and geopoint behaviour with GPS data, but that was fixed back in the 3.6 release.
So looking at your form, there appears to be a state where the calculation on the geopoint is null and is not valid. If the user has entered and area, but not entered a Station No, the name field will show "TR1_NaN" for example. I made the hidden/calculate fields into text fields for testing, so I could display the results. The lat long for "TR1_NaN" does not exist in the csv file of course. Therefore the geopoint now has a location of 0 0 applied which we treat as null and do not apply. See below screenshots. In this case the user may see that the map is not loaded, and select to open map or select the GPS button, and therefore their location sensor data will be used. The only way to return to the calculated value after that is to select the re-calculation button.
In cases I tested where I had a valid name based on area and station number (second screenshot) being entered correctly, I saw that the location map was always set correctly based on the lat and long from csv file.
To improve your form to ensure the first case does not happen, you should set station number to have validation or a lookup choice list to ensure it is a number that is in the csv file, currently you can type any number such as 99999 which also doesn't work.
Secondly you could make the geopoint question, and even some of the other questions in the repeat relevant based on the area and name having a value. What you want to achieve is that for the calculation to run on the geopoint, all the fields that need a value should be populated first. If the name field and/or geopoint question is only relevant once area and station no is valid, the calculation will always be correct.
Thirdly, if you do not want the user to edit the geopoint question after it is set by calculation, make it read only.
Hope this helps.
Regards,
Phil.