您的位置:首页 > 移动开发 > Android开发

android +arcgisserver 属性查询

2014-01-15 16:33 302 查看
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.0975195, 4817561.93785559,

12996377.82627, 4884902.95977474);

mMapView.setExtent(initextext);

}

/*

* 获得 GetGraphicLayer

*/

private GraphicsLayer GetGraphicLayer() {

if (mGraphicsLayer == null) {

mGraphicsLayer = new GraphicsLayer();

mMapView.addLayer(mGraphicsLayer);

}

return mGraphicsLayer;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: