ThinkGeo.com    |     Documentation    |     Premium Support

How to set extent of map based on latitiude and longitude

I have four lat/lonon map .I just want to know how do imake a rectangle to plot those lat long points on map i.e., how to set extent for below mentioned lat longs


minx=-119.41799926757812

miny=18.450000762939453

maxx=139.69200134277344

maxy=51.500099182128906


I just want this portion of map to be centered.


Thanks


Ajay



 If your map is in Decimal Degrees (Geodetic), it is very easy. You simply set the current extent of the map to a RectangleShape with the Upper Left and Lower Right values.


Upper Left x = minx=-119.41799926757812

Upper Left y = maxy=51.500099182128906


Lower Right x = maxx=139.69200134277344

Lower Right y = miny=18.450000762939453


So in you code it is going to be:

 


 




 Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF"));
                Map1.CurrentExtent = new RectangleShape(-119.41799926757812, 51.500099182128906, 139.69200134277344, 18.450000762939453);
                Map1.MapUnit = GeographyUnit.DecimalDegree;

                WorldMapKitWmsWebOverlay worldMapKitOverlay = new WorldMapKitWmsWebOverlay();
                Map1.CustomOverlays.Add(worldMapKitOverlay);   



Now if you want to do the same thing with Google Map which I suspect  is your case, it is going to be a little trickier. You are going to have to project those two points defining the RectangleShape with the Upper Left point and the Lower Right point to Spherical Mercator which is the projection used by Google Map. 
  I am going to post a project on the Code Community this afternoon. It will show very concretely how to do that. I will let you know on this post when it is complete.

 You can check in the Code Community a project that shows how to set the extent of a map based on latitude and longitude if the map is using Google Map.


code.thinkgeo.com/projects/show/centermapbasedonlat



Thank you so much val iam using thinkgeo maps so the first code will work for me ill try that first.... Thanks again



Ajay,  
  
 Thanks for your reply. Please feel free to let us know if you have more questions. 
  
 Thanks, 
 Howard

Hi Howard, 


The code posted by you does'nt solve my problem,i have some code  which deafultly set extent in which India is made centered it is in GeographyUnit.Meter iam not able find the constant which can convert these meters into decimal degreeso that i can change my extent.Iam posting the code which gives me default extent,i just want to change the extent with same Geography Unit  can you help me regarding this..


Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml(Constants.geoColor));

Map1.CurrentExtent = new RectangleShape(-14284550.18439, 88838170.17418, 6653070.89410, 56746840.97910);//6398696.51092);

Map1.MapUnit = GeographyUnit.Meter;



Howard,


Thanks igot the solution from the link you gave.Thanks again



Ajay, 
  
   I am glad you could find the solution from the answers we gave you. Let us know if you have other doubts.