<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"> <com.esri.android.map.MapView
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
url="http://www.arcgis.com/home/webmap/viewer.html?webmap=fab9925c7c974a0aa47ea0f463535367" >
</com.esri.android.map.MapView>
</RelativeLayout>

java

package yanlei.example.com.querydata;

import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity; import com.esri.android.map.GraphicsLayer;
import com.esri.android.map.MapView;
import com.esri.android.map.event.OnSingleTapListener;
import com.esri.android.map.event.OnStatusChangedListener;
import com.esri.core.geometry.Point;
import com.esri.core.geometry.SpatialReference;
import com.esri.core.map.Feature;
import com.esri.core.map.FeatureResult;
import com.esri.core.map.Graphic;
import com.esri.core.renderer.SimpleRenderer;
import com.esri.core.symbol.SimpleFillSymbol;
import com.esri.core.tasks.query.QueryParameters;
import com.esri.core.tasks.query.QueryTask; public class MainActivity extends AppCompatActivity { MapView mMapView;
GraphicsLayer graphicsLayer;
Graphic fillGraphic;
String queryLayer;
boolean boolQuery = true; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMapView = (MapView) findViewById(R.id.map);
queryLayer = "http://services.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Average_Household_Size/MapServer/3";
mMapView.setOnStatusChangedListener(new OnStatusChangedListener() { private static final long serialVersionUID = 1L; @Override
public void onStatusChanged(Object source, STATUS status) {
// TODO Auto-generated method stub
if (source == mMapView && status == STATUS.INITIALIZED) {
graphicsLayer = new GraphicsLayer();
SimpleRenderer sr = new SimpleRenderer(
new SimpleFillSymbol(Color.RED));
graphicsLayer.setRenderer(sr);
mMapView.addLayer(graphicsLayer);
}
}
});
mMapView.setOnSingleTapListener(new OnSingleTapListener() { private static final long serialVersionUID = 1L; @Override
public void onSingleTap(float x, float y) {
// TODO Auto-generated method stub AsyncQueryTask ayncQuery = new AsyncQueryTask();
ayncQuery.execute(x, y); }
});
} private class AsyncQueryTask extends AsyncTask<Float, Void, FeatureResult> { @Override
protected FeatureResult doInBackground(Float... queryArray) {
// TODO Auto-generated method stub
if (queryArray == null || queryArray.length <= 1)
return null;
float x = queryArray[0];
float y = queryArray[1];
Point point = mMapView.toMapPoint(x, y);
QueryParameters qParameters = new QueryParameters();
SpatialReference sr = SpatialReference.create(102100);
qParameters.setGeometry(point);
qParameters.setOutSpatialReference(sr);
qParameters.setReturnGeometry(true); QueryTask qTask = new QueryTask(queryLayer);
try {
FeatureResult results = qTask.execute(qParameters);
return results;
} catch (Exception e) {
e.printStackTrace();
}
return null;
} @Override
protected void onPostExecute(FeatureResult results) { if (results != null) {
for (Object element : results) {
if (element instanceof Feature) {
Feature feature = (Feature) element;
// turn feature into graphic
Graphic graphic = new Graphic(feature.getGeometry(),
feature.getSymbol(), feature.getAttributes());
// add graphic to layer
graphicsLayer.removeAll();
graphicsLayer.addGraphic(graphic);
}
}
}
}
} @Override
protected void onPause() {
super.onPause();
mMapView.pause();
} @Override
protected void onResume() {
super.onResume();
mMapView.unpause();
} }

最新文章

  1. JQuery表格插件DataTables 当前页合计功能
  2. iOS第八课——Navigation Controller和Tab bar Controller
  3. hashCode与equals的区别与联系
  4. UEdit初始化加载内容偶尔失败,解决
  5. 双向广搜 POJ 3126 Prime Path
  6. [IO] C# FileOperateHelper文件操作类与源码下载
  7. [转]机器学习&amp;数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
  8. android 巧用finish方法
  9. 如何优雅的研究 RGSS3 (七) 加入LOGO屏幕
  10. 2017PHP程序员的进阶之路
  11. 【Stack Overflow -- 原创加工、原创整理、生产实战】-- 深度复制
  12. Postman几种常用方式
  13. 浅谈SpringMVC执行过程
  14. [心得] 如何利用liquibase進行資料庫版本控制 - 實際練習
  15. OSC Source Code Innovation Salon(2018.10.20)
  16. NOSQL -- Mongodb的简单操作与使用(win10)
  17. mysql limit分页查询效率
  18. django 错误之 OSError: mysql_config not found
  19. flume MemoryChannel 源代码解析
  20. MySQL---索引算法B+/B-树原理(一)

热门文章

  1. MariaDB 层常用业务
  2. python内建方法
  3. HIbernate学习笔记1 之 简介
  4. redis 的优化
  5. 深入理解python多进程编程
  6. Idea创建模板
  7. 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记4——Direct3D编程基础
  8. Oracle 通用存储过程
  9. Centos6.9下安装OpenOffice 4.1.4
  10. C#发送Post请求,带参数,不带参数,指定参数