[Proj] get lat\lon from mouse position on image

Oliver Eichler oliver.eichler at dspsolutions.de
Tue Apr 1 23:07:53 PDT 2008


Hi Doğan

I do the same in QLandkarte GT but I convert the image to a referenced 
GeoTiff first. By that I can simply read all necessary information from 
the file instead of calculating it over and over again. That will make 
the render function more generic. I use GDAL to do so. gdalwarp will 
skew your image to any projection you want. Most likely you want the 
image's original projection to avoid heavy distortions. As QLandkarte GT 
is open source you are welcome to extract any information you need from 
it's source code. The classes CCreateMapGeoTiff and CMapQMAP will be of 
interest for you.

HTH

Oliver
> Hi, I have *.jpg of a map and want to get lat\lon of mouse position on 
> *.jpg.
> I know the *.jpg file size (ex. 1024x768) and *.jpg lat\lon top_left 
> corner(ex. N2030,320,E01015,400)
> and bottom_right corner(ex.N1030,220,E01814,300 )
> I do this as below code.
> How to do this with proj4 lib or another more efficient way.
> (if ı use another *.jpg of map projections different from mercator 
> below code wil be fail.(?)  )
>
>
> QString Map::Y2Lat(int Y_size_of_image)//Y_size of jpg ( 768 )
> {
>
> //distVincenty(lat1,long1,lat2,long2) returns distance in NM. 
> //here give long same because , want to know *.jpg y size in real.
> double YRealDist = distVincenty("2030,320","N","01015,400","E", 
> "1030,220","N","01015,400","E");
>
> double YPerPixel=YRealDist/Y_size_of_image;// real distance per pixel 
> of image
>
> double convfaktor=YPerPixel*currentMousePosY;//real distance from top 
> to current mouse pos.
>
> //gives destination lat  from top_left  convfaktor miles with course 180
> QString newLatLon = 
> destinationVincenty("2030,320","N","01015,400","E",180.,convfaktor);
> QString Latitude =toDMS(newLatLon.toDouble(),"NS");
>
> qDebug()<<"Current mouse position Lat = "<< Latitude ;
> return Latitude;
> }
>
> QString Map::X2Long(int X_size_of_image)//X_size of jpg ( 1024 )
> {
> double top_left_lon = dm2dd("01015,400","E");//long in degree
>
> double bottom_right_lon = dm2dd("01814,300","E");//long in degree
>
> double XRealDist=(bottom_right_lon-top_left_lon)*60.;//using mercator 
> map 1 degree 60 miles
>
> double XPerPixel=XRealDist/X_size_of_image;
>
> double convfaktor=XPerPixel*currentPosX;//top left to mouse pos 
> distance in X
>
> double newLong=top_left_lon + convfaktor/60.;
>
> QString Long=toDMS(newLong,"EW");
>
> qDebug()<<"Current mouse position Long = "<< Long ;
> return Long;
>
> }
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Proj mailing list
> Proj at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/proj


-- 
------------------------------------------------------------------------
Ingenieure Kellermann, Voigt, Hoepfl, Eichler und Weidner, Partnerschaft

Email: oliver.eichler at dspsolutions.de         http://www.dspsolutions.de
Phone: +49(0) 941 / 830 551                   Embedded Signal Processing
Fax:   +49(0) 941 / 830 5579                  DIN EN ISO 9001:2000

Sitz der Partnerschaft ist Regensburg         Schwandorfer Str. 3a
Registergericht Regensburg: PR14              93059 Regensburg, Germany
------------------------------------------------------------------------





More information about the Proj mailing list