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

测绘坐标数据封装处理

1、测绘数据

2、数据处理

public void dealData() {

List<Map<String, Object>> shyqzdMapList = 截图数据;
                Map<String, List<Map<String, Object>>> groupMap = shyqzdMapList.stream().collect(Collectors.groupingBy(item -> String.valueOf(item.get("mbsxh"))));
                String geojson = "";//上传的geojson文件
                if (groupMap.size() == 1) { //只有一个面
                    List<Map<String, Object>> polygonList = shyqzdMapList.stream().sorted(Comparator.comparing(item -> String.valueOf(item.get("xh")))).collect(Collectors.toList());
                    List<Coordinate> coordinateList = new ArrayList<>(polygonList.size());
                    for (int i = 1; i < polygonList.size(); i++) {
                        double x = Double.valueOf(String.valueOf(polygonList.get(i).get("x")));
                        double y = Double.valueOf(String.valueOf(polygonList.get(i).get("y")));
                        Coordinate coordinate = new Coordinate(x, y);
                        coordinateList.add(coordinate);
                    }
                    double xEnd = Double.valueOf(String.valueOf(polygonList.get(0).get("x")));
                    double yEnd = Double.valueOf(String.valueOf(polygonList.get(0).get("y")));
                    coordinateList.add(coordinateList.size(), new Coordinate(xEnd, yEnd));
                    Coordinate[] coordinates = coordinateList.toArray(new Coordinate[coordinateList.size()]);

                    GeometryFactory gf = new GeometryFactory();
                    Polygon polygon = gf.createPolygon(coordinates);
                    geojson = GeometryParser.geometry2Geojson(polygon);
                    log.info("单面;{}", geojson);
                } else { //多面
                    List<Polygon> polygons = new ArrayList<>();
                    for (Map.Entry<String, List<Map<String, Object>>> entry : groupMap.entrySet()) {
                        List<Map<String, Object>> polygonList = entry.getValue().stream().sorted(Comparator.comparing(item -> String.valueOf(item.get("xh")))).collect(Collectors.toList());
                        List<Coordinate> coordinateList = new ArrayList<>(polygonList.size());
                        for (int i = 1; i < polygonList.size(); i++) {
                            double x = Double.valueOf(String.valueOf(polygonList.get(i).get("x")));
                            double y = Double.valueOf(String.valueOf(polygonList.get(i).get("y")));
                            Coordinate coordinate = new Coordinate(x, y);
                            coordinateList.add(coordinate);
                        }
                        double xEnd = Double.valueOf(String.valueOf(polygonList.get(0).get("x")));
                        double yEnd = Double.valueOf(String.valueOf(polygonList.get(0).get("y")));
                        coordinateList.add(coordinateList.size(), new Coordinate(xEnd, yEnd));
                        Coordinate[] coordinates = coordinateList.toArray(new Coordinate[coordinateList.size()]);

                        GeometryFactory gf = new GeometryFactory();
                        Polygon polygon = gf.createPolygon(coordinates);
                        polygons.add(polygon);
                    }
                    Polygon[] polygonArr = polygons.toArray(new Polygon[polygons.size()]);
                    Geometry geometry = new MultiPolygon(polygonArr, JTSFactoryFinder.getGeometryFactory());
                    geojson = GeometryParser.geometry2Geojson(geometry);
                    log.info("多面;{}", geojson);



}


http://www.kler.cn/a/416582.html

相关文章:

  • jquery-picture-cut 任意文件上传(CVE-2018-9208)
  • 宇信科技JAVA笔试(2024-11-26日 全部AK)
  • 【算法day3】链表:增删改查及其应用
  • MySQL数据库表的操作
  • MySQL更新JSON字段key:value形式
  • Flink解决延迟数据问题
  • PostgreSQL 中Identity Columns生成一个唯一的标识符
  • Grafana插件安装并接入zabbix数据源
  • 速盾高防cdn支持移动端独立缓存
  • 基于 LlamaFactory 的 LoRA 微调模型支持 vllm 批量推理的实现
  • Go语言技巧:快速统一字符串中的换行符,解决跨平台问题
  • T507 buildroot linux4.9之RTC8563开发调试
  • SQLModel与FastAPI结合:构建用户增删改查接口
  • 海盗王用golang重写的AccountServer功能
  • Facebook Audience Network优化指南
  • 学习笔记042——如何通过IDEA中自带的数据库组件导出MySQL数据
  • Jmeter测试工具的安装和使用,mac版本,jmeter版本5.2.1
  • 《向量数据库指南》——稀疏激活:解锁大数据处理新纪元
  • 【游戏引擎之路】登神长阶(十五)——DirectX12龙书:行百里者半九十(学习阶段完结)
  • 介绍一下atoi(arr);(c基础)