最近在研究用arcgis api for Flex客户端动态画曲线的问题。虽然花了不少时间,最终等值线还是没有预期效果那样画在地图之上,但还是有不少收获。画等值线过程中,需要利用贝赛尔曲线函数来画平滑曲线。网上找了很多资料,都是在用flash环境中的curveTo()方法来画,但是好像这样画出来的曲线是不能在gis图层中显示的,即只能在flash.display.Graphics下的graphics才能使用这个方法,ags中的graphics是不是使用这个方法的。要么本人还没有找到转换方法,要么就根本不能用在gis图层。在网上找到了一篇关于在ags图层中画军标的文章,从这篇文件中得到启示。
先看效果 :<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600" creationComplete="init()"
xmlns:esri="http://www.esri.com/2008/ags">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import com.esri.ags.Graphic;
import com.esri.ags.SpatialReference;
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.geometry.Polyline;
import com.esri.ags.layers.GraphicsLayer;
private var m_firstpoints:Array;
private var graphicsLayer:GraphicsLayer;
priv