新普金娱乐网址


地理尚未吃罢这种肉,都未好意思说公来过瑞士

地理程序员的业余生活之健身篇

地理(十四)WebGIS中地图放大缩小的统筹与落实

  • 九月 16, 2018
  • 地理
  • 没有评论

章版权由作者李晓晖与博客园共有,若转载请为大庭广众处于标明出处:http://www.cnblogs.com/naaoveGIS/。

config.xml文件之部署如下:

1.背景

每当高达平等回中,我们深受有了上上下下工具栏设计的主干,使用命令模式,并规划了具体工具类所累的基类——Command类。从马上同段开我们不怕正式进入了现实工具类的规划以及落实。

放开与缩小工具是不过基础之工具有,其操作分为三种植:

a.点击地图,进行放大缩小

b.拉框,进行拓宽缩小

c.滚轮调控放大缩小

针对当下三种操作方式,我们开展了不同的代码逻辑设计。

         <widget label="路径导航" icon="assetslujingdaohang.png"
            config="widgets/eDriections/eDirectionsWidget.xml" url="widgets/eDriections/eTabDirectionsWidget.swf" />

2.分析

a.滚轮调控地图放大缩小是一个定位的操作,即使切换到其它操作及时时,此操作也应相同生效。所以,将此意义应该放入到基类Command类中。

b.点击地图时,应该依据工具选择,进行以点击点为主干,将地图放大一个级别或缩小一个级别。

c.拉框进行地图放大时,根据拉框的尺寸进行相应之地形图级别的放大与压缩。

不过,这里提到到一个问题,地图的级别是定点的,如果光的将季交锋坐标变成拉框大小,则这不胜可能连不曾指向许者四比赛坐标的级别。同时,四较量坐标不肯定得要统筹成拉框的真大小,有好多网,其忠实的季比赛坐标是拉框大小再乘以一个稳定参数而得,比如1.5倍增。

d.拉框进行地图缩小时,有些许栽思路去贯彻。一栽对立复杂,一种对立简单。同样以下面我们见面切实解释。

源代码目录如下:

3.地图放大与缩小的法则

倘打听滴入放大和压缩的原理,我们要对栅格地图中瓦片的博与拼接显示出基本的亮,大家好反过来看自己以斯系列被之次回交第六章。

此地,我本着加大和紧缩的骨干原理做盖的教授。

地理 1

3.1流程图

以下是整个操作实现之流程图:

 地理 2

                       

界面效果:

3.2切实说明

操作分为拉框和点击,根据两种操作可以博得有限种植参数。针对拉框获得的参数就包括屏幕的地理四角坐标,针对点击获得的参数则连了屏幕的地理四竞赛坐标以及要显得的级别的。

冲参数的两样,瓦片的求同样为分为两种植要方式。

针对只有屏幕地理四竞坐标的参数,瓦片请求时,会首先终于有和之屏幕四角坐标最温柔的地形图级别是聊,然后于新算出这之屏幕地理四竞技坐标以及有关的瓦的真实性范围。

本着屏幕地理四竞赛坐标和出示级别都有些参数,瓦片请求时,会打新算出当斯显示级别下,屏幕的地理四竞技坐标应该是多少,中心点是参数中屏幕四斗坐标的主干点。

4.放好作用的宏图

以上头我们关系了加大效应设计的有数栽方式,点击和拉框。

a.点击操作时,以点击点为中心点,给来一个冲这个中心点的限(可以默认加减一个参数即可),然后抱这底地形图级别,如果地图不是无比小级别(0),则拿以此Level减1,便是要出示的地图级别(注:这里级别越聊,比例尺越聊,即放开)。

b.拉框操作时,用拉框范围,或者欠限量就以的基数为求参数中之屏幕地理四竞技坐标,请求瓦片。

地理 3

5.紧缩功能的设计

a.点击操作时,与推广操作没有本质区别,只是需要将赢得的这地图级别加1即可。

b.拉框操作时,如上面提到过之问题。这里发生些许种艺术来缓解,一种植相对难一些,一种植相对简便易行有。难一些的,需要我们第一得出这底拉框范围和这屏幕范围的比值recPercent,然后起点儿种处理方式:一般的是用这屏幕范围除以recPercent得到需要之屏幕地理范围;复杂的凡因此此recPercent做连锁的变化然后随着以屏幕地理范围。两种植艺术本质是同一的。简单的点子,就是拿缩小功能的拉框操作设计的与点击时之操作一样即可。

大体的笔触如下:1.文本框输入开始接触及结束点,获取两单点坐标;2.直在地图及点击两单点,获取两独点坐标;其实简单单之最终目的是一致的,都是为博取两独点坐标。其中使用了地理编码服务,用于根据地名来获取坐标以及根据坐标来赢得地名信息。

地理6.优化工作

以拉框时,能够将拖累绳的矩形画来,会如力量美化很多。这里仅需要监听几种植mouse事件,做出相关逻辑控制即可实现。

用到了arcgis
api的极缺乏路径分析接口,routeParams以及routeTask,routeParams用来安有些关于路径分析的参数,routeTask是故来实行路径分析方法的,具体的使探望api的牵线才行。备注:该功能模块的基本前提是只要披露网络分析服务,这个以自我的博客其他文章有描绘的

7.深入探讨

于我们重新申请了地图瓦片,改变了屏幕地理四竞赛坐标后,其实是展开了同样次等地图的基础代谢的效果。这里,我们用以就地图放大与缩小后,抛来一个地形图的Zoom事件,这样地图上的矢量图层监听到该事件后,才能够做出相关的重绘操作。否则矢量图层将同当下的栅格图层出现叠加错。

如上所述,获取两只点坐标,保存于一个stops数组里面,然后设置routeParams的性能,routeParams对象有只特性是stops,除了stops之外,还有attributeParameterValues、directionsLengthUnits、returnDirectionsreturnDirections、returnRoutes、returnStops等等;最好是行routeTask.solve(routeParams);

8.总结

在及时无异于章我们讲解了地图放大与缩小功能的规划以及贯彻,在生一样段节中我们开始讨论地图的走功能的统筹以及促成。平移功能涉及到我当前边章节中涉嫌了的一个题材,即矢量图层中要素的皇问题。我们啊会见专门花一个回来教学坐标的摇问题。此问题的化解原理及之前涉嫌的屏幕坐标和地理坐标转换原理相结合后,能够生好的化解矢量图层中要素图层的来得问题。欢迎大家频频关注。

                                                                 
—–欢迎转载,但保留版权,请给大庭广众处于标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                          
如果你认为本文确实帮了而,可以微信扫一扫,进行小额的打赏和鞭策,谢谢
^_^

                                    地理 4

eDirectionsWidget.xml:配置有路径分析的信

<?xml version="1.0" ?>
<configuration>
    <url>http://localhost:6080/ArcGIS/rest/services/gzRoad/NAServer/路径</url>
    <useproxy>false</useproxy> 
<!--     <locatorurl>http://172.16.6.67/ArcGIS/rest/services/guangzhou_loc/GeocodeServer</locatorurl> -->
    <locatorurl>http://localhost:6080/ArcGIS/rest/services/ns_loc_Composite/GeocodeServer</locatorurl>
    <routeoptions />
    <fromTx>广州市南沙区信访局</fromTx>
    <toTx>小虎一桥</toTx>
</configuration>

<!-- See Directions widget tag reference at http://links.esri.com/directionswidget -->

eTabDirectionsWidget.mxml:

<?xml version="1.0" encoding="utf-8"?>
<!--
///////////////////////////////////////////////////////////////////////////
// Copyright (c) 2013 Esri. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
///////////////////////////////////////////////////////////////////////////
-->
<viewer:BaseWidget 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:viewer="com.esri.viewer.*"
                   xmlns:esri="http://www.esri.com/2008/ags"
                   xmlns:RichTabNavigator="com.RichTabNavigator.*"
                   initialize="basewidget_initializeHandler(event)"
                   widgetConfigLoaded="basewidget_widgetConfigLoaded()">
    <viewer:states>         
        <s:State name="textInput"/>
        <s:State name="resultsList"/>
    </viewer:states>

    <viewer:transitions>
        <s:Transition autoReverse="true" toState="*">
            <s:Fade id="fade"/>
        </s:Transition>
    </viewer:transitions>
    <fx:Script>
        <![CDATA[ 
            import com.esri.ags.FeatureSet;
            import com.esri.ags.Graphic;
            import com.esri.ags.SpatialReference;
            import com.esri.ags.events.DrawEvent;
            import com.esri.ags.events.LocatorEvent;
            import com.esri.ags.events.RouteEvent;
            import com.esri.ags.geometry.Extent;
            import com.esri.ags.geometry.Geometry;
            import com.esri.ags.geometry.MapPoint;
            import com.esri.ags.geometry.Polyline;
            import com.esri.ags.portal.PopUpRenderer;
            import com.esri.ags.portal.supportClasses.PopUpInfo;
            import com.esri.ags.symbols.TextSymbol;
            import com.esri.ags.tasks.supportClasses.AddressCandidate;
            import com.esri.ags.tasks.supportClasses.AddressToLocationsParameters;
            import com.esri.ags.tasks.supportClasses.DirectionsFeatureSet;
            import com.esri.ags.tasks.supportClasses.NAOutputLine;
            import com.esri.ags.tasks.supportClasses.RouteResult;

            import mx.collections.ArrayCollection;
            import mx.containers.Panel;
            import mx.containers.TitleWindow;
            import mx.controls.Alert;
            import mx.controls.Text;
            import mx.controls.TextArea;
            import mx.core.IVisualElement;
            import mx.core.UIComponent;
            import mx.events.CloseEvent;
            import mx.events.EffectEvent;
            import mx.events.FlexEvent;
            import mx.events.ListEvent;
            import mx.events.ModuleEvent;
            import mx.events.ResizeEvent;
            import mx.formatters.*;
            import mx.managers.PopUpManager;
            import mx.rpc.AsyncResponder;
            import mx.rpc.Fault;
            import mx.rpc.events.FaultEvent;

            import spark.components.NavigatorContent;
            import spark.events.IndexChangeEvent;
            import spark.primitives.Path;

            private const ICON_URL:String = "assets";
            private var textsearchLabel:String="路径分析";
            private var resultsLabel:String="分析结果";
            [Bindable]
            private var fromText:String;
            [Bindable]
            private var toText:String;
            protected function basewidget_initializeHandler(event:FlexEvent):void
            {
                if (isPartOfPanel) // if widget is part of "left", "right" or "bottom" panel
                {
                    this.percentWidth = this.percentHeight = 100;
                    wTemplate.percentWidth = wTemplate.percentHeight = 100;
                }
                else
                {
                    wTemplate.height = map.height - map.height / 100 - Number(this.top) - Number(this.bottom);
                    wTemplate.width = 440;
                }
            }

            private function basewidget_widgetConfigLoaded():void
            {
                // hide map infowindow if any               
                map.infoWindow.hide();
                if (configXML)
                {
                    sUrl = configXML.url[0];
                    var useProxyForDirections:Boolean = configXML.useproxy[0] && configXML.useproxy == "true";
                    locatorURL = configXML.locatorurl[0];
                    fromText=configXML.fromTx[0];
                    toText=configXML.toTx[0];
                }
                wTemplate.addTitlebarButton(ICON_URL + "i_searchtext.png", textsearchLabel, showStateTextSearch);
                wTemplate.addTitlebarButton(ICON_URL + "i_table.png", resultsLabel, showStateResults);
                fade.targets = [  textInput, resultsList ];
                wTemplate.visible = true;
            }

            private function showStateTextSearch():void
            {
                this.currentState = "textInput";
                wTemplate.selectedTitlebarButtonIndex = 0;
            }

            private function showStateResults():void
            {
                this.currentState = "resultsList";
                wTemplate.selectedTitlebarButtonIndex = 1;
            }


            //////////////////////////////////////////////////////
            //路径分析功能部分代码
            [Bindable]
            private var sUrl:String;//="http://172.16.6.67/ArcGIS/rest/services/gzRoad/NAServer/路径";    
            [Bindable]
            private var locatorURL:String;
            private var stopType:String;
            private var fromGraphic:Graphic;
            private var toGraphic:Graphic;
            [Bindable]
            private var startTime:Date=new Date();
            [Bindable]
            private var endTime:Date;

            [Bindable]
            private var travelTypeList:ArrayCollection = new ArrayCollection( [   
                { label: "步行", data: 0 },     
                { label: "驾车", data: 1  },
                {label: "自行车", data: 2  }]); 

            [Bindable]
            private var attributeParameters:Array = new Array({ 
                "attributeName" : "Time",
                "parameterName" : "TravelType",
                "value" :1});

            [Bindable]
            private var impedanceAttributes:ArrayCollection = new ArrayCollection( [   
                { label: "最短距离", data: "Distance" },     
                { label: "最少时间", data: "Time"  }]);

            [Bindable]
            private var restrictionAttributes:Array=new Array("walking");

            private const NL:String = "\n";

            [Bindable]private var stopsFS:FeatureSet = new FeatureSet();

            private var directionResult:directionResultGroup;
            private var segmentGraphic:Graphic;

            private var tabImpactIndex:int = 0;
            private function getDirections():void
            {
                //hanhh
                /* directionResult =new directionResultGroup();
                tabImpact.addChild(directionResult);
                tabImpactIndex = tabImpact.numChildren-1;
                tabImpact.selectedIndex = tabImpactIndex; */
                //add by lizeping ,2014/02/13
                startTime=startDateField.selectedDate;
                startTime.hours=hoursStepper.value;
                startTime.minutes=minutesStepper.value;

                stopsFS.features = [];
                segmentGraphic = null;
                //hanhh
//                directionResult.map = map;
                //                map.defaultGraphicsLayer.clear();
                var fromParameters:AddressToLocationsParameters = new AddressToLocationsParameters();
                fromParameters.distance=0.005;
                fromParameters.address = { SingleLine: fromTx.text, CountryCode: 'US' };
                fromParameters.outFields = [ "Loc_name" ];
                locator.addressToLocations(fromParameters, new AsyncResponder(
                    myResultFunction, myFaultFunction, "From"));

                var toParameters:AddressToLocationsParameters = new AddressToLocationsParameters();
                toParameters.address = { SingleLine: toTx.text, CountryCode: 'US' };
                toParameters.distance=0.005;
                toParameters.outFields = [ "Loc_name" ];
                locator.addressToLocations(toParameters, new AsyncResponder(
                    myResultFunction, myFaultFunction, "To"));

                function myResultFunction(result:Array, token:String = null):void
                {
                    solveRoute(result, token);
                }
                function myFaultFunction(error:Fault, token:Object = null):void
                {
                    Alert.show(error.faultString, "Locator Error");
                }
            }

            private function solveRoute(addressCandidates:Array, type:String):void
            {
                if (addressCandidates.length == 0)
                {
                    Alert.show(type + " address not found.", "Missing Result");
                    return;
                }

                var stop:AddressCandidate = addressCandidates[0];

                if (type == "From")
                {
                    map.defaultGraphicsLayer.remove(fromGraphic);
                    fromGraphic = new Graphic(stop.location, fromSymbol, { address: stop.address, score: stop.score });
                    map.defaultGraphicsLayer.add(fromGraphic);
                    stopsFS.features[0] = fromGraphic;

                }
                else if (type == "To")
                {
                    map.defaultGraphicsLayer.remove(toGraphic);
                    toGraphic = new Graphic(stop.location, toSymbol, { address: stop.address, score: stop.score });
                    map.defaultGraphicsLayer.add(toGraphic);
                    stopsFS.features[1] = toGraphic;

                }

                if (stopsFS.features[0] && stopsFS.features[1])
                {
                    routeParams.attributeParameterValues=attributeParameters;

                    routeTask.solve(routeParams);
                }
            }

            private function solveCompleteHandler(event:RouteEvent):void
            {
                directionResult =new directionResultGroup();
                tabImpact.addChild(directionResult);
                tabImpactIndex = tabImpact.numChildren-1;
                tabImpact.selectedIndex = tabImpactIndex;
                directionResult.map = map;
                showStateResults();
                var routeResult:RouteResult = event.routeSolveResult.routeResults[0];
                directionResult.directionsFS = routeResult.directions;
                //add at 2014-01-08

                //var route:Graphic=routeResult.route;
                directionResult.route=routeResult.route;
                directionResult.graphicLayer.add(fromGraphic);//图标传给动态生成的tab页
                directionResult.graphicLayer.add(toGraphic);//图标传给动态生成的tab页
                map.defaultGraphicsLayer.clear();
                directionResult.showResult();
            }


            private function faultHandler(event:FaultEvent):void
            {
                Alert.show(event.fault.faultString + "\n\n" + event.fault.faultDetail, "Routing Error " + event.fault.faultCode);
            }


            private function formatDistance(dist:Number, units:String):String
            {
                var result:String = "";

                var d:Number = Math.round(dist * 100) / 100;

                if (d != 0)
                {
                    result = d + " " + units;
                }

                return result;
            }

            private function formatTime(time:Number):String
            {
                var result:String;

                var hr:Number = Math.floor(time / 60);
                var min:Number = Math.round(time % 60);

                if (hr < 1 && min < 1)
                {
                    result = "";
                }
                else if (hr < 1 && min < 2)
                {
                    result = min + " 分钟";
                }
                else if (hr < 1)
                {
                    result = min + " 分钟";
                }
                else
                {
                    result = hr + " 小时 " + min + " 分钟";
                }

                return result;
            }

            protected function cmbTravelType_changeHandler(event:ListEvent):void
            {
                // TODO Auto-generated method stub                
                attributeParameters = new Array({ 
                    "attributeName" : "Time",
                    "parameterName" : "TravelType",
                    "value" : cmbTravelType.selectedItem.data});
                if(cmbTravelType.selectedItem.data==0){
                    trace("use walking");
                    restrictionAttributes=new Array("walking");
                }else{
                    restrictionAttributes=new Array("driving");
                }
                routeParams.attributeParameterValues=attributeParameters;
            }

            protected function cmbImpedance_changeHandler(event:ListEvent):void
            {
                routeParams.impedanceAttribute=cmbImpedance.selectedItem.data;

            }

            protected function btnFrom_clickHandler(event:MouseEvent):void
            {
                // TODO Auto-generated method stub
                stopType="From";
                myDrawTool.markerSymbol=fromSymbol;
                myDrawTool.activate(DrawTool.MAPPOINT);

            }

            protected function btnTo_clickHandler(event:MouseEvent):void
            {
                // TODO Auto-generated method stub
                stopType="To";
                myDrawTool.markerSymbol=toSymbol;
                myDrawTool.activate(DrawTool.MAPPOINT);
            }

            protected function drawTool_drawEndHandler(event:DrawEvent):void
            {
                // reset after finished drawing a feature
                myDrawTool.deactivate();
                //查询地址信息
                if(stopType=="From"){
                    map.defaultGraphicsLayer.remove(fromGraphic);
                    fromGraphic=event.graphic;
                }else{
                    map.defaultGraphicsLayer.remove(toGraphic);
                    toGraphic=event.graphic;
                }
                var point:MapPoint=event.graphic.geometry as MapPoint;
                locator.locationToAddress(point, 1000);

            }

            private function onLocationToAddressComplete(event:LocatorEvent):void
            {

                var candidate:AddressCandidate = event.addressCandidate;                

                if (candidate && candidate.address && candidate.address.Address)
                {
                    var address:Object = candidate.address;                 

                    if(stopType=="From"){
                        fromTx.text=address.Address;    
                    }
                    else{
                        toTx.text=address.Address;
                    }                             
                }
                else
                {
                    Alert.show("This location does not have a known street address.");
                }
            }

            private function onFault(event:FaultEvent):void
            {
                if (event.fault.name == 'Error'
                    && event.fault.faultCode == '500'
                    && event.fault.faultString == 'An unexpected error occurred processing the request.')
                {
                    Alert.show("Did you click too far from a road?\n\n" + event.fault.faultDetail, "No result");
                }
                else
                {
                    Alert.show(event.fault.faultString + "\n\n" + event.fault.faultDetail, "Reverse Geocoding Error " + event.fault.faultCode);
                }
            }

            private function widgetClosedHandler(event:Event):void
            {
                map.defaultGraphicsLayer.clear();
            }            

        ]]>
    </fx:Script>



    <fx:Declarations>
        <!-- Symbol for all point shapes -->

        <esri:DrawTool id="myDrawTool" drawEnd="drawTool_drawEndHandler(event)"
                       graphicsLayer="{map.defaultGraphicsLayer}" map="{map}"/>
        <!--http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer-->
        <esri:Locator id="locator" fault="onFault(event)"
                      locationToAddressComplete="onLocationToAddressComplete(event)"
                      outSpatialReference="{map.spatialReference}" showBusyCursor="true"
                      url="{encodeURI(locatorURL)}"/>

        <esri:RouteTask id="routeTask" concurrency="last" fault="faultHandler(event)"
                        requestTimeout="30" showBusyCursor="true"
                        solveComplete="solveCompleteHandler(event)" url="{encodeURI(sUrl)}"/>

        <esri:RouteParameters id="routeParams" attributeParameterValues="{attributeParameters}"
                              directionsLengthUnits="esriMeters"
                              outputGeometryPrecisionUnits="esriDecimalDegrees"
                              outSpatialReference="{map.spatialReference}"
                              restrictionAttributes="{restrictionAttributes}"
                              returnDirections="true" returnRoutes="true" returnStops="true"
                              startTime="{startTime}" stops="{stopsFS}"/>

        <!--<esri:SimpleMarkerSymbol id="fromSymbol" color="0x00FF00"/>-->
        <!--<esri:SimpleMarkerSymbol id="toSymbol" color="0xFF0000"/>-->
        <esri:PictureMarkerSymbol id="fromSymbol" source="assets/skins/directions/green-A.png"/>
        <esri:PictureMarkerSymbol id="toSymbol" source="assets/skins/directions/blue-B.png"/>
        <esri:SimpleLineSymbol id="routeSymbol" width="4" alpha="0.5" color="0x0000FF"/>
        <esri:SimpleLineSymbol id="segmentSymbol" width="8" alpha="0.5" color="0xFF0000"/>
        <esri:SimpleLineSymbol id="tempSymbol" width="8" alpha="0" color="0xFF0000"/>
        <s:DateTimeFormatter id="dtFormatter" dateTimePattern="MM/dd/yy, HH:mm"/>
    </fx:Declarations>
    <viewer:WidgetTemplate id="wTemplate" closed="widgetClosedHandler(event)" width="340" height="520">

        <s:Group id="textInput" visible="false" width="100%" height="100%"
                 visible.textInput="true">            
            <s:Form width="100%">
                <!-- 更改垂直间距 -->
                <s:layout>
                    <s:FormLayout gap="-14"/>
                </s:layout>
                <s:FormItem label="起点:">
                    <s:HGroup width="100%">
                        <s:TextInput id="fromTx" text="{fromText}" width="90%"/>             
                        <s:Image id="addFrom" buttonMode="true" click="btnFrom_clickHandler(event)" height="30"
                                 source="@Embed('assets/skins/directions/add-stop.png')"
                                 toolTip="{resourceManager.getString('ESRIMessages', 'directionsAddDestinationByMapClickTooltip')}"
                                 useHandCursor="true"/>        
                    </s:HGroup>
                </s:FormItem>
                <s:FormItem label="终点:">
                    <s:HGroup width="100%">
                        <s:TextInput id="toTx" text="{toText}" width="90%"/>
                        <s:Image id="addTo" buttonMode="true" click="btnTo_clickHandler(event)" height="30"
                                 source="@Embed('assets/skins/directions/add-stop.png')"
                                 toolTip="{resourceManager.getString('ESRIMessages', 'directionsAddDestinationByMapClickTooltip')}"
                                 useHandCursor="true"/>
                    </s:HGroup>
                </s:FormItem>
                <s:FormItem label="出行方式:">
                    <mx:ComboBox id="cmbTravelType" change="cmbTravelType_changeHandler(event)" 
                                 dataProvider="{travelTypeList}" selectedIndex="1"/>

                </s:FormItem>
                <s:FormItem label="路径选择:">
                    <mx:ComboBox id="cmbImpedance" change="cmbImpedance_changeHandler(event)" 
                                 dataProvider="{impedanceAttributes}" selectedIndex="0"/>

                </s:FormItem>
                <s:FormItem label="出发时间:">
                    <s:HGroup><mx:DateField id="startDateField" formatString="YYYY-MM-DD" height="30"
                                            selectedDate="{new Date()}">                                
                              </mx:DateField>
                        <s:NumericStepper id="hoursStepper" width="40" maximum="24" minimum="1">                                 
                        </s:NumericStepper><s:Label text="时"/>                                                             
                        <s:NumericStepper id="minutesStepper" width="40" maximum="59" minimum="0"></s:NumericStepper><s:Label text="分"/>
                    </s:HGroup></s:FormItem>
                <s:FormItem>                             
                    <s:Button label="查询" click="getDirections()" height="30"/>
                </s:FormItem>
            </s:Form>
        </s:Group>
        <s:Group id="resultsList" visible="false" width="100%" height="100%"
                 visible.resultsList="true">            
            <RichTabNavigator:RichTabNavigator id="tabImpact" width="100%" height="100%" backgroundAlpha="0"
                                               cornerRadius="5" dropShadowVisible="false" horizontalAlign="left"
                                               paddingTop="-1" tabHeight="30" tabWidth="110" borderVisible="true">
            </RichTabNavigator:RichTabNavigator>
        </s:Group>


    </viewer:WidgetTemplate>
</viewer:BaseWidget>

备注:

GIS技术交流QQ群:432512093

WebGIS二次开发培训可门群: 238339408

相关文章

No Comments, Be The First!
近期评论
    分类目录
    功能
    网站地图xml地图