如何将我的CAD(DWG)文件转换为GeoJSON?

12
我正在使用OpenLayers,并且需要将DWG文件转换为GeoJSON格式。 我应该如何做呢?
4个回答

17

的确,GDAL具备完成此任务所需的工具。ogr2ogr是GDAL中包含的一个程序,可以转换各种格式,包括DWG格式。如果您尚未安装GDAL,则可以参考WindowsMac/Linux的教程进行安装。以下指南建议先将文件转换为DXF格式,因为GDAL默认已经包含了从DXF格式转换的库。如果要直接从DWG格式转换,您需要安装一些额外的依赖项。如果首先将其转换为DXF格式,然后可以使用命令行将其转换为GeoJson格式:

ogr2ogr -f GeoJSON ./mynewfile.geojson ./mycadfile.dxf

如果您正在使用ArcGIS Desktop,可以使用CAD到地理数据库工具

非常感谢。太好了。我在安装GDAL时遇到了问题,我正在按照您说的做,等我解决了会告诉您发生了什么。 - Mahdi Nazari
安装GDAL时出现问题,我已经在我的系统(Windows)和Python 2.7上安装了GDAL。之后,我在高级设置中定义了变量,但是当我在命令提示符中键入“gdalinfo-version”时,似乎它没有安装。我正在尝试其他方法,如果您知道问题所在,请告诉我。谢谢。 - Mahdi Nazari
我在AutoCAD和这个网站上找到了如何实现的方法。首先,我从AutoCAD中获取.dgn导出文件,然后使用上述网站将其转换为geoJSON格式,并在我的地图中与openlayers一起使用。 - Mahdi Nazari
但我想制作一个在线网页来进行这种转换,我该怎么做? - Mahdi Nazari

5

即使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用户

对于Windows用户,您可以从GitHub下载最新版本的发布 (win32.zip或win64.zip),其中包含dwgread.exe文件。

然后,您可以在已下载的文件夹位置打开终端并运行命令:dwgread.exe "D:\path\to\file.dwg" -O GeoJSON -o "D:\path\to\output.json"


对于Windows用户,您可以从GitHub下载最新版本,其中包含dwgread.exe文件。然后,您可以在下载的文件夹位置打开终端并运行命令dwgread.exe "D:\path\to\file.dwg" -O GeoJSON -o "D:\path\to\output.json" - Gangula
@Gangula:非常好的观点,谢谢!如果你愿意,你可以编辑我的回答并将这个观点加入其中... - jossefaz

1

GDAL 可以用来做这件事,我想说 ogr2ogr 也可以,但不是百分之百确定。


gdal/ogr2ogr将DWG转换为GeoJSON以供OpenLayers/ArcGIS使用。很抱歉,我不知道任何ArcGIS或OpenLayers特定的转换器。 - albert
我认为我已经得到了答案,但是出现了问题。我应该从AutoCAD或Civil 3D获取坐标并导入到ArcGIS中,但这仅适用于点。我需要将多边形的格式更改为JSON。 - Mahdi Nazari
你能帮我使用GDAL吗?我是个初学者,对GDAL一无所知。我懂JavaScript、OpenLayers,甚至需要学习ArcGIS。 - Mahdi Nazari
我猜你的意思是它可以是任何文件。如果是这样,请给我一个。我身边没有任何文件。 - albert
也许将来我会制作一个网络应用程序,可以将ESRI或DWG互相导出,而且不依赖于特定的文件。 - Mahdi Nazari
显示剩余7条评论

-1

如果您需要将AutoCAD的坐标(如果是米单位)与geojson(GPS坐标)匹配,这是可能的。

  • 第一步:使用Lambert 93选择您想要的世界区域。
  • 第二步:使用3个点来聚焦于仿射变换,以适应AutoCAD几何图形(旋转、平移、缩放)。

您可以查看此文档: https://github.com/open-indoor/openindoor6/blob/main/AUTOCAD.md

此外,DWG转DXF的解决方案(ODAFileConverter在无人值守的Docker中): https://github.com/open-indoor/dwg-to-dxf


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接