ArcGIS Google Map 增加虚拟图层(MapImageLayer)(转载)

<?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"
               xmlns:supportClasses="com.esri.ags.skins.supportClasses.*"
               xmlns:flash="flash.text.*"
               xmlns:arcgis="cn.com.vistech.arcgis.*"
               xmlns:esri="http://www.esri.com/2008/ags">
    <fx:Declarations>
        <esri:SimpleMarkerSymbol id="citySymbol"
                                 alpha="0.8"
                                 color="0xDDDD00"
                                 size="6"
                                 style="circle">
            <esri:SimpleLineSymbol width="2"
                                   alpha="1"
                                   color="0xDD0000"
                                   style="solid"/>
        </esri:SimpleMarkerSymbol>
        <esri:SimpleFillSymbol color="0xFFFFFF"
                               alpha="0.5"
                               style="solid"
                               id="mySymbol">
            <esri:SimpleLineSymbol color="0xFFFFFF"
                                   width="0"
                                   alpha="0.5"
                                   style="solid"/>
        </esri:SimpleFillSymbol>
        <esri:TextSymbol id="nanjing"
                         text="南京"
                         placement="above"
                         xoffset="1"
                         yoffset="3"
                         color="0x666666"
                         border="false"
                         borderColor="0x000000"
                         background="false"
                         backgroundColor="0xFFFFFF">
            <flash:TextFormat size="13"
                              font="宋体"
                              bold="true"
                              italic="false"
                              underline="false"/>
        </esri:TextSymbol>
        <esri:MapImageLayer id="viso"
                            alpha="0.5">
        </esri:MapImageLayer>
    </fx:Declarations>
    <esri:Map id="map"
              logoVisible="false"
              openHandCursorVisible="false"
              scaleBarVisible="false"
              zoomSliderVisible="false"
              load="loadHandler()">
        <arcgis:GoogleMapLayer/>
        <esri:GraphicsLayer symbol="{citySymbol}">
            <esri:Graphic symbol="{nanjing}">
                <esri:geometry>
                    <esri:MapPoint x="13221159.886688277"
                                   y="3769799.519742769"/>
                </esri:geometry>
            </esri:Graphic>
            <esri:Graphic>
                <esri:geometry>
                    <esri:MapPoint x="13221159.886688277"
                                   y="3769799.519742769"
                                   id="js"/>
                </esri:geometry>
            </esri:Graphic>

            <esri:Graphic>
                <esri:geometry>
                    <esri:MapPoint x="12801741.44122646"
                                   y="3606802.4843253596"/>
                </esri:geometry>
            </esri:Graphic>
            <esri:Graphic>
                <esri:geometry>
                    <esri:MapPoint x="13692297.36757265"
                                   y="4191093.670273363"/>
                </esri:geometry>
            </esri:Graphic>

            <esri:Graphic>
                <esri:geometry>
                    <esri:MapPoint x="12801741.44122646"
                                   y="4191093.670273363"/>
                </esri:geometry>
            </esri:Graphic>
            <esri:Graphic>
                <esri:geometry>
                    <esri:MapPoint x="13692297.36757265"
                                   y="3606802.4843253596"/>
                </esri:geometry>
            </esri:Graphic>
            <esri:Graphic symbol="{mySymbol}">
                <esri:Polygon spatialReference="{new SpatialReference(102113)}">
                    <fx:Array>
                        <fx:Array>
                            <esri:MapPoint id="a1"
                                           x="-20037508.342787"
                                           y="-20037508.342787"/>
                            <esri:MapPoint id="b1"
                                           x="-20037508.342787"
                                           y="3575001"/>
                            <esri:MapPoint id="a3"
                                           x="20037508.342787"
                                           y="3575001"/>
                            <esri:MapPoint id="a4"
                                           x="20037508.342787"
                                           y="-20037508.342787"/>
                        </fx:Array>
                    </fx:Array>
                </esri:Polygon>
            </esri:Graphic>
            <esri:Graphic symbol="{mySymbol}">
                <esri:Polygon spatialReference="{new SpatialReference(102113)}">
                    <fx:Array>
                        <fx:Array>
                            <esri:MapPoint id="y1"
                                           x="-20037508.342787"
                                           y="4204007"/>
                            <esri:MapPoint id="y2"
                                           x="-20037508.342787"
                                           y="20037508.342787"/>
                            <esri:MapPoint id="y3"
                                           x="-20037508.342787"
                                           y="20037508.342787"/>
                            <esri:MapPoint id="y4"
                                           x="20037508.342787"
                                           y="4204007"/>
                        </fx:Array>
                    </fx:Array>
                </esri:Polygon>
            </esri:Graphic>
            <esri:Graphic symbol="{mySymbol}">
                <esri:Polygon spatialReference="{new SpatialReference(102113)}">
                    <fx:Array>
                        <fx:Array>
                            <esri:MapPoint id="u1"
                                           x="-20037508.342787"
                                           y="4204007"/>
                            <esri:MapPoint id="u2"
                                           x="12783210"
                                           y="4204007"/>
                            <esri:MapPoint id="u3"
                                           x="12783210"
                                           y="3575001"/>
                            <esri:MapPoint id="u4"
                                           x="-20037508.342787"
                                           y="3575001"/>
                        </fx:Array>
                    </fx:Array>
                </esri:Polygon>
            </esri:Graphic>
            <esri:Graphic symbol="{mySymbol}">
                <esri:Polygon spatialReference="{new SpatialReference(102113)}">
                    <fx:Array>
                        <fx:Array>
                            <esri:MapPoint id="t1"
                                           x="13703667"
                                           y="4204007"/>
                            <esri:MapPoint id="t2"
                                           x="13703667"
                                           y="3575001"/>
                            <esri:MapPoint id="t3"
                                           x="20037508.342787"
                                           y="3575001"/>
                            <esri:MapPoint id="t4"
                                           x="20037508.342787"
                                           y="4204007"/>
                        </fx:Array>
                    </fx:Array>
                </esri:Polygon>
            </esri:Graphic>
        </esri:GraphicsLayer>
    </esri:Map>

    <s:Button label="按钮"
              click="button1_clickHandler(event)"
              top="10"
              right="10"/>
    <s:Panel x="29"
             y="19"
             width="1082"
             height="200">
        <s:Label fontWeight="bold"
                 text="Current map extent:"
                 x="15"
                 y="10"/>
        <s:RichEditableText editable="false"
                            text='xmin="{map.extent.xmin.toFixed(0)}" ymin="{map.extent.ymin.toFixed(0)}" xmax="{map.extent.xmax.toFixed(0)}" ymax="{map.extent.ymax.toFixed(0)}"   (wkid="{map.spatialReference.wkid}")'
                            x="9"
                            y="135"/>
        <s:Label fontWeight="bold"
                 text="Current map extent (in geographic):"
                 x="23"
                 y="53"/>
        <s:RichEditableText editable="false"
                            text="{showExtentInGeographic(map.extent)}"
                            x="10"
                            y="110"/>
        <s:Label fontWeight="bold"
                 text="Current Mouse Coordinates:"
                 x="10"
                 y="73"/>
        <s:RichEditableText id="mousecoords"
                            editable="false"
                            text="Move the mouse over the map to see its current coordinates..."
                            x="10"
                            y="93"/>
        <s:Label fontWeight="bold"
                 text="Current map scale is"
                 x="10"
                 y="33"/>
        <s:RichEditableText editable="false"
                            text="1:{map.scale.toFixed(0)} (level {map.level})"
                            x="14"
                            y="-24"/>
    </s:Panel>
    <fx:Script>
        <![CDATA[
            import com.esri.ags.SpatialReference;
            import com.esri.ags.events.MapEvent;
            import com.esri.ags.geometry.Extent;
            import com.esri.ags.layers.supportClasses.MapImage;
            import com.esri.ags.utils.WebMercatorUtil;

            import mx.controls.Alert;
            import mx.core.FlexGlobals;

            protected function button1_clickHandler(event:MouseEvent):void
            {

                var zx:MapPoint=new MapPoint(114.859, 35.32);
                var ys:MapPoint=new MapPoint(124.155, 41.25);
                zx=WebMercatorUtil.geographicToWebMercator(zx) as MapPoint;
                ys=WebMercatorUtil.geographicToWebMercator(ys) as MapPoint;

                viso.removeAll();
                var visoMapImage:MapImage=new MapImage();
                visoMapImage.href="http://10.32.22.250:8080/appServices/emf2vec/visoface-gis.swf?r=" + new Date().getMilliseconds();
                var extent:Extent=new Extent(12783205.393024608, 4204003.347074539, 13827701.37943888, 4989446.834623009, new SpatialReference(102113));
                visoMapImage.extent=extent;
                viso.add(visoMapImage);
                FlexGlobals.topLevelApplication.map.addLayer(viso);
            }

            private function loadHandler():void
            {
                map.centerAt(js);
                map.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
            }

            // ... show coordinates of current (mouse) location
            private function mouseMoveHandler(event:MouseEvent):void
            {
                const mapPoint:MapPoint=map.toMapFromStage(event.stageX, event.stageY);
                const latlong:MapPoint=WebMercatorUtil.webMercatorToGeographic(mapPoint) as MapPoint;
                mousecoords.text="x,y is " + mapPoint.x.toFixed(0) + "," + mapPoint.y.toFixed(0) + " and Lat/Long is: " + latlong.y.toFixed(6) + " / " + latlong.x.toFixed(6);
            }

            // convert current projected extent to geographic and show as such
            protected function showExtentInGeographic(extent:Extent):String
            {
                const geoExtent:Extent=WebMercatorUtil.webMercatorToGeographic(map.extent) as Extent;
                // return geoExtent.toString() + ".." ;
                return " " + geoExtent.xmin.toFixed(6) + ", " + geoExtent.ymin.toFixed(6) + ", " + geoExtent.xmax.toFixed(6) + ", " + geoExtent.ymax.toFixed(6) + "   (wkid: " + geoExtent.spatialReference.wkid + ")";
            }
        ]]>
    </fx:Script>
</s:Application>
posted @ 2016-08-07 15:29  ParamousGIS  阅读(1258)  评论(0编辑  收藏  举报