我正在使用 OpenLayers,我需要将 DWG 文件转换为 GeoJSON 格式。 我该怎么做?
确实,GDAL 拥有完成此任务所需的工具。 ogr2ogr 是 GDAL 附带的一个程序,可以转换多种格式,包括 DWG。如果您尚未安装 GDAL,这里有针对 windows 和 mac/linux 的优秀教程。 以下指南建议首先转换为 DXF,因为 GDAL 默认包含用于从 DXF 转换的库。您将需要安装一些额外的依赖项才能直接从 DWG 进行转换。如果先转换为 DXF,则可以使用命令行转换为 GeoJson:
ogr2ogr -f GeoJSON ./mynewfile.geojson ./mycadfile.dxf
如果您使用的是 ArcGIS Desktop,则可以使用 CAD 到地理数据库工具。
即使 GDAL 是 DXF 文件(也是 CAD 文件)的良好且有效的解决方案
由于OOP询问DWG文件,我建议使用LibreDWG库,它支持从DWG到GeoJSON文件的转换,并且具有非常好的性能。
你可以像这样使用它:
dwgread <input_file_path> -O GeoJSON -o <output_file_path>
这个出色的库还提供了许多其他命令。 我目前还在开发一个开源项目Geofiles-convertor Rest API,这是一个 REST API,旨在使流行的地理文件格式转换更容易。 它也基于 GDAL 和 LibreDWG,并且有一个可以运行的 Docker 镜像。
对于 Windows 用户,您可以从 GitHub 下载最新版本(win32.zip 或 win64.zip),其中包含
dwgread.exe
文件。
然后您可以在下载的文件夹位置打开终端并运行命令
dwgread.exe "D:\path\to\file.dwg" -O GeoJSON -o "D:\path\to\output.json"
您可能还需要将 AutoCAD 中的坐标(如果以米为单位)与 geojson(GPS 坐标)相匹配。
您可以看看这个文档: https://github.com/open-indoor/openindoor6/blob/main/AUTOCAD.md
还有一个 DWG 转 DXF 的解决方案(无人值守 Docker 中的 ODAFileConverter): https://github.com/open-indoor/dwg-to-dxf