android +arcgisserver 属性查询

10 篇文章 0 订阅
2 篇文章 0 订阅
public  class attrbuteQueryActivity extends Activity {

    Button mQueryButton;
    MapView mMapView;
    final String URL_LAYER =  " http://192.168.3.130/ArcGIS/rest/services/China/MapServer ";
    GraphicsLayer mGraphicsLayer;
    EditText txtQueryString;

    @Override
     public  void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        txtQueryString = (EditText) findViewById(R.id.txtQueryString);

        mQueryButton = (Button) findViewById(R.id.queryButton);
        mQueryButton.setOnClickListener( new OnClickListener() {

            @Override
             public  void onClick(View arg0) {
                 //  查询的关键字
                String keyQuery = txtQueryString.getText().toString();
                Query query =  new Query();
                 //  类似sql语句的查询 where语句
                query.setWhere( " NAME like '% " + keyQuery +  " %' ");
                query.setReturnGeometry( true);
                 //  指定查询的目标图层
                String queryUrl = URL_LAYER +  " /0 ";
                 //  构建查询任务对象QueryTask
                QueryTask queryTask =  new QueryTask(queryUrl);

                FeatureSet fs =  null; // 结果集
                 try {
                    fs = queryTask.execute(query); // 执行查询
                }  catch (Exception e) {
                     //  TODO Auto-generated catch block
                    e.printStackTrace();
                }
                GraphicsLayer graphicsLayer = GetGraphicLayer();
                String message =  " No result comes back ";
                 if (fs !=  null && graphicsLayer.isInitialized() && graphicsLayer.isVisible()) {
                     // 获得结果集内的 graphics 对象
                    Graphic[] grs = fs.getGraphics();
                     if (grs.length >  0) {
                         // 构建  简单填充符号,该对象指定了一种“呈现方式”
                        SimpleFillSymbol symbol =  new SimpleFillSymbol(
                                Color.RED);
                         // 设定呈现方式
                        graphicsLayer.setRenderer( new SimpleRenderer(symbol));
                         // 添加 graphic带图层,这时,会自动用刚刚指定的“呈现方式”来呈现
                        graphicsLayer.removeAll(); // 移除以前的
                        graphicsLayer.addGraphics(grs);

                        message = (grs.length ==  1 ?  " 1 result has  " : Integer
                                .toString(grs.length) +  "  results have  ")
                                +  " come back ";
                    }

                }
                Toast toast = Toast.makeText(attrbuteQueryActivity. this,
                        message, Toast.LENGTH_LONG);
                toast.show();
            }
        });

        mMapView = (MapView) findViewById(R.id.map);
         //  Add layer to MapView
        mMapView.addLayer( new com.esri.android.map.ags.ArcGISDynamicMapServiceLayer(
                URL_LAYER));

        Envelope initextext =  new Envelope( 12891659.09751954817561.93785559,
                 12996377.826274884902.95977474);
        mMapView.setExtent(initextext);
    }

     /*
     * 获得 GetGraphicLayer
     
*/
     private GraphicsLayer GetGraphicLayer() {
         if (mGraphicsLayer ==  null) {
            mGraphicsLayer =  new GraphicsLayer();
            mMapView.addLayer(mGraphicsLayer);
        }
         return mGraphicsLayer;
    }

}



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值