博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gps点抽稀算法
阅读量:7207 次
发布时间:2019-06-29

本文共 1325 字,大约阅读时间需要 4 分钟。

  hot3.png

点抽稀算法

http://blog.csdn.net/cdl2008sky/article/details/8281316

对密集的点抽稀,保持点的均匀分布。

int dis=1000;  double degToMeter = Math.PI * 6378137 / 180.0;//6378137赤道半径,一度对应赤道上的一米  int buf = (int) (dis * 1.0e7 / degToMeter);//1公里对应多少度  List
 spector = new LinkedList
();  for (int kk = 0; kk < list.size(); kk++) {      Feature f = (Feature) list.get(kk).getData();      int x = (int) (f.getGeometry().getCoordinate().x * 1e7);      int y = (int) (f.getGeometry().getCoordinate().y * 1e7);      Pos cur = new Pos(x, y);      cur.setBuffer(buf);      if (spector.contains(cur)) {          fcdel.add(f);//删除点                } else {          spector.add(cur);          fc.add(f);//保留点      }  }  

 

public class Pos {      public int x;      public int y;        private int buf;        public Pos(int x, int y) {          this.x = x;          this.y = y;      }        public void setBuffer(int buf) {          this.buf = buf;      }        public boolean equals(Object pt) {          if (pt instanceof Pos)              return (Math.abs(this.x - ((Pos) pt).x) <= buf && Math.abs(this.y                      - ((Pos) pt).y) <= buf);          return false;      }        public int hashCode() {          return Integer.valueOf(x + "" + y);      }    }  

 

 

注意:重写equal方法。

转载于:https://my.oschina.net/huqiji/blog/1591565

你可能感兴趣的文章
关于质数(素数)
查看>>
[Android网络]如何接收UDP广播
查看>>
【运维】自动化运维工具Ansible实战
查看>>
几点思考
查看>>
LeetCode 406 Queue Reconstruction by Height
查看>>
算法参考资料
查看>>
【vue真的香】开始读源码
查看>>
学习前端到什么程度才能拿到一个高薪的工作?
查看>>
那些你不知道的markdown用法(让你的文章高大上)
查看>>
前端零基础 JS 教学 第五天 05 - 对象,构造函数,内置对象,基本数据类型和复杂类型...
查看>>
零基础学习Java有6大疑问,一一解答,包括初学者自学Java可以吗
查看>>
聊聊Java 9的Compact Strings
查看>>
Flex布局
查看>>
awk脚本语言编程指南
查看>>
微信小程序的优点
查看>>
合作 | 教育部: 滴滴出行产学合作协同育人项目公示
查看>>
剖解分布式架构的原理
查看>>
new 操作符到底做了什么?
查看>>
数组乱序
查看>>
算法练习--LeetCode--129. Sum Root to Leaf Numbers; Runtime: 8 ms100%
查看>>