状态栏动态显示坐标(另一法)

Server 9.2 ADF.Net 实现浏览器状态栏动态显示坐标的方法

思路:获得Map控件的四个边界的坐标值,在页面中利用JavaScript计算出实时鼠标位置的坐标值,并响应到Map控件的onMouseMove事件中。方法比较好理解,但有很多不完善之处!还请指教!
获得Map控件的四个边界的坐标值的函数
public double[] GetCurrentGeopraphicCoordinate(IServerContext serverContext)
    {
        IMapServer mapServer = serverContext.ServerObject as IMapServer;
        IMapServerInfo mapInfo = mapServer.GetServerInfo(mapServer.DefaultMapName);
        IMapDescription md = mapInfo.DefaultMapDescription;
        double[] coords = { md.MapArea.Extent.XMin, md.MapArea.Extent.XMax, md.MapArea.Extent.YMin, md.MapArea.Extent.YMax };
        return coords;
    }
把调用函数后的返回值付给一个成员变量double[] m_Coords。
在页面html中写如下JS函数:其中width和height分别为Map控件宽和高的值,a,b,c,d分别为m_Coords[]的值。

        function getXCoords(a,b)
        {                                 
              X=event.offsetX/width*(b-a)+a;
              return X;     
        }
        
        function getYCoords(c,d)
        {                     
              Y=d - event.offsetY/height*(d-c);
              return Y;        
        }

状态栏显示的函数:

function where(){ self.status = "X= " + getXCoords(m_Coords[0],m_Coords[1]) + ", Y= " + getYCoords(m_Coords[2],m_Coords[3]) ;  }
需要注意的是每次改变地图的比例尺的时候,一定要重新获取坐标信息
posted @ 2007-07-31 15:09  四两  阅读(577)  评论(0编辑  收藏  举报
加油,哥们,现在开始!