ArcGIS for Android Runtime100 基本操作(五)——绘制图层和符号渲染

本文介绍了ArcGIS for Android Runtime100中GraphicsOverlay的使用,作为替代FeatureLayer的新绘图层,它解决了地图内容覆盖的问题。内容包括GraphicsOverlay的实例化、DYNAMIC和STATIC模式的解释,以及如何加载和更新图形。此外,文章还详细讲解了Symbol类,包括SimpleMarkerSymbol、PictureMarkerSymbol、TextSymbol、SimpleLineSymbol和SimpleFillSymbol的使用,以及如何通过渲染设置图形样式。
摘要由CSDN通过智能技术生成

      在ArcGIS里我们经常要高亮显示一些图形,比如GPS轨迹,查询、分析出来的地块图形等。在ArcGIS10.2.X版本里,一般我们都会新建FeatureLayer来放置这些图形,然后渲染显示;但是在Runtime100 里删除了这个类,取而代之的是一个新类——GraphicsOverlay作为绘制图层,并和地图内容分开来。其和MapView以及ArcGISMap的关系如下所示:



      

      单独把绘制图层拿出来的一个好处就是,它将永远置于地图内容之上。在以前我们如果要在MapView里加载一个新的图层,必须先remove带有图形的FeatureLayer,加载这个图层之后再加载一次带有图形的FeatureLayer,否则我们这个FeatureLayer将会被新加载的图层所覆盖。现在这个问题就不复存在了。


      那么我们来看下GraphicsOverlay的用法吧。


GraphicsOverlay加载


      首先是实例化。GraphicsOverlay的实例化方法如下:


GraphicsOverlay graphicsOverlay_1=new GraphicsOverlay();
GraphicsOverlay graphicsOverlay_2=new GraphicsOverlay(GraphicsOverlay.RenderingMode.DYNAMIC);

      GraphicsOverlay默认的构造模式一共有两种:DYNAMIC和STATIC,默认的是动态渲染模式DYNAMIC。


      当为DYNAMIC模式时候,每当图形有变化时候GraphicsOverlay会立刻更新图形;而为STATIC模式时候,图形变化了不会马上更新,而是在进行地图的缩放、旋转和平移时候才更新图层,适合于绘制图层里含有大量图形时候使用,以防图形更新太慢影响体验。


       使用方法也很简单,只需要GraphicsOverlay.getGraphics().add(Graphic graphic),然后加载到MapView里即可。举一个简单的例子,以下代码是点击屏幕后在对应地方高亮显示个红点


mMapView.setOnTouchListener(new DefaultMapViewOnTouchListener(this, mMapView) {
    @Override
    public boolean  onSingleTapConfirmed(MotionEvent v) {
        android.graphics.Point screenPoint=new android.graphics.Point(Math.round(v.getX()), Math.round(v.getY()));
        Point clickPoint = mMapView.screenToLocation(screenPoint);
        GraphicsOverlay graphicsOverlay_1=new GraphicsOverlay();
        SimpleMarkerSymbol pointSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.Style.DIAMOND, Color.RED, 10);
        Graphic pointGraphic = new Graphic(clickPoint,pointSymbol);
        graphicsOverlay_1.getGraphics().add(pointGraphic);
        mMapView.getGraphicsOverlays().add(graphicsOverlay_1);
        return true;
    }
});

      效果图如下:


评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值