sumo——相关地图文件格式转换

news/2024/12/16 16:33:10/文章来源:https://www.cnblogs.com/yu-si/p/18610471

netconvert xodr 转net.xml格式

使用 netconvert 命令转换
netconvert --opendrive-files caoyang.xodr -o caoyang.net.xml

使用工具类将caoyang.net.xml 转 caoyang.geojson

package com.ys.test.netxml_to_geojson;import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
import org.json.*;public class NetXmlToGeoJson {public static void main(String[] args) throws IOException {final String netFile = "D:\\A_tool\\sumo-win64-1.20.0\\A-file\\xodr-demo\\caoyang.net.xml";final String shpFile = "D:\\A_tool\\sumo-win64-1.20.0\\A-file\\xodr-demo\\caoyang.geojson";try {netxmlToGeojson(netFile, shpFile);System.out.println("Conversion completed successfully.");} catch (Exception e) {e.printStackTrace();}}public static void netxmlToGeojson(String netFile, String outputFile) throws Exception {// Parse the XML fileDocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document doc = builder.parse(new File(netFile));doc.getDocumentElement().normalize();// Initialize GeoJSON structureJSONArray featuresArray = new JSONArray();// Get all edgesNodeList edgeList = doc.getElementsByTagName("edge");for (int i = 0; i < edgeList.getLength(); i++) {Node edgeNode = edgeList.item(i);if (edgeNode.getNodeType() == Node.ELEMENT_NODE) {Element edge = (Element) edgeNode;// Extract coordinates from lanesJSONArray coordinates = new JSONArray();NodeList laneList = edge.getElementsByTagName("lane");for (int j = 0; j < laneList.getLength(); j++) {Node laneNode = laneList.item(j);if (laneNode.getNodeType() == Node.ELEMENT_NODE) {Element lane = (Element) laneNode;String shape = lane.getAttribute("shape");String[] points = shape.split(" ");for (String point : points) {String[] coords = point.split(",");double lon = Double.parseDouble(coords[0]);double lat = Double.parseDouble(coords[1]);coordinates.put(new JSONArray().put(lon).put(lat));}}}// Create feature objectJSONObject properties = new JSONObject().put("id", edge.getAttribute("id")).put("name", edge.getAttribute("name"));JSONObject geometry = new JSONObject().put("type", "LineString").put("coordinates", coordinates);JSONObject feature = new JSONObject().put("type", "Feature").put("geometry", geometry).put("properties", properties);featuresArray.put(feature);}}// Write to GeoJSON fileJSONObject geojson = new JSONObject().put("type", "FeatureCollection").put("features", featuresArray);try (FileWriter file = new FileWriter(outputFile)) {file.write(geojson.toString(4)); // Pretty print with indent of 4 spaces}}
}

OSGeo4W安装gdal库流程

参考:https://blog.csdn.net/brucehaoLee/article/details/140928493

ogr2ogr工具 .geojson转 .shp

ogr2ogr 是 GDAL(Geospatial Data Abstraction Library)的一部分,用于转换矢量地理空间数据格式。GDAL 是一个开源的库,提供了读写栅格和矢量地理空间数据格式的能力。ogr2ogr 专门处理矢量数据(如 Shapefile、GeoJSON、PostGIS 等),而 gdal_translate 和 gdalwarp 则主要用于栅格数据。
命令
ogr2ogr -f "ESRI Shapefile" output.shp caoyang.geojson

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/853831.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线性回归(linear regression)

其实线性回归不过就是在做两件事,画一条线并判断这条线到各个点的距离。 如下图:其中这条线便是距离各个点距离总和最小的直线。也就是e+u+w+b+a总和在直线为这个情况下最小。但是什么时候这条线是我们需要的线呢?-- 线到各个点最短的时候便是。 我们先理解一下什么是凹函数…

数据库安全性与权限管理

title: 数据库安全性与权限管理 date: 2024/12/16 updated: 2024/12/16 author: cmdragon excerpt: 数据库安全性与权限管理是保护数据不被未授权访问和操控的关键所在。通过实施有效的安全措施和细粒度的权限控制,可以确保数据库的完整性、机密性和可用性。 categories:前端…

数据整合+团队协作,电商选品效率提升100%!

选品快准狠!在线协同助力电商团队做出更聪明的决策 在电商行业,“选品”决定成败。无论是发现爆款、避开雷区,还是追踪最新趋势,每一个决策都离不开团队协作与信息整合。然而,大量的电商团队仍旧面临以下常见问题: - 决策过程拉长,错失销售机会。 - 数据不统一,选品思路…

xshell类似的工具,还有哪些Xshell类似的工具呢

Xshell是一款功能强大的远程连接工具,广泛用于SSH、Telnet和Rlogin协议,帮助用户轻松连接和管理远程服务器。然而,Xshell并不是唯一的远程连接工具,市面上还有其他一些类似的工具,能够提供类似甚至更丰富的功能。那么,除了Xshell,还有哪些类似的远程连接工具呢?以下将为…

SOA整车电子电气仿真测试解决方案

经纬恒润TESTBASE 硬件在环(HIL)仿真测试平台可以为SOA电子电气系统提供高效自动化测试的一站式解决方案,为SOA车型电子电气系统的测试验证提供有力保障。概述软件定义汽车时代,汽车电子软件的功能数量和复杂度与传统汽车相比有了爆炸式增长,并且还在不断提升。以中央+区域…

线程和进程

线程 什么是线程和进程? 何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进…

FastExcel 合并单元格(相当的行数据,进行合并)

目录需求思路实现Excel导出单元格全量合并策略日期格式转换接口代码ServiceDTO 使用FastExcel数据导出:官网: https://idev.cn/fastexcel/zh-CN 需求 信用代码、填报人,唯一时,将:信用代码、单位名称、填报人,进行 row 合并,并垂直居中对齐思路 这边不需要做列合并,所…

街面环卫算法视频分析服务器浅析智能视频监控在智慧城市的应用与趋向

在数字化浪潮的推动下,智慧城市的建设已成为全球范围内城市发展的重要趋势。智慧城市不仅仅是技术的集合,它更是一个系统工程,涉及到城市管理的各个方面,旨在通过高科技手段提升城市的运行效率和居民的生活质量。 其中,智能视频监控技术作为智慧城市建设的关键组成部分,正…

嘻嘻嘻嘻嘻测试下

凡你能说的,你说清楚。凡你不能说的,留给沉默!

算法网关视频分析网关无线视频监控技术如何以智能化手段提升抗干扰与数据安全效果

在当今这个信息化快速发展的时代,无线技术的应用已经渗透到我们生活的方方面面,尤其是在视频监控领域,无线传输技术正以其独特的优势,改变着传统的监控系统部署方式。本文将探讨无线视频监控业务的发展情况、面临的挑战以及如何通过技术手段提高系统的抗干扰能力和数据安全…

打破局限!如何在项目管理中运用鱼骨图分析法

一、鱼骨图分析法在项目管理中的重要性简述在项目管理的漫长旅程中,我们常常会遭遇到各种各样棘手的问题,这些问题就像隐藏在暗处的礁石,随时可能让项目的 “船只” 偏离航线,甚至搁浅。小到团队成员之间沟通不畅,导致工作衔接出现缝隙;大到项目进度严重延误,成本超出预…

使用wsimport命令生成webService客户端代码

wsimport 是 JDK 自带的一个工具,可以根据 WSDL 文件生成 Java 类。 1.进入JDK/bin目录,从地址栏进入cmd 2.执行如下命令:wsimport -keep -s D:\tmp -p com.cn.phone -verbose http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl-keep:是否生成java源文件 -s:指…