本文以画利用arcgis for flex在地图某个点上绘制anychart为例子
一:创建一个图层,并根据经纬度生成一个MapPoint对象
var graphicsLayer:GraphicsLayer = getGraphicLayer(layerName);
var point:MapPoint = new MapPoint();
point.x = lon;
point.y = lat;
二:创建一个Graphic对象,并设置它的地理信息(生成的MapPoint对象)
//画点
var gra:Graphic = new Graphic();
gra.id = id;
gra.geometry = point;//设置画的几何对象是点
三:设置graphic的样式,可以自定义一个AnyChartSymbol这样的一个样式
继承com.esri.ags.symbols.MarkerSymbol,并重写
override public function draw(sprite:Sprite, geometry:Geometry,
attributes:Object, map:Map) 这个方法
源码如下:
package widgets.Thematic { import com.anychart.AnyChartFlex; import com.anychart.events.AnyChartPointEvent; import com.esri.ags.Map; import com.esri.ags.geometry.Geometry; import com.esri.ags.geometry.MapPoint; import com.esri.ags.symbols.MarkerSymbol; import com.geok.util.$; import flash.display.BitmapData; import flash.display.DisplayObject; import flash.display.GradientType; import flash.display.Sprite; import flash.events.Event; import flash.filters.DropShadowFilter; import flash.geom.Matrix; import flash.geom.Point; import flash.geom.Rectangle; import flash.sampler.NewObjectSample; import mx.rpc.events.ResultEvent; import spark.components.Label; import uk.co.teethgrinder.Chart; public class AnyChartSymbol extends com.esri.ags.symbols.MarkerSymbol { private var _ChartWidth:int = 20; //行 private var _ChartHeight:int = 40; //列 private var anySprite:AnyChartFlex; private var _ChartObj:Object; private var _ChartUrl:String; public var clickCallbackFunction:Function; public var selectCallbackFunction:Function; public function get ChartUrl():String { return _ChartUrl; } public function set ChartUrl(value:String):void { _ChartUrl = value; } public function AnyChartSymbol(){ super(); } /** * 宽度 */ public function get ChartWidth():int { return this._ChartWidth } public function set ChartWidth(value:int):void{ _ChartWidth = value; } /** * 高度 */ public function get ChartHeight():int { return this._ChartHeight } public function set ChartHeight(value:int):void{ _ChartHeight = value; } /** * 数据源 */ public function get ChartObj():Object { return this._ChartObj; } public function set ChartObj(value:Object):void{ _ChartObj = value; } override public function draw(sprite:Sprite, geometry:Geometry, attributes:Object, map:Map):void { var _self:AnyChartSymbol = this; const mapPoint:MapPoint = MapPoint(geometry); sprite.graphics.clear(); sprite.x = toScreenX(map,mapPoint.x)-ChartWidth/2; sprite.y = toScreenY(map,mapPoint.y)-ChartHeight/2; if(anySprite==null) { anySprite = new AnyChartFlex(); anySprite.width =ChartWidth; anySprite.height=ChartHeight; anySprite.addEventListener(AnyChartPointEvent.CLICK,function(event:AnyChartPointEvent):void{ _self.clickCallbackFunction.call(_self,event); }); anySprite.addEventListener(AnyChartPointEvent.SELECT,function(event:AnyChartPointEvent):void{ _self.selectCallbackFunction.call(_self,event); }); sprite.addChild(anySprite); // anySprite.chartData = ChartObj; $.XMLPost(ChartUrl,loadChart); function loadChart(event:ResultEvent):void{ var xml:XML = new XML(event.result.toString()); anySprite.anychartXML = xml; } }; } } }
四:设置anychartsymbol的样式以及回调方法
var sy:AnyChartSymbol = new AnyChartSymbol(); var url:String = chartUrl; sy.ChartHeight = chartHeight; sy.ChartWidth = chartWidth; sy.ChartUrl = chartUrl; sy.clickCallbackFunction = function(event:AnyChartPointEvent):void{ var name:String = event.pointName; var yvalue:Number = event.y; var xvalue:Number = event.x; var value:Number = event.value; var obj:Object = new Object(); obj.name = event.pointName; obj.xvalue = xvalue; obj.yvalue = yvalue; obj.vaue = value; ExternalInterface.call(mouseClick as String,obj); }
五:设置graphic的样式,并添加到图层当中
gra.symbol = sy;
graphicsLayer.add(gra);
相关推荐
而AnyChart,作为一个跨平台的JavaScript图表库,能够无缝地与Flex结合,为Flex应用提供高质量、高性能的图表功能。 集成AnyChart到Flex应用的过程并不复杂。在提供的压缩包文件“AnyChartFlexComponent.swc”中,...
本话题聚焦于如何使用百度地图API来绘制多边形几何图形,并将这些图形的坐标保存,以便后续转化为地图上的覆盖物。下面将详细阐述这一过程。 首先,我们要了解百度地图API的核心功能。百度地图API提供了丰富的地图...
在这个场景下,我们关注的是“flex anychart”插件,它是一个强大的JavaScript图表库,用于创建交互式且灵活的数据可视化解决方案。本示例是一个使用flex anychart构建的雷达图,这种图表类型在比较多个变量或多组...
总的来说,"百度地图js版api几何图形绘制保存到数据库并展示"这个项目涵盖了前端地图交互、数据序列化、网络通信、数据库操作等多个技术领域。掌握这些知识点,对于开发基于地理位置的应用程序是非常重要的。通过...
通过阅读并理解提供的"MXML"文件,你可以看到如何将ArcGIS或SuperMap的API与Flex的绘图功能结合起来,实现军标在地图上的动态渲染。 总结,ArcGIS和SuperMap Flex结合使用,可以创建功能强大的在线军事地图应用。...
本示例主要探讨如何使用SuperMap C++组件进行地图和图层的回调自定义绘制,这对于创建定制化的GIS应用至关重要。下面将详细解释这一过程。 首先,地图和图层的自定义绘制涉及到的主要概念有: 1. 地图(Map):地图...
地图上的水域、陆地等颜色填充,可以通过FillPolygon或FillRectangle等方法实现。 其次,**读取坐标点**是地图绘制的基础。坐标点通常表示为经纬度,需要进行适当的转换才能在二维屏幕上正确显示。这涉及到地理坐标...
描述中提到的"包含一些Flex下绘制矢量图形的小示例"可能是指在地图上添加自定义的矢量图形,如图标或路径。在Flex中,可以使用Graphics类提供的绘图方法,如beginFill(), moveTo(), lineTo()等来绘制矢量图形。这些...
**标题解析:** “基于d3js的一个地图绘制工具”是指使用D3.js库来创建一个专门用于绘制地图的应用程序。...以上就是基于d3.js的地图绘制工具的相关知识点,学习并掌握这些内容将有助于构建和理解类似的应用程序。
使用 html js 在地图上绘制网格
回调函数是指在异步操作完成时回调的方法。例如,在网络请求完成时,需要回调一个方法来处理请求的结果。在 C# 中,回调函数可以使用委托来实现。 委托、事件和回调函数是 C# 中三个非常重要的概念,它们在编程中...
- 添加新特征:用户可以在地图上绘制新的地理要素,如点、线和多边形。 - 修改特征属性:编辑现有特征的属性信息,如添加注释、分类和元数据。 - 删除特征:根据需求,用户可以删除不需要的地理要素。 - 移动和...
本文将深入探讨如何使用ArcGIS for Flex API在地图上绘制直线、曲线以及军标。 1. 绘制直线 在ArcGIS for Flex中,直线的绘制主要通过Graphics对象实现。首先,我们需要创建一个Graphic对象,并设置其几何形状为...
本文将深入探讨如何使用JS高德地图API来模拟驾车路线规划并绘制代码,以便开发者能够更好地理解和应用这项技术。 首先,我们要理解高德地图API的基本用法。在JavaScript中,我们需要引入高德地图的库文件,这通常...
这些API提供了JavaScript库,允许开发者在网页上创建交互式地图,并在地图上添加标记(Markers)来表示特定的经纬度位置。例如,使用Google Maps API,你可以创建一个新的Marker对象,指定其位置(经度,纬度),并...
在Flex中实现地图画圆,主要涉及到图形绘制和地理坐标系统两个关键概念。 1. **图形绘制**:Flex提供了一个强大的图形绘图库,即Flash Player的Stage3D API,它允许开发者在舞台上创建和操作自定义图形。通过`...
本示例"高德地图绘制多边形.zip"就是专门针对这个需求而设计的,它包含了集成高德地图并进行多边形绘制的示例代码。 首先,我们要了解如何使用高德地图API。高德地图SDK为开发者提供了丰富的接口,包括地图显示、...
高德地图API提供了一套完整的解决方案,使得开发者能够轻松地在卫星地图上绘制多个点,并实现点的点击事件来展示自定义弹窗。本文将深入探讨如何实现这一功能。 首先,我们需要集成高德地图SDK到项目中。这通常包括...
vue2用高德地图实现绘制多边形电子围栏
1:实现对圆形、多边形、点标记、折线 等的绘制;...5:支持根据图形数据显示到地图上,进行后续操作(删除,编辑); 6:支持获取绘制后的所有覆盖物数据,并返回; 7:支持封装为单个组件,多处调用;