zoukankan      html  css  js  c++  java
  • arcgis runtime for android缓冲区分析实现技术路线

      仅为技术路线,取自鄙人毕设成果(代码懒得去扒了),纯凭记忆,细节可能有错误。当然该技术路线可能也不完美,但肯定可行。

      首先缓冲区分析采用的是geometryengine.buffer(),这个方法具体怎么用自己看API吧,这个方法的反正就是传入要素集合、距离,应该是这样,具体看API),他就会生成一个面状多部件要素,这个多部件要素就是我们想要的一层缓冲区范围,作为临时显示,推荐添加到graphicsoverlay中。

      我们常用的效果多为多环缓冲区分析,因此,我们可以重复上述步骤,通过设置每一层的缓冲区距离,获取到不同大小的多部件要素,保存好第一步就算完成了。多环缓冲区分析的难点在于如何达到多环的效果,我通过调整颜色透明度实现,比如一个3环的缓冲区分析,我们给他传入颜色的时候,设置透明度为0.3,那么由于叠加效果,第一层缓冲区范围会叠加三次也就是能达到0.9,第二层0.6,第三层也就是最外层为0.3,这样我们就实现了多环的效果。所以在设置透明度时,我们可以通过

    Color.argb(Math.round(255 / rank), 255, 0, 0)

      实现,其中rank为环数。

      忘得差不多了,还是打开代码瞅了一眼,当时封装了一个buffer工具类,下面这段是等距多环缓冲区分析,供参考,其余的自己写吧

    public static void buffer(GraphicsOverlay mTempGraphicsOverlay, List<Geometry> geometryList, int rank, Double distance) {
    List<Double> distanceIterable = new ArrayList<>();
    for (int i = 0; i < rank+1; i++) {
    distanceIterable.add(distance * i);
    List<Polygon> polygonList = GeometryEngine.buffer(geometryList, distanceIterable, true);
    for (Polygon polygon : polygonList) {
    mTempGraphicsOverlay.getGraphics().add(new Graphic(polygon, SymbolStyle.getBufferSymbol(Color.argb(Math.round(255 / rank), 255, 0, 0))));
    }
    distanceIterable.clear();
    }
    }

      核心写完了,基本能实现了,细节突然又不想写了,后面再补充吧,打游戏去了。

    本文来自博客园,作者:季夏啸华,转载请注明原文链接:https://www.cnblogs.com/jiang2020/p/15754272.html

  • 相关阅读:
    java语法基础(总结)
    ZookeeperclientAPI之创建会话(六)
    对A轮的追逐变得越加狂热,当前距离互联网泡沫到底有多近?
    Java集合(一):Java集合概述
    深入了解Cookie(1)------selenium2进行Cookie操作的前奏
    Cocos2d-X开发中国象棋《九》走棋规则
    java中request,application,session三个域及参数简单示例
    在多浏览器使用JS复制内容到剪切板,无需插件
    初学structs2,结果类型简单示例
    使用servletAPI三种方式简单示例
  • 原文地址:https://www.cnblogs.com/jiang2020/p/15754272.html
Copyright © 2011-2022 走看看