状态栏动态显示坐标(另一法)
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]) ; }
需要注意的是每次改变地图的比例尺的时候,一定要重新获取坐标信息
思路:获得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]) ; }
需要注意的是每次改变地图的比例尺的时候,一定要重新获取坐标信息
加油,哥们,现在开始!