Arcgis for Android在地图上画多边形并进行边长、周长和面积的测量

这篇博客介绍了如何在ArcGIS for Android地图上绘制多边形,并实时计算其边长、周长和面积。通过 Graphic 类实现图形绘制,利用地图点击事件开始画多边形,每次绘制前需清空图层。博客详细讲解了绘制过程及多边形尺寸的计算方法。
摘要由CSDN通过智能技术生成

        Arcgis for Android的地图操作里,放大缩小地图、图层切换、定位、测距测面等都是它的一些基本操作,封装后一般调用就是了,很简单。不过最近有了个需求,在地图上画一个多边形时候同时进行多边形的边长、周长和面积的计算,于是重新又写了下这个方法。代码不难,但是觉得挺有意思,于是写博文记录一下。

        首先,需要在地图上画多边形。我们看到的每个地图都是一个图层,要在地图上画个多边形,就是在图层上加载一个图形,而这个图形就是用Graphic类来实现的。从Graphic最简单的构造函数:

public Graphic(Geometry geometry, Symbol symbol) 
        我们可以看出,它主要由一个Geometry和一个Symbol构成。Geometry代表着所有0.1.2维几何图形,常用的包含了Point(点),Line(线段),Polyline(折线),Polygon(面)等。Symbol代表着这些几何图形的样式,比如点线面的大小和颜色等。

        了解了基本信息以后,首先要执行的是点击地图画多边形,点击事件是:

mMapView.setOnSingleTapListener(new OnSingleTapListener() {
    @Override
    public void onSingleTap(float v, float v1) {
        PointToDrawPolygon(v, v1);
    }
});
         传的两个参数分别是屏幕的坐标。

         然后就是画多边形了。首先每次先要把图层清空一下,如果不清空,将会保留之前画的图形。想象一下,就是比如我们第三个点时候画了一个三角形,然后按第四个点时候画了一个四边形,如果不清空的话,就是四边形覆盖在三角形上的样子。

if (messureGraphicsLayer!=null){
    messureGraphicsLayer.removeAll();
}
        接下来是将屏幕点转为地图上的点,并设置样式画上去:

Point mPoint = diitMapView.toMapPoint(v, v1);//选择点
mPoints.add(mPoint);//选择点加入点的集合
Graphic messurePoint = new Graphic(mPoint, symbolFactory.createMeasureMarkerSymbol());//点的要素初始化
messureGraphicsLayer.addGraphic(messurePoint);//点的要素添加到图层
        这里说下Symbol类,主要有一下几种:

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值