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();
}
}

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

posted @   季夏啸华  阅读(248)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示