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
分类:
移动GIS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)