arcgis api for flex 本身只提供了Navigation和ScaleBar两个控件,并且api中
对如何开发自定义的控件做详细的描述(也可能有,是我没找到)、
下面就介绍一下我的方法。以实现一个能在地图上动态显示当前鼠标经纬度的控
件。
1 定义控件类,集成UIComponent ,实现IMapAware接口
2 重载createChildren函数
3 实现public function set map(map:Map) : void 函数
4 添加自己的功能代码
}
}
private function extentChangeHandler
(event:ExtentEvent):void
{
var pnt:Point = new Point;
var mapPnt:MapPoint = new MapPoint
(m_map.extent.xmax,m_map.extent.ymin);
pnt = m_map.toScreen(mapPnt);
m_stateLabel.x = pnt.x-150;
m_stateLabel.y = pnt.y-16;
}
public function set map(map:Map) : void
{
m_map = map;
m_map.addEventListener
(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
m_map.addEventListener(ExtentEvent.EXTENT_CHANGE,
extentChangeHandler);
}// end function
}
}
把这个控件添加到map上
var statusBar:ESRIStatusBar = new ESRIStatusBar();
IMapAware(statusBar).map = EsriMap;
EsriMap.addChild(statusBar);
放代码