1.flex 的简介

a) Flex是adobe开发的东西,主要特点就是开发一个swf格式的应用,flex可以做桌面的应用和web的应用,但本质差不多。

b) Flex采用mxml的格式来进行应用的布局,然后用ActionScript进行脚本处理。

例子:

在application中放进一个eris的map控件,map的一个load函数 为loadHandler

<s:Application>

<fx:Script>

<![CDATA[

private function loadHandler():void

{

}

]]>

</fx:Script>

<eris:map load="loadHandler()">

</s:Application>

c) Acrgis for flex其实就是引进一个jar包(但flex真实为swc包),然后就可以进行调用Acrgis 的函数

2.Argis简介

a) Arcigs 是专门处理地图的,它自己拥有acgis map ,arcgis server的软件来进行处理和发布地图。

b) 地图有很多种的格式,flex要进行调用的话必须清楚服务器url是什么格式。比如什么wms,wmts,什么的,我也不是很清楚。、

c) 但调用地图我们自己做的是acgis的专门地图的服务,只需要初始化一个ArcGISDynamicMapServiceLayer 对象然后设定他的url(我们服务器的url)就行。

private var

huiluCommunityWMS:ArcGISDynamicMapServiceLayer =

new ArcGISDynamicMapServiceLayer();

huiluCommunityWMS.url =  "http://localhost:6080/arcgis/rest/services/myserver/Map Server";

这样huiluCommunityWMS对象就创建了,然后map.addLayers(huiluCommunityWMS);后就可以在map中显示这个地图

下面这些都是acgis地图的类,ArcGISDynamicMapServiceLayer 只是其中一个,南方数码给我们提供的就是TiledMapServiceLayer这样的类的地图,但这种类的地图需要自定义一个类并且进行继承,然后再指定他的url啊,他的区域范围之类的一些属性啊后 方可使用。

(自定义一个类 这个类在源码中的layer包的WMTSLayer_province)

Class

Description

ArcGISDynamicMapServiceLayer

Allows you to work with a dynamic map service resource exposed by the ArcGIS Server REST API (available in ArcGIS Server 9.3 and above).

ArcGISImageServiceLayer

Allows you to work with an Image Service resource exposed by the ArcGIS Server REST API (available in ArcGIS Server 9.3 and above).

ArcGISTiledMapServiceLayer

Allows you to work with a cached map service resource exposed by the ArcGIS Server REST API (available in ArcGIS Server 9.3 and above).

ArcIMSMapServiceLayer

Allows you to add ArcIMS image services to your map.

DynamicMapServiceLayer

Base class for all dynamic layers that can be added to a map.

FeatureLayer

The feature layer can be used to display features from one single layer of either a Feature Service or a Map Service.

GPResultImageLayer

Allows you to view a geoprocessing task result.

GraphicsLayer

A layer that contains one or more Graphic features.

KMLLayer

The KMLLayer is used to create a layer based on a publicly accessible KML file (.kml,.kmz).

Layer

Base class for all layers that can be added to a map.

MapImageLayer

The MapImageLayer class is used to add georeferenced images to the map.

OpenStreetMapLayer

Allows you to use basemaps from OpenStreetMap.

TiledMapServiceLayer

Base class for all tiled layers that can be added to a map.

WMSLayer

A layer for OGC Web Map Services.

WMTSLayer

d) 好了,我们现在能创建了一个map和显示地图,然后怎么在上面就行划线啊,标志啊啥的呢。其实map是一个对象,ArcGISDynamicMapServiceLayer 地图 是map下一级的对象,而标志,划线啥的同ArcGISDynamicMapServiceLayer 地图对象一样,也是map的下一级对象GraphicsLayer ,同样是addlayer这个方法给加进去。

private var fillGraphicLayer:GraphicsLayer = new  GraphicsLayer();

map.addLayer(fillGraphicLayer);

GrapicsLayer就是显示划线啊,标记啊之类的Layer,同地图具有等同的地位。

然后划线,标记这种对象是GrapicsLayer的下一级对象

Graphic

Property

Defined By

attributes : Object

Name-value pairs of fields and field values associated with the graphic.

Graphic

checkForMouseListeners : Boolean

Prevents the map from zooming and panning when the mouse is over the graphic and the graphic has registered mouse listeners.

Graphic

geometry : Geometry

The geometry that defines the graphic.

Graphic

graphicsLayer : GraphicsLayer

[read-only] Return the parent as an instance of GraphicsLayer.

Graphic

infoWindowRenderer : IFactory

The info renderer.

Graphic

symbol : Symbol

The symbol for the graphic.

如上图,Graphic有Attribute,geometry,symbol着三个最重要的属性。 Attribute是他可以加上去的一些参数。这些参数传给他的一些Label,button这种实际的控件,

<s:Label id="myLabel"  text ="{data}">

如上。Data 等同于Graphic的Attribute 属性。而geometry属性是说明这个Graphic的形状,

Constant

Defined By

EXTENT : String = esriGeometryEnvelope

[static] An extent is defined by xmin, ymin, xmax and ymax.

Geometry

MAPPOINT : String = esriGeometryPoint

[static] A MapPoint is a basic point with x (often longitude), y (often latitude) and an optional spatial reference.

Geometry

MULTIPOINT : String = esriGeometryMultipoint

[static] A multipoint consists of one or more MapPoint(s).

Geometry

POLYGON : String = esriGeometryPolygon

[static] A polygon is a set of areas with three or more points.

Geometry

POLYLINE : String = esriGeometryPolyline

[static] A polyline is set of lines with two or more points.

MAPPOINT 是一个点,polyline是线,等等,但注意的是polyline初始化时

var drawPointArray:Array = new Array();

var drawPointPath:Array = new Array();

drawPointPath.push(drawPointArray);

var drawLine:Polyline = new Polyline(drawPointPath);

fillgraphic.geometry = drawLine;

drawPointPath是一个Array,这个Array包含的是包含Mappoint的Array。

然后比较重要的是symbol,这是标志的形状。

Base class for all symbols. To display points, polylines and polygons on the graphics layer, instead use the following:

共有上面分别对应形状的symbol,比如做的那个摄像头标记就是用的PictureMarkerSymbol,话线的是SimpleLineSymbol, 这些都定义在

<fx:Declarations>

<esri:SimpleMarkerSymbol id="sms"

alpha="0.9"

color="0xFFFF00"

size="11"

style="square">

<esri:SimpleLineSymbol color="0x000000"/>

</esri:SimpleMarkerSymbol>

<esri:PictureMarkerSymbol id="spms"

source="@Embed(source='assets/camera.png')"

height = "25"

width = "40"

/>

<!-- Symbol for Find Result as Polyline -->

<esri:SimpleLineSymbol id="sls"

width="4"

alpha="1"

color="0xFF0000"

style= "dashdot"

/>

<!-- Symbol for Find Result as Polygon -->

<esri:SimpleFillSymbol id="sfs"

alpha="0.7"

color="0xFFFF00"/>

</fx:Declarations>

如做的那个摄像头的图片标志用的便是PictureMarkerSymbol 。

3.flex与java进行交互

a) flex是无法与数据库直接打交道的,所以我们使用blazeds这种方法进行与java交互传输数据,并且由java与数据库打交道。

b) 参考资料 http://bbs.9ria.com/thread-84889-1-1.html

c) 首先我们定义一个在flex中的RemoteObject对象

<!--一个RemoteObject对象,通过这个对象来与java进行交互通信,buildingOperationDestination这个destination是对应着java中的类,这个由remoting-object.xml定义,详细请查看java与flex交互的参考资料-->

<mx:RemoteObject id="remoteObject" destination="buildingOperationDestination"

result="remoteObject_resultHandler(event)"

fault="remoteObject_faultHandler(event)" endpoint = "http://localhost:8080/WebIC/messagebroker/amf"/>

这个对象是对应到buildingOperationDestination,而这个配置是在WebIC下Webcontent下Web-Inf下 flex下remoting-config.xml中定义的

<destination id="buildingOperationDestination" channels="my-amf">

<properties>

<source>flexutils.BuidlingOperation</source>

</properties>

</destination>

flexutils.BuidlingOperation是WebIC项目下src项目下的类

d) 配置已经做好,如果出问题了,我写了一个测试的类,

上面的testConnectionJava.html

如果是上面的显示,就证明java与flex的连通性是好的,如果报错(只要不改配置文件,一般不会报错),根据信息调整,(这个出错很蛋疼啊。。),这个问题太多,出问题的时候我也一直没能解决,上次搞好,就备份了一下,没敢动了。

关于arcgi s_api_for_flex的总结的更多相关文章

  1. 如何在ArcGIS中恢复注记文字

    文字标注是地图上一种特殊的视觉元素,可通过文字表达图形符号难以说明的地图内容,它与图形符号结合在一起存在于地图上,是关乎地图构图美的关键因素之一. MapGIS软件下子图对象和注释对象统统保存在点文件 ...

随机推荐

  1. python基础===猴子补丁

    >>> class test: def A(self, x, y): return x+y >>> t = test() >>> t.A(10,2 ...

  2. MySQL 约束类型

    约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性. MYSQL中,常用的几种约束: 约束类型: 主键 外键 唯一 非空 自增 默认值 关键字: primary key ...

  3. MAC 文件被锁定

    从windows拷贝到MAC的文件,有时候会被锁定.右键-简介-已锁定也是灰色的,无法取消: xattr -l 文件名 xattr -d com.apple.FinderInfo 文件名

  4. Kiggle:Digit Recognizer

    题目链接:Kiggle:Digit Recognizer Each image is 28 pixels in height and 28 pixels in width, for a total o ...

  5. Weex Workshop 挑战赛,等你来战!

    一个颠覆性的移动开发方式,一个匠心打造的跨平台移动开发工具,一个后App时代的生产力解放者—Weex,针对App Native开发频繁发版和多端研发的痛点,H5开发的页面稳定性.性能体验等问题,提供了 ...

  6. linux中使用vim编译C++程序

    Vi三种模式详解 命令行模式 (command mode/一般模式) 任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式:我们在shell环境(提示符为$)下输入启动Vi ...

  7. linux c下输入密码不回显

    今天做一个登录程序,需要屏蔽掉密码,于是自己就在网上找资料,找到了一种和linux终端下输入密码方式相同的方法,不显示在终端,具体代码实现如下. #include<stdio.h> #in ...

  8. iOS开发:用DES对字符串加解密

    参考http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html,做了个小修改,实现PHP,JAVA,Objective-c加解密结果相同 ...

  9. [翻译]HLS实践

    最近公司项目没事做,课余实践研究一下技术,算是积累,也可以用到项目里,从零开始记录 HLS:Http Live Streaming 官方文档 https://developer.apple.com/s ...

  10. js 正则验证多个邮箱,用;隔开的那种

    var r = /^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\. ...