arcgis api for flex 开发入门(八)GP服务的使用

上一篇 / 下一篇  2008-10-18 10:54:25 / 个人分类:mushup

arcgis api for flex 开发入门(八)GP服务的使用3sNews.Net——3S社区&资讯平台KOp'r3PuE!Mh
在arcgis api for flex中esri还为我们提供了GP服务,在ARCGISONLINE 上的gp

服务有CreateDriveTimePolygons和Viewshed,下面我们以

CreateDriveTimePolygons服务为例来看看在arcgis api for flex中如何使用GP

服务。3sNews.Net——3S社区&资讯平台aE[8^p^%l
首先使用    <esri:Geoprocessor >标签创建一个gp服务,url指向提供gp服务的

地址。3sNews.Net——3S社区&资讯平台6Q%Uy*S6`pPbj
<esri:Geoprocessor        id="gp"       

url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Network

/ESRI_DriveTime_US/GPServer/CreateDriveTimePolygons"        />
O$]Yd Ga0剩下的步骤和上一讲Geometry service的使用基本相同,即设置参数,调用gp服

务,得到结果,表现结果。


9hC!O,?m.w"]v0Flash:demo
C&j+R ~[J i03sNews.Net——3S社区&资讯平台7P8b2F Ib+Lw
我们直接看一下下面的代码和例子就ok了,这个例子比较简单。

<?xml version="1.0" encoding="utf-8"?>3sNews.Net——3S社区&资讯平台p iHw*[P
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
u^ |V$\"i7V b0    pageTitle="Service Area"
-}@c DW L8bC0    xmlns:esri="http://www.esri.com/2008/ags"
` u)FDkN.bgF0    layout="absolute"
-KrWL$H0>3sNews.Net——3S社区&资讯平台:u%RF%N`
    <mx:Script>3sNews.Net——3S社区&资讯平台J/Ou(f Gr"\ D.l
        <![CDATA[3sNews.Net——3S社区&资讯平台PMD B j#~0~~c
            // Synopsis:3sNews.Net——3S社区&资讯平台7B5u1W;X m1}+{ n7M
            // The map has a click event that calls computeServiceArea(event) when you click the map3sNews.Net——3S社区&资讯平台0b B?@c
            //      <esri:Map click="computeServiceArea(event)">3sNews.Net——3S社区&资讯平台-Tg&l*UWK
            // The computeServiceArea function sends a request to a GP task to create the geometries for the different drive times3sNews.Net——3S社区&资讯平台$E1la.Q%_i9X
            // The return drivetime features are used as the graphicProvider for a graphics layer.3sNews.Net——3S社区&资讯平台SNz^!X9G
            //      graphicsLayer.graphicProvider = fs.features;3sNews.Net——3S社区&资讯平台xc~Q9D{0J$dx
            // The graphics layer is using a symbolFunction which will symbolize the drivetimes in different colors
8`S"f o(o Y$^0            //      <esri:GraphicsLayer id="graphicsLayer" symbolFunction="fillFunc"/>3sNews.Net——3S社区&资讯平台5P iz;Q&s4F
            // The fillFunc() is using the "ToBreak" attributes, which the GP task returned, to set different symbols on different drive times.

            import com.esri.ags.Graphic;
~UBi9dW^0            import com.esri.ags.symbol.Symbol;3sNews.Net——3S社区&资讯平台zt;c5We4Mk
            import com.esri.ags.tasks.ExecuteResult;
/{L1EE-X ^;L0            import com.esri.ags.tasks.FeatureSet;3sNews.Net——3S社区&资讯平台#^r/]8cy
            import com.esri.ags.tasks.ParameterValue;3sNews.Net——3S社区&资讯平台 OgQ Oe"AV
            import com.esri.ags.geometry.MapPoint;
U f4y5xZ0            import com.esri.ags.geometry.Geometry;3sNews.Net——3S社区&资讯平台/Q:QN:y1j
            import mx.controls.Alert;3sNews.Net——3S社区&资讯平台K5|8y|+S a{ f#q#z Hq
            import mx.rpc.AsyncResponder;
5w+R!_k] ol0            import mx.utils.ObjectUtil;

            private var driveTimes:String = "1 2 3";

            private function computeServiceArea( event : MouseEvent ) : void3sNews.Net——3S社区&资讯平台rF9| p.aG
            {
pd$a9_*c/}+H T:y0                graphicsLayer.clear();

                var mapPoint : MapPoint = myMap.toMapFromStage(event.stageX, event.stageY);
#{\/gz[&N D@G7Lv0                var graphic : Graphic = new Graphic(mapPoint, sms_circleAlphaSizeOutline);

                graphicsLayer.add(graphic);

                var featureSet:FeatureSet = new FeatureSet([graphic]);

                var params:Object = {3sNews.Net——3S社区&资讯平台3j%`5U@aS+} dU
                    "Input_Location" : featureSet,3sNews.Net——3S社区&资讯平台E/a8r,o2F{vh%M `
                    "Drive_Times" : driveTimes3sNews.Net——3S社区&资讯平台`:j/|$v0q ^G{
                };
:vxN+Li d,V0                gp.execute(params, new AsyncResponder( onResult, onFault ));3sNews.Net——3S社区&资讯平台wSJ4Lio#VJ
                function onResult(3sNews.Net——3S社区&资讯平台Z"NB;qja
                    gpResult : ExecuteResult,
7b(\tu`{0                    token : bject = null3sNews.Net——3S社区&资讯平台o2?^Qi;rs
                ) : void3sNews.Net——3S社区&资讯平台/t9E$f:GmW%l }4h
                {3sNews.Net——3S社区&资讯平台&f\,P5N4Nu
                    var pv : ParameterValue = gpResult.parameterValues[0];
~vL`~]d3l0                    var fs : FeatureSet = pv.value as FeatureSet;3sNews.Net——3S社区&资讯平台y/e8|7N6G
                    graphicsLayer.graphicProvider = fs.features;
o9f!i QF.mX0                }3sNews.Net——3S社区&资讯平台u$R?K2`:s B-Q,E4?
                function onFault( info : Object, token : bject = null ) : void
q.X(G {1?)J0                {3sNews.Net——3S社区&资讯平台-m D({3rh&[
                    Alert.show( info.toString() );
/E`'N eel0                }
1PiU2gkf&G,o-^0            }

            private function fillFunc( g : Graphic ) : Symbol3sNews.Net——3S社区&资讯平台0w6i[:w^W c@{w6p
            {
7`%s1vf"s G0                var toBreak : Number = g.attributes.ToBreak;3sNews.Net——3S社区&资讯平台eV-cG x a^'Z8V
                if ( toBreak == 1 )3sNews.Net——3S社区&资讯平台8}e i {7{E0u+E;}r
                {
!tk Ji|"z0                    return rFill;3sNews.Net——3S社区&资讯平台fNpd+S S
                }3sNews.Net——3S社区&资讯平台7u5?$?\`g_
                if ( toBreak == 2 )
Bmsz&[ }:i0                {
P Q6iY3gK0                    return gFill;3sNews.Net——3S社区&资讯平台&wGO fK r6S"_3S
                }
$m-QVeT%y)x9R0                return bFill;3sNews.Net——3S社区&资讯平台zAxv#i2h;s;QP4[W
            }
:x;}1M;x(nc%u0        ]]>
)s9Vwym3KH_1B0    </mx:Script>

    <esri:SimpleMarkerSymbol id="sms_circleAlphaSizeOutline" alpha="0.5" size="15" style="circle"/>

    <esri:SimpleFillSymbol id="rFill" alpha="0.5" color="0xFF0000"/>3sNews.Net——3S社区&资讯平台8pN#d&o{-w
    <esri:SimpleFillSymbol id="gFill" alpha="0.5" color="0x00FF00"/>
q!@K a@D|g0    <esri:SimpleFillSymbol id="bFill" alpha="0.5" color="0x0000FF"/>

    <esri:Map id="myMap" click="computeServiceArea(event)" penHandCursorVisible="false">
@Lk4{C&W9i0        <esri:extent>3sNews.Net——3S社区&资讯平台l|L Lr#e?d'j
            <esri:Extent xmin="-95.41" ymin="38.86" xmax="-95.1" ymax="39.06"/>
+eb5a;n*awg,bC7_0        </esri:extent>3sNews.Net——3S社区&资讯平台8?V4PTl7q$SC!ZPf
        <esri:ArcGISTiledMapServiceLayer3sNews.Net——3S社区&资讯平台`Y r x2M
            url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/>
QZyV2E+T U r3}0        <esri:GraphicsLayer id="graphicsLayer" symbolFunction="fillFunc"/>
$t a8b qcr6aS v0    </esri:Map>

    <esri:Geoprocessor
O}C3n*G!q'h2As0        id="gp"
4bJ p6nXM0        url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Network/ESRI_DriveTime_US/GPServer/CreateDriveTimePolygons"3sNews.Net——3S社区&资讯平台Nqt:I@+ll
        />
b7G;sU,H!\ b0|2w)T0</mx:Application>


TAG:

my name is barry 引用 删除 barry   /   2008-10-18 10:56:12
注:这是samples 里面的一个例子,借用一下
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar