这个问题困扰了我好几天,终于在今天被我无意中做出来了,写出来分享一下。
对于如何获得当前地图的比例尺?
我们都知道axsupermap有一个ViewScale属性,该属性主要是设置当前地图的比例尺,也就是为1/原始比例尺。我们可以充分的利用这个属性来获得我们想要的答案——显示当前地图的比例尺。即“当前的比例尺为:”+“1:”+1/axsupermap.ViewScale。
对于如何获得当前的地图的X、Y坐标?
我们这里讨论的是地理坐标的获取,其它的在这里就不介绍了。我们都知道axsupermap中有两个方法来获得地理坐标,一个是PixelToMapX,另一个是PixelToMapY,这两个方法的作用是将一个点在像素空间中的列号转换为地理坐标 ,返回转换后的 坐标。所以要实现获得当前地图的X、Y坐标,这两个方法是必须要用到的。第一步,我们必须要先实例化点对象(soPoint);第二步,我们要获得点X、Y的地理坐标,即使用上面提到的axsupermap的两种方法;第三步,直接输出坐标。关键代码如下所示:
soPoint objpoint = new soPoint();
objpoint.x = axSuperMap1.PixelToMapX(e.x);
objpoint.y = axSuperMap1.PixelToMapY(e.y);
uiStatusBar1.Panels[2].Text = "X=" + Convert.ToString(objpoint.x) + "米" + "," + "Y=" + Convert.ToString(objpoint.y) + "米";
这样我们就完成了怎样获得当前地图的比例尺和X、Y坐标了。