ArcGIS API for Android 案例教程 13
来源:互联网 发布:4399unity3d插件下载 编辑:程序博客网 时间:2024/05/02 02:23
地理处理服务
图 31 调用GP服务的ViewShed例子
ArcGIS Android API中演示GP服务的调用是一个很有意思的例子(ViewShed),这个例子让用户在屏幕上画一个点,再通过左上角那个执行的按钮发送一个调用GP服务的请求,当这个GP服务被调用成功后,返回给客户端的是一些多边形,这些多边形表示的是如果有人站在刚才用户画点的位置所能看到的区域。
现在,如果你打开这个例子的源代码,你应该可以很容易地从左上角那个“go”按钮的事件监听中找到这个GP服务的调用方法:
GPFeatureRecordSetLayer gpf = new GPFeatureRecordSetLayer(
"Input_Observation_Point");
gpf.setSpatialReference(map.getSpatialReference());
gpf.setGeometryType("esriGeometryPoint");
Graphic f = new Graphic();
f.setGeometry(mappoint);
gpf.addGraphic(f);
GPLinearUnit gpl = new GPLinearUnit("Viewshed_Distance");
gpl.setUnits("esriMeters");
gpl.setDistance(8046.72);
params = new ArrayList
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();
}
在上面的代码中,主要做了两件事情:第一件事情是准备GP服务执行所需要的参数ArrayList
class ViewShedQuery extends
AsyncTask
GPParameter[] outParams = null;
@Override
protected void onPostExecute(GPParameter[] result) {
…
}
@Override
protected GPParameter[] doInBackground(
ArrayList
gp = new GeoProcessor("http://sampleserver1.arcgisonline.com/ArcGIS
/rest/services/Elevation/ESRI_Elevation_World/GPServer/Viewshed");
gp.setOutSR(map.getSpatialReference().getID());
try {
GPResultResource gprr = gp.execute(params1[0]);
outParams = gprr.getOutputParameters();
} catch (Exception e) {
e.printStackTrace();
}
return outParams;
}
很显然,这个GP服务是一个同步执行的服务,因此,在这里调用的是GeoProcessor对象的execute方法。如果是一个异步执行的GP服务,那么想来应该是执行GeoProcessor的submitJob方法,有兴趣的可以自己再尝试一下。
- ArcGIS API for Android 案例教程 13
- ArcGIS API for Android 案例教程 1
- ArcGIS API for Android 案例教程 2
- ArcGIS API for Android 案例教程 3
- ArcGIS API for Android 案例教程 4
- ArcGIS API for Android 案例教程 5
- ArcGIS API for Android 案例教程 6
- ArcGIS API for Android 案例教程 7
- ArcGIS API for Android 案例教程 8
- ArcGIS API for Android 案例教程 9
- ArcGIS API for Android 案例教程 10
- ArcGIS API for Android 案例教程 11
- ArcGIS API for Android 案例教程 12
- ArcGIS API for Android 案例教程 14
- ArcGIS API for Android 案例教程 15
- ArcGIS API for Android 案例教程 16
- ArcGIS API for Android 案例教程 17
- 《ArcGIS API for Android 案例教程》PDF版本
- VC 运行时库中的 new/delete 使用
- APN symbian手机上的接入点编程
- VS2005不能调试 IE8 断点无效 .NET不能调试
- 将函数声明为 static final 可以提高运行速度
- ArcGIS API for Android 案例教程 12
- ArcGIS API for Android 案例教程 13
- 猫叫鼠跑人醒
- ArcGIS API for Android 案例教程 14
- Access无法启动的解决方法
- oracle 科学计数法转化为数值型显示
- ArcGIS API for Android 案例教程 15
- ime-mode模式
- p
- ArcGIS API for Android 案例教程 16