[Solved] Get geographic data from point on map
I am creating an application in which the user should create a polygon on a map dynamically.
Therefore, I have a Map and a MapPolygon as the Map’s child. With “addCoordinate” I can add coordinates. This is my idea.
The user should click anywhere on the map and this point should be added.
I can get the position with mouse.x and mouse.y, this is my first step; but howto *convert them into latitude and longitude *which are the required paramters for addCoordinate ?
Someone understood my problem and can help me ?
there has been a similar discussion in this thread [qt-project.org] today.
The same question for the map projection comes up here too.
Size of your area?
If you want to draw on a map, you definitely need to know the mapping projection used.
The size of my area is very small, i.e. not more than 100metres X 100metres. So, the earth’s curvature can be neglected.
I am working with coordinates in degree as a float, so I just have to know the factor to be multiplied with to get, say a pixel, stretched to one degree.
I think in N/S direction and W/O the factor shall be the same.
And sorry, I didn’t saw the other thread.
You are probably looking for Map::toCoordinate() [doc.qt.nokia.com]
[Edit: I may have misread the question…]
The simplest conversion from degree of latitude to meters is quite simple (as long as you do not get to the details ;-) )
The great circle of Earth is the basis for the definition of the meter. A meter is 1 / 40 000 000 of the length of this circle. Or 1 degree is 111.111 km in latitude. The scaling for longitude is only the same at the equator. The scaling there is about 111.111*cos(latitude) km per degree.
I think you mean double (8 byte) not float (4 byte) to store lat and lon.
@koahnig: This is a very simple and good idea!
I first had to think of the use of cosinus here what I had to clear up for me with a picture I drew.
Because radius and the length of the circle is proportional for all latitudes, this leads to the formula which is really good.
And of course “Map::toCoordinate()” which I tested and worked, is the easiest way without thinking of maths.