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

ArcGis for Android 10.2.8个人整理

2016-08-03 17:30 302 查看
ArcGis
版本:arcgis-android-10.2.7
配置:
A。用Android Studio创建一个Android项目,然后找到我们需要引用的本地arr文件;
arcgis-android-1.2.7.aar
B。将本地arr文件Copy到我们项目的libs文件夹下(和jar一个目录);

在项目的build.gradle中:

dependencies {

compile (name: 'arcgis-android-10.2.7', ext: 'aar')
}
在build.gradle的安卓中加入
repositories{    flatDir            {                dirs 'libs'            }}
packagingOptions{
exclude 'META-INF/LGPL2.1'
exclude('META-INF/LICENSE')
exclude('META-INF/NOTICE')
}


C。以上步骤完成后点击as的构建项目 就OK了;

完成之后首先来看看ArcGis文档
1.MapView 类是 ArcGIS API For Android 里最主要的地图组件,它用来显示一组地图服务。MapView 类默认可以使用触摸进行地图导航,默认的地图导航有,放大,缩小,平移。

2.MapView 类直接继承于 Android  的 ViewGroup,因此,MapView 类集成了 Android  ViewGroup  的所有方法和属性,应用起来非常简单,就像使用 Android 其他视图组件一样。
3.MapView 至少要有一个 LayerView。 MapView 是所有 LayerView 的父类。 LayerView 类是所有加载到 MapView 上的图层类的基类。在 MVC 架构中,这个类代表着 View,它用来处理这个架构功能相关的图片渲染。可以使用抽象类的任何一个子类。
第一步:
<com.esri.android.map.MapView

android:id="@+id/mapview"

android:layout_width="match_parent"

android:layout_height="match_parent">

</com.esri.android.map.MapView>

mMapView= (MapView) findViewById(R.id.mapview);

gradle中加上:compile 'com.google.android.gms:play-services-appindexing:8.1.0'

@Override
protected void onDestroy() {
super.onDestroy();
mMapView.destroyDrawingCache();
}
@Override
protected void onResume() {
super.onResume();
mMapView.unpause();
}
@Override
protected void onPause() {
super.onPause();
mMapView.pause();
}


第二步:

private GoogleMapLayer YXLayer;// 影像图层
private GoogleMapLayer XZQHLayer;// 行政区划图层

【这两个类后面会贴出来】
可以查看我的博客【ArcGis、高德计算选中地块的面积】文章

try {
YXLayer = new GoogleMapLayer(GoogleMapLayerTypes.IMAGE_GOOGLE_MAP, "");
XZQHLayer = new GoogleMapLayer(
GoogleMapLayerTypes.ANNOTATION_GOOGLE_MAP, "");
mMapView.addLayer(YXLayer);
mMapView.addLayer(XZQHLayer);
} catch (Exception e) {
}

第三步:经过这些之后,就能够使用地图了,记得添加权限,;

后面我们调用MeasuringTool这个类;

SimpleFillSymbol fillSymbol;
Unit[] linearUnits = new Unit[] {
Unit.create(LinearUnit.Code.METER)
};
//点
SimpleMarkerSymbol markerSymbol = new SimpleMarkerSymbol(Color.BLUE, 10, SimpleMarkerSymbol.STYLE.DIAMOND);
//线
SimpleLineSymbol lineSymbol = new SimpleLineSymbol(Color.YELLOW, 3);
fillSymbol = new SimpleFillSymbol(Color.argb(100, 0, 225, 255));
fillSymbol.setOutline(new SimpleLineSymbol(Color.TRANSPARENT, 0));
// 创建所需的工具。
// MyMeas measuringTool = new MyMeas(mMapView);
MeasuringTool tool=new MeasuringTool(mMapView);
// 自定义工具 可选
tool.setLinearUnits(linearUnits);//模式
tool.setMarkerSymbol(markerSymbol);//点
tool.setLineSymbol(lineSymbol);//线
tool.setFillSymbol(fillSymbol);
startActionMode(tool);

【我是从之前项目中截取的代码,可能有冗余 见谅】

这样我们运行之后 首先选择屏幕右上方的向下的按钮,选中第一项的Area;第二项可以不用选择;这样 我们在地图上选择封闭的点 就能算出选中地区的平方米了;
=========================================
后面让我们来看看MeasuringTool:
MeasuringTool的draw()方法;[该方法在每次点击地图时就会调用去绘制]

当我们点击地图绘制左边点时,会调用this.mResult = GeometryEngine.geodesicArea(this.mPolygon, this.mMap.getSpatialReference(), (AreaUnit)this.getAreaUnit(this.mCurrentAreaUnit));

方法 去计算圈中几何的面积;

最后给大家分享一个在线地图测量距离和面积的网址:点击打开

下面这个地址是Git 上ArcGis各种例子的地址:Git上的例子
这个例子中Measure就用到了咱们上面的;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: