• 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

  • 相关阅读:
    POJ1741 Tree(树分治)
    codeforces713D Animals and Puzzle(二维倍增)
    codeforces713C Sonya and Problem Wihtout a Legend(dp)
    codeforces724E Goods transportation(最小割——dp)
    codeforces710E Generate a String(dp)
    codeforces Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) 题解(A-D)
    BNUOJ52317 As Easy As Possible(树上倍增)
    hihocoder1386 Pick Your Players(dp)
    常用函数
    vector总结(更新中。。。)
  • 原文地址:https://www.cnblogs.com/jiang2020/p/15754272.html
Copyright © 2020-2023  润新知