ArcGIS for Android示例解析之GP服务调用-----ViewShed
2012-03-12 10:54
531 查看
ViewShed
此示例展示的是如何运用一个GP服务获取所需的结果,下面我们来看一下如何使用一个GP服务,代码如下:public void start(Point mappoint) { // 第一个参数设定一个监测点 GPFeatureRecordSetLayer gpf = new GPFeatureRecordSetLayer("Input_Observation_Point"); gpf.setSpatialReference(map.getSpatialReference()); gpf.setGeometryType(Geometry.Type.Point); // Add the point selected by the user Graphic f = new Graphic(mappoint,new SimpleMarkerSymbol(Color.RED,25,STYLE.DIAMOND)); gpf.addGraphic(f); // 第二个参数,设置可视区域 GPLinearUnit gpl = new GPLinearUnit("Viewshed_Distance"); gpl.setUnits("esriMeters"); gpl.setDistance(8046.72); // Add params params = new ArrayList<GPParameter>(); params.add(gpf); params.add(gpl); try { dialog = ProgressDialog.show(Viewshed.this, "", "Loading. Please wait...", true, true); new ViewShedQuery().execute(params); cancelViewShed = new Timer(); cancelViewShed.schedule(new TimerTask() { @Override public void run() { uiHandler.sendEmptyMessage(CANCEL_LOADING_WINDOW); } }, 60000); } catch (Exception e) { e.printStackTrace(); } } |
class ViewShedQuery extends AsyncTask<ArrayList<GPParameter>, Void, GPParameter[]> { GPParameter[] outParams = null; @Override protected void onPostExecute(GPParameter[] result) { if (outParams == null) return; for (int i = 0; i < outParams.length; i++) { if (outParams[i] instanceof GPFeatureRecordSetLayer) { GPFeatureRecordSetLayer fsl = (GPFeatureRecordSetLayer) outParams[i]; for (Graphic feature : fsl.getGraphics()) { Graphic g = new Graphic(feature.getGeometry(),new SimpleFillSymbol(Color.CYAN)); gLayer.addGraphic(g); } } } uiHandler.sendEmptyMessage(CLOSE_LOADING_WINDOW); } @Override protected GPParameter[] doInBackground(ArrayList<GPParameter>... params1) { gp = new Geoprocessor("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Elevation/ESRI_Elevation_World/GPServer/Viewshed"); gp.setOutSR(map.getSpatialReference().getID()); try { GPResultResource rr = gp.execute(params1[0]); outParams = rr.getOutputParameters(); } catch (Exception e) { e.printStackTrace(); } return outParams; } } |
相关文章推荐
- ArcGIS for Android示例解析之FeatureLayer服务-----SelectFeatures
- ArcGIS Runtime SDK for Android开发之调用GP服务(异步调用)
- ArcGIS for Android示例解析之添加地图服务-----AddLayer
- ArcGIS Runtime SDK for Android开发之调用GP服务(异步调用)
- ArcGIS for Android示例解析之高亮要素-----HighlightFeatures
- ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解
- ArcGIS API for Javascript和GP服务调用
- ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试
- arcgis for js实现GP服务创建、发布、调用(调用GP发布服务)
- arcgis api for android 调用 wms服务
- ArcGIS API for Silverlight 调用GP服务加载等值线图层
- ArcGIS API for Silverlight 调用GP服务加载等值线图层
- ArcGIS API for javascript开发笔记(六)——REST详解及如何使用REST API调用GP服务
- ArcGIS for JavaScript 开发GP服务思路解析
- ArcGIS for Android示例解析之地图旋转-----MapRotation
- (八)ArcGIS API For Javascript调用GP服务
- ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试
- ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试
- ArcGIS API for javascript开发笔记(六)——REST详解及如何使用REST API调用GP服务