使用 MXML 或 ActionScript 添加图形Graphics

查看原文:http://www.ibloger.net/article/349.html


<?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:esri="http://www.esri.com/2008/ags" pageTitle="使用 MXML 或 ActionScript 添加图形Graphics">
    <!--
    文档:
    https://developers.arcgis.com/en/flex/api-reference/com/esri/ags/Graphic.html
    https://developers.arcgis.com/en/flex/api-reference/com/esri/ags/SpatialReference.html
    https://developers.arcgis.com/en/flex/api-reference/com/esri/ags/geometry/Polyline.html
    https://developers.arcgis.com/en/flex/api-reference/com/esri/ags/geometry/Polygon.html
    https://developers.arcgis.com/en/flex/api-reference/com/esri/ags/symbols/PictureMarkerSymbol.html
    https://developers.arcgis.com/en/flex/api-reference/com/esri/ags/symbols/SimpleMarkerSymbol.html
    https://developers.arcgis.com/en/flex/api-reference/com/esri/ags/symbols/SimpleLineSymbol.html
    https://developers.arcgis.com/en/flex/api-reference/com/esri/ags/symbols/SimpleFillSymbol.html
    -->

    <s:layout>
        <s:VerticalLayout horizontalAlign="center"/>
    </s:layout>

    <fx:Script>
        <![CDATA[
            import com.esri.ags.SpatialReference;
            import com.esri.ags.symbols.PictureMarkerSymbol;

			/** 添加标记 **/
            private function addSomeMarkers():void
            {
                var myGraphicMarker:Graphic = new Graphic(new MapPoint(1447100, 7477200, new SpatialReference(102100)),
                                                          new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_DIAMOND, 22, 0x009933));
                myGraphicMarker.toolTip = "用ActionScript添加标记 SimpleMarkerSymbol";
                myGraphicsLayer.add(myGraphicMarker);

				
                // 图片标记 PictureMarker - embedded image
                [Embed(source='assets/globe_icon.png')]
                var picEmbeddedClass:Class;
                var pictureMarker:PictureMarkerSymbol = new PictureMarkerSymbol(picEmbeddedClass,50,50);

                var myGraphicPic:Graphic = new Graphic(new MapPoint(-411000, 4924000, new SpatialReference(102100)));
                myGraphicPic.symbol = pictureMarker;
				myGraphicPic.toolTip = "用ActionScript创建 图片标记 PictureMarkerSymbol";
                myGraphicsLayer.add(myGraphicPic);

				
                var myPolyline:Polyline = new Polyline(
                    [[
                     new MapPoint(-1726185, 9543036),
                     new MapPoint(34923, 6920940),
                     new MapPoint(1874303, 6255632),
                     new MapPoint(1835168, 6255632),
                     new MapPoint(1913439, 6138225)
                     ]], new SpatialReference(102100));
                var myGraphicLine:Graphic = new Graphic(myPolyline);
                myGraphicLine.symbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASH, 0xDD2222, 1.0, 4);
				myGraphicLine.toolTip = "用ActionScript创建 线 SimpleLineSymbol";
                myGraphicsLayer.add(myGraphicLine);

                var myPolygon:Polygon = new Polygon(
                    [[
                     new MapPoint(2352491, -1992338),
                     new MapPoint(2332923, -2461967),
                     new MapPoint(2646009, -2266288),
                     new MapPoint(3076503, -2324992),
                     new MapPoint(3272181, -2520670),
                     new MapPoint(3506996, -2559806),
                     new MapPoint(3702675, -3049003),
                     new MapPoint(3370021, -3675175),
                     new MapPoint(2763416, -4046965),
                     new MapPoint(2117676, -4144804),
                     new MapPoint(1961133, -3890422),
                     new MapPoint(2000269, -3655607),
                     new MapPoint(1667615, -3185978),
                     new MapPoint(1550208, -2422831),
                     new MapPoint(1334961, -1953202),
                     new MapPoint(2352491, -1992338)
                     ]], new SpatialReference(102100));
                var myGraphicPolygon:Graphic = new Graphic();
                myGraphicPolygon.geometry = myPolygon;
                myGraphicPolygon.symbol = new SimpleFillSymbol(
                    SimpleFillSymbol.STYLE_SOLID, // fill style
                    0xFF0000, // 填充颜色
                    0.7 // 透明度
                    );
                myGraphicPolygon.toolTip = "用ActionScript创建多边形 SimpleFillSymbol";
                myGraphicsLayer.add(myGraphicPolygon);
                btn.enabled = false;
            }
        ]]>
    </fx:Script>

    <s:controlBarContent>
        <s:RichText width="100%">
			这个示例演示了使用MXML或ActionScript将图像添加到地图。
			简单的标记符号,图像标记符号,简单的线条符号,简单填充符号,和图片填充符号显示。
			Simple marker symbols, picture marker symbols, simple line symbols, simple fill symbols, and picture fill symbols are shown.
        </s:RichText>
        <s:Button id="btn"
                  click="addSomeMarkers()"
                  label="使用ActionScript添加更多的标记"/>
    </s:controlBarContent>

    <esri:Map id="myMap"
              level="2"
              wrapAround180="true">
        <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/>
        <esri:GraphicsLayer id="myGraphicsLayer">
            <esri:Graphic toolTip="加利福尼亚州的MapPoint与SimpleMarkerSymbol">
                <esri:geometry>
                    <esri:MapPoint x="-13163000" y="4035000"
                                   spatialReference="{new SpatialReference(102100)}"/>
                </esri:geometry>
                <esri:symbol>
                    <esri:SimpleMarkerSymbol color="0x0033DD" size="18"/>
                </esri:symbol>
            </esri:Graphic>
            <esri:Graphic toolTip="飓风折线的SimpleLineSymbol">
                <esri:geometry>
                    <esri:Polyline spatialReference="{new SpatialReference(102100)}">
                        <fx:Array>
                            <fx:Array>
                                <esri:MapPoint x="-4700503" y="1128848"/>
                                <esri:MapPoint x="-7909635" y="2819513"/>
                                <esri:MapPoint x="-8144450" y="4199048"/>
                                <esri:MapPoint x="-7244327" y="5261584"/>
                            </fx:Array>
                        </fx:Array>
                    </esri:Polyline>
                </esri:geometry>
                <esri:symbol>
                    <esri:SimpleLineSymbol width="3" color="0xFF0000"/>
                </esri:symbol>
            </esri:Graphic>
            <esri:Graphic toolTip="带SimpleFillSymbol多边形的巴西">
                <esri:geometry>
                    <esri:Polygon spatialReference="{new SpatialReference(102100)}">
                        <fx:Array>
                            <fx:Array>
                                <esri:MapPoint x="-3867905" y="-671044"/>
                                <esri:MapPoint x="-4533702" y="-2578326"/>
                                <esri:MapPoint x="-5316417" y="-2832708"/>
                                <esri:MapPoint x="-5844750" y="-3869806"/>
                                <esri:MapPoint x="-6333947" y="-3498016"/>
                                <esri:MapPoint x="-6412218" y="-1942370"/>
                                <esri:MapPoint x="-8211974" y="-954779"/>
                                <esri:MapPoint x="-7703209" y="229077"/>
                                <esri:MapPoint x="-5736637" y="454597"/>
                                <esri:MapPoint x="-3867905" y="-671044"/>
                            </fx:Array>
                        </fx:Array>
                    </esri:Polygon>
                </esri:geometry>
                <esri:symbol>
                    <esri:SimpleFillSymbol alpha="0.7" color="0x009933"/>
                </esri:symbol>
            </esri:Graphic>
        </esri:GraphicsLayer>
    </esri:Map>
</s:Application>


原文摘录官方demo: https://developers.arcgis.com/flex/sample-code/adding-graphics.htm



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值