ArcGIS - Centeralizing location

时间:2012-08-23 18:31:23

标签: flash flex arcgis flash-builder

所有

我正在使用ArcGIS组件来显示地图。我想让给定的位置显示在浏览器页面的中心。我有左侧/顶侧导航栏,其余部分由ArcGIS地图组件占用。

任何人都可以帮助我吗

TIA

1 个答案:

答案 0 :(得分:1)

假设您已将地图命名为“地图”:

map.extent = map.extent.centerAt(new MapPoint(myX, myY));

请注意,centerAt()不会更改地图范围,它会创建一个新范围,您可以将地图范围设置为该范围。

编辑:

这更复杂,但它会找到你传递的控件的真正中心:

        public function centerAtXY(relativeTo:DisplayObject, x:Number, y:Number):void
        {
            //Get the center of the displayobject's position on the map
            var offsetPoint:MapPoint = map.toMapFromStage(relativeTo.width /2, relativeTo.height /2);

            //Find the distance between the map's center and the display's center in map units
            var offsetX:Number = map.extent.center.x - offsetPoint.x;
            var offsetY:Number = map.extent.center.y - offsetPoint.y;

            //Recenter the map so x,y is at the center of the displayobject
            var centerPoint:MapPoint = new MapPoint(x + offsetX, y + offsetY);
            map.extent = map.extent.centerAt(centerPoint);
        }