当前位置: 首页 > news >正文

住建部网站查询系统网络商务

住建部网站查询系统,网络商务,手机网站有哪些类型,东莞东城区准备#xff1a; 1、四个角点#xff08;四个点确定一个框#xff09; 2、想要细分程度 #xff08;这里说的是经纬度#xff0c;这里没有对经纬度做更细的区分#xff09; 如#xff1a;0.000001约等于0.1m#xff0c;0.00001约等于1m#xff0c;0.0001约等于10m 。。…准备 1、四个角点四个点确定一个框 2、想要细分程度 这里说的是经纬度这里没有对经纬度做更细的区分 如0.000001约等于0.1m0.00001约等于1m0.0001约等于10m 。。。 思路 1、四个角点的lon和lat分别放入lonList和latList中并排序从小到大 2、画一个最大框 左上角的点应当取 lonList的第三位 latList的第零位左下角的点应当取 lonList的第零位 latList的第零位右上角的点应当取 lonList的第三位 latList的第三位右下角的点应当取 lonList的第零位 latList的第三位上面做的就是画了一个极限包含我们需要点的矩形 3、以左下角为坐标系的中心根据unit分辨率向resList添加可能点 4、根据四个点确定的矩形来过滤resList的所有可能点得到我们真正框内的点集合过滤条件落在四个点的框内 ps我这里得到的四个点无法确认谁左谁右谁上谁下所以需要画最大框 演示图 1、我画了四个点 2、得到的最大框 3、过滤后的落点 此时你需要取随机点random一下list其实就可以了 demo public static void main(String[] args) {//1、构建四个角落点ListPoint points Lists.newArrayList(new Point(112.5743064, 26.8286825),new Point(112.5744284, 26.8283794),new Point(112.574591, 26.8284339),new Point(112.5745134, 26.8286289));//2、对角落点补点ListPoint theoryPoints getInPoints(points.get(0), points.get(1), points.get(2), points.get(3), 0.00002);//3、对落在四个角点构建框内的数据进行过滤注意四个角点需要按照顺时针或者逆时针的形式排列ListPoint inPoints theoryPoints.stream().filter(point - isPtInPoly(point.getLon(), point.getLat(), points)).collect(Collectors.toList());System.out.println(inPoints inPoints);}实体 Data NoArgsConstructor AllArgsConstructor public class Point {private double lon;//经度private double lat;//纬度private double alt;//高度public Point(double lon, double lat) {this.lon lon;this.lat lat;}}code 重置四边形获取四边形内所有点 /*** ** param leftOnPoint 四个角点可以不按照名称来因为方法会重新构建最大框* param leftDownPoint* param rightOnPoint* param rightDownPoint* param unit 分辨率* return*/public static ListPoint getInPoints(Point leftOnPoint, Point leftDownPoint, Point rightOnPoint, Point rightDownPoint, double unit) {//重组最符合逻辑的四边形区域ListDouble lonList new ArrayList();ListDouble latList new ArrayList();lonList.add(leftOnPoint.getLon());lonList.add(leftDownPoint.getLon());lonList.add(rightOnPoint.getLon());lonList.add(rightDownPoint.getLon());latList.add(leftDownPoint.getLat());latList.add(leftOnPoint.getLat());latList.add(rightDownPoint.getLat());latList.add(rightOnPoint.getLat());lonList.sort(Double::compareTo);latList.sort(Double::compareTo);Point leftOnPointRel new Point(lonList.get(lonList.size() - 1), latList.get(0));Point leftDownPointRel new Point(lonList.get(0), latList.get(0));Point rightOnPointRel new Point(lonList.get(lonList.size() - 1), latList.get(latList.size() - 1));Point rightDownPointRel new Point(lonList.get(0), latList.get(latList.size() - 1));ListPoint list new ArrayList();double lon leftDownPointRel.getLon();while (true) {double lat leftDownPointRel.getLat();while (true) {if (lat Math.max(rightDownPointRel.getLat(), rightOnPointRel.getLat())) {break;}list.add(new Point(lon, lat));lat unit;}if (lon Math.max(leftOnPointRel.getLon(), rightOnPointRel.getLon())) {break;}lon unit;}return list;}过滤方法 /*** 判断某一个经纬度点是否在一组经纬度范围内** param ALon A点经度* param ALat A点纬度* param ps 范围多边形经纬度集合* author Klay* date 2023/2/8 18:06*/public static boolean isPtInPoly(double ALon, double ALat, ListPoint ps) {if (CollectionUtils.isEmpty(ps)) {logger.warn(当前传入点集合为空);return false;}int iSum, iCount, iIndex;double dLon1 0, dLon2 0, dLat1 0, dLat2 0, dLon;if (ps.size() 3) {return false;}iSum 0;iCount ps.size();for (iIndex 0; iIndex iCount; iIndex) {if (iIndex iCount - 1) {dLon1 ps.get(iIndex).getLon();dLat1 ps.get(iIndex).getLat();dLon2 ps.get(0).getLon();dLat2 ps.get(0).getLat();} else {dLon1 ps.get(iIndex).getLon();dLat1 ps.get(iIndex).getLat();dLon2 ps.get(iIndex 1).getLon();dLat2 ps.get(iIndex 1).getLat();}// 以下语句判断A点是否在边的两端点的水平平行线之间在则可能有交点开始判断交点是否在左射线上if (((ALat dLat1) (ALat dLat2)) || ((ALat dLat2) (ALat dLat1))) {if (Math.abs(dLat1 - dLat2) 0) {//得到 A点向左射线与边的交点的x坐标dLon dLon1 - ((dLon1 - dLon2) * (dLat1 - ALat)) / (dLat1 - dLat2);// 如果交点在A点左侧说明是做射线与 边的交点则射线与边的全部交点数加一if (dLon ALon) {iSum;}}}}if ((iSum % 2) ! 0) {return true;}return false;}如有纰漏还望补充小子改正
http://wiki.neutronadmin.com/news/227201/

相关文章:

  • 课程资源网站开发解决方案做网站的标签什么意思
  • 温江建设局网站wordpress编辑器下载
  • 北京网站建设策划方案分类目录网站有哪些
  • 网站开发要phpnow超详细WordPress
  • 网站后台默认用户名阜阳学校网站建设
  • 网页设计与网站建设 pdf汽贸做网站有用处吗
  • 延安微网站建设网站推广视频的服务方案
  • 如何把网站放在主机上电商设计学什么
  • 鄂尔多斯建设局网站网站建设3合1什么意思
  • 做坑网站需要中山百度seo排名公司
  • 做游戏网站广西南宁网站建设排行榜
  • 淮南建设网站网页设计类网站
  • 唐山专业做网站网站建设分为几类
  • 制作网页的网站fa设计本质是什么
  • 厂西建设厅网站上海有哪些大型企业
  • 厦门住房建设局网站首页温州网页制作设计营销
  • 网站开发哪里安全潮州网站网站建设
  • 北京网站优化方法什么是网络整合营销
  • 深圳网站设计优异刻青岛app定制开发公司
  • 做p2p网站的主页模板网站优化的好处
  • 织梦示范网站网站域名类型
  • 做薪酬调查有哪些网站上海网站建站模板
  • 建站开发wordpress怎样设置留言板
  • 红包打赏的网站怎么做高端的定义
  • 汕头网站制作哪家好怎么做电商平台网站
  • 网站建设样本网站建设是什么软件
  • 阿里云服务器建站肇庆企业推广
  • 东道网站建设临沂建设局网站
  • 义务网网站建设方案注册私人网站
  • 苏州建设项目备案网站微信小程序工具类排行