地图自动缩放功能实现 arcgis for flex
2014-04-11 10:54
537 查看
在做模块的时候,会遇到很多需要解决的问题,所以把问题分散在这里写出来,以方便需要的人Google,让大家缩短解决问题的时间。
我需要将所有的图层信息,都显示在地图extend范围内,每添加一个图层数据,地图会自动缩放,把所有信息显示在可以看到的范围内。
arcgis for flex提供了GraphicUtil.getGraphicsExtent()方法,通过这个方法可以快速实现地图自动缩放功能,具体关键代码如下:
privatefunction zoomToGraphics():void
{
var graphicProvider:ArrayCollection =myGraphicsLayer.graphicProvider as ArrayCollection;
var graphicsExtent:Extent =GraphicUtil.getGraphicsExtent(graphicProvider.toArray());
if (graphicsExtent)
{
myMap.extent = graphicsExtent;
// make sure the whole extent is visible
if (!myMap.extent.contains(graphicsExtent))
{
myMap.level--;
}
}
}
其中myGraphicsLayer是自定义的图层,myGraphicsLayer.graphicProvider这是自带的方法,存有图层上的数据,这样就可以简单获取到图层上的数据。
上面的部分是对单个图层的缩放,我需要是多个图层放在一起,怎么实现缩放功能。个人修改如下:
…………
myGraphicsLayer.add(imgraphic);
map.addLayer(myGraphicsLayer);
graphicarray.addAll(myGraphicsLayer.graphicProvideras IList);
layersZoomToGraphics(ind.map,graphicarray);//调用这个方法
由于我是实事通讯,所以每次只添加一个图层,自定义一个数组graphicarray,将每次获取到得图层数据添加到这个数组中,以保存上一次图层信息。
public functionlayersZoomToGraphics(map:Map,graphicsLayer_arr:ArrayCollection):void{
var graphicsExtent:Extent =GraphicUtil.getGraphicsExtent(graphicsLayer_arr.toArray());
if(graphicsExtent){
map.extent = graphicsExtent;
if (!map.extent.contains(graphicsExtent)){
map.level--;
}
}
}
方法实现完成。
总结:只要看懂基本的方法使用,就可以根据自己想要实现的功能,进行相应的修改,我的方法不是最好,仅供参考。
我需要将所有的图层信息,都显示在地图extend范围内,每添加一个图层数据,地图会自动缩放,把所有信息显示在可以看到的范围内。
arcgis for flex提供了GraphicUtil.getGraphicsExtent()方法,通过这个方法可以快速实现地图自动缩放功能,具体关键代码如下:
privatefunction zoomToGraphics():void
{
var graphicProvider:ArrayCollection =myGraphicsLayer.graphicProvider as ArrayCollection;
var graphicsExtent:Extent =GraphicUtil.getGraphicsExtent(graphicProvider.toArray());
if (graphicsExtent)
{
myMap.extent = graphicsExtent;
// make sure the whole extent is visible
if (!myMap.extent.contains(graphicsExtent))
{
myMap.level--;
}
}
}
其中myGraphicsLayer是自定义的图层,myGraphicsLayer.graphicProvider这是自带的方法,存有图层上的数据,这样就可以简单获取到图层上的数据。
上面的部分是对单个图层的缩放,我需要是多个图层放在一起,怎么实现缩放功能。个人修改如下:
…………
myGraphicsLayer.add(imgraphic);
map.addLayer(myGraphicsLayer);
graphicarray.addAll(myGraphicsLayer.graphicProvideras IList);
layersZoomToGraphics(ind.map,graphicarray);//调用这个方法
由于我是实事通讯,所以每次只添加一个图层,自定义一个数组graphicarray,将每次获取到得图层数据添加到这个数组中,以保存上一次图层信息。
public functionlayersZoomToGraphics(map:Map,graphicsLayer_arr:ArrayCollection):void{
var graphicsExtent:Extent =GraphicUtil.getGraphicsExtent(graphicsLayer_arr.toArray());
if(graphicsExtent){
map.extent = graphicsExtent;
if (!map.extent.contains(graphicsExtent)){
map.level--;
}
}
}
方法实现完成。
总结:只要看懂基本的方法使用,就可以根据自己想要实现的功能,进行相应的修改,我的方法不是最好,仅供参考。
相关文章推荐
- ArcGIS API For Javascript之地图基本加载与显示,地图切换、缩放、定位、比例尺、鹰眼图、坐标显示、查询搜索功能实现
- Flex for ArcGIS实现数据库地图查询
- ArcGIS API for Flex实现的实时监控功能
- ArcGIS API for Silverlight实现地图测距功能
- ArcGIS API for Silverlight实现地图测距功能
- ArcGis for JS 利用QueryTask查询实现对地图的定位功能
- ArcGis api for flex 中 Map控件的属性开关(地图控件的导航功能开关属性)
- ArcGIS.Server.9.3和ArcGIS API for JavaScript实现基本的地图功能(一) javascript
- ArcGIS.Server.9.3和ArcGIS API for Flex实现Toolbar功能(四)
- [转]ArcGIS.Server.9.3和ArcGIS API for Flex实现基本的地图浏览(一)
- ArcGIS.Server.9.3和ArcGIS API for JavaScript地图实现Toorbar功能(四)
- ArcGIS.Server.9.3和ArcGIS API for JavaScript地图实现Toorbar功能(四)
- ArcGIS.Server.9.3和ArcGIS API for Flex实现Identify的功能图查属性(六)
- ArcGIS.Server.9.3和ArcGIS API for JavaScript实现基本的地图功能
- arcgis for flex全国地图天气预报的具体实现过程解析
- ArcGIS.Server.9.3和ArcGIS API for JavaScript实现基本的地图功能(一)
- ArcGIS.Server.9.3和ArcGIS API for Flex实现Query查询定位中心功能(七)
- Flex for ArcGIS实现数据库地图查询
- ArcGIS API for JavaScript地图实现Toorbar功能
- ArcGIS for Android实现地图加载、放大缩小及定位功能