1.关于MapWinGIS的鼠标响应机制
在默认的状态下,MapWinGIS的鼠标响应是出于关闭状态,需要手动打开,找到SendMouseDown属性,把false改成true,这样,MapWinGIS控件就能响应鼠标点击事件的,相应的其他事件的属性也可以相应的打开。
2.屏幕坐标转实际的经纬度
需要加载shp数据之后才会有坐标数据,空的MapWinGIS控件上点击是不会有经纬度的。
加载shp数据。
public static MapWinGIS.Shapefile sf = new MapWinGIS.Shapefile();
public static int hnd;
string SHPPathcity = Path.Combine(Application.StartupPath, @"Route1.shp");
if (sf.Open(SHPPathcity))
{
hnd = axMap1.AddLayer(sf, true);
}
获取经纬度,从屏幕坐标转换成实际的坐标。
double lon = 0.0;
double lat = 0.0;
axMap1.PixelToDegrees(e.x, e.y, ref lon, ref lat); //屏幕坐标转换成经纬度
double latchange = System.Convert.ToDouble(string.Format("{0:f3}", lat)); //保留3位小数
double lonchange = System.Convert.ToDouble(string.Format("{0:f3}", lon)); //保留3位小数
点击鼠标获取的经纬度转换后经纬度的精度太高,实际上用不着如此高的精度,这里保留了3位小数。把获取到的数据在与实际的坐标比较。