常见问题
关于乱码
乱码主要出现在 SHP
格式中,这种文件格式比较古早,字段名长度最多只能有 10 个字节,字节≠字数,这涉及编码问题,我们常用的编码有两种:UTF-8
和 GBK
UTF-8
:一个英文字母占 1 字节,一个汉字占 3 字节,这意味着该编码下的字段名最多 3 个汉字。GBK
(CP936):英文字母占 1 字节,汉字占 2 字节,这就可以让字段名支持最多 5 个汉字。
看起来是 GBK
更有优势,但实际上 UTF8
有更好的兼容性,几乎不会出现乱码,如果对字段名中文长度没有特别要求,建议采取 UTF8
编码 ,这也是导出SHP的默认设置。
如果 GBK
导出的 SHP
加载到 ArcGIS
中出现乱码,这可能并不是数据有问题,而是软件原因,ArcGIS 10.2
及以上的版本中汉字经常乱码,可尝试按照下面的方式处理(以 ArcGIS 10.2.1
为例):
下载官方补丁并安装: ArcGIS-1021-DT-SSDCP-Patch.msp;
新建一个
bat
文件,如:ChangeCodePage.bat,粘贴下面的代码并保存;@ECHO OFF IF "%1"=="" GOTO :EOF reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.2\Common\CodePage /v dbfDefault /t REG_SZ /d 936 /f
以管理员权限执行上面的文件。
注意,针对不同版本的ArcGIS ,需要修改
..\Desktop10.2
到匹配的版本。
关于打印
大影像、在线地图以及字段标注是动态绘制的,不支持打印,想要打印可参考下面的方法:
大影像:通过光栅图像加载即可打印。
- 影像格式不受支持的,可先导出为支持的格式
- 影像太大光栅图像无法加载的,可通过裁剪工具裁剪后再加载
在线地图:直接下载,之后处理方式同大影像
字段标注:标注转为注记即可
注意
在线地图下载并非级别越高越好,注意根据应用场景判别。实际情况是国内几乎没有超过18级的在线地图,即使显示提示是20级,也只是18或更低级别的影像重采样到20级的,实际分辨率并没有提升,没必要去追求高级别,这点注意甄别。
关于TIFF
TIFF(TIF)
是一种常见的图像文件格式,它可以存储多个图像和元数据,CAD
的光栅图像也支持插入 TIF
图像,但在实际使用过程中会发现一些 TIF
并不能插入 CAD
中,提示如下:
出现这种情况,除却文件损坏等原因,很有可能是该图像不是传统的 TIF
图像,而是 BigTIFF
,在此简单说明几个概念:
格式 | 说明 |
---|---|
TIFF | 传统的图像文件格式,TIF 格式可以存储32位深度的图像文件,但是文件大小不能超过4GB。(CAD支持) |
BigTIFF | 为打破 TIF 的4GB大小限制而生,使用了64位的地址空间,允许文件大小超过4GB。(CAD不支持) |
GeoTIFF | 一种特殊的 TIF 文件格式,它无需坐标文件 tfw ,自身即包含了地理参考信息,使得GIS 软件能够更容易地识别图像的地理位置和坐标系。(CAD不一定支持,具体取决于文件是否是BigTIFF ) |
由于上述格式的后缀名都是 tif
或 tiff
,无法简单通过后缀判别,若出现无法光栅图像无法加载的情况,可尝试通过以下方法解决:
- 通过
gimg
加载图像; - 若图像小于4GB,直接导出为
TIFF
; - 若图像大于4GB,通过裁剪将其分割,导出为多个
TIFF
; - 将导出的结果通过光栅图像加载。
关于投影
关于投影的问题比较多,在此简单甄别几个概念:定义投影
、投影
和动态投影
首先明确,不管是什么格式的空间矢量数据,都会以保存坐标值,这是进行投影的基础
定义投影:更新用于标识当前坐标系的元数据,数据坐标值不发生改变;
定义投影(Define Projection)适用于数据空间位置准确、坐标系明确,只是缺乏空间参考(投影信息)的情况,相当于是给数据添加一个标签,让GIS软件知道数据是哪种投影。
投影:将数据从一种坐标系投影到另一种坐标系,数据坐标值发生改变;
投影(Project)或者说投影变换,适用于将一种坐标转换成另一种坐标,进行投影变换往往需要相应的转换参数,同椭球体下转换不需要参数。
动态投影:将不同坐标系的数据投影到同一个坐标系下显示,而数据坐标值不改变,该过程一般是自动进行,无需用户操作。
以
ArcMap
举例,当数据框定义了坐标系时,该数据框下所有数据会被动态的投影到该坐标系下,参考以下步骤观察其变化:- 新打开一个文档,在未添加数据时,其数据框是没有坐标系的;
- 向数据框添加一个图层,如果该图层定义了坐标系,则ArcGIS会默认以该坐标系作为数据框坐标系;
- 继续向数据框添加图层,如果新图层坐标系和数据框坐标系不一致,ArcGIS会尝试将新图层动态投影到数据框坐标系上,但该数据的坐标值并未改变,这就是动态投影的作用。
可见,只有投影(投影变换)可以实际上改变数据的坐标值,回到CAD中:
定义投影:也就是插件功能中的设置空间参考,并不会改变数据坐标值。
动态投影:CAD原生不支持,这导致不同的投影下的数据,在CAD中无法套合,软件支持在导入数据时自动进行投影转换。
自动进行投影转换的前提是设置了全局投影,具体参见
空间分析 > 全局空间参考
。投影变换:参见
空间分析 > 坐标转换 > 投影转换
。
投影跨带
国内常用 CGCS2000
的3度带投影,但很多时候我们数据是跨带的,并不完全在同一个投影带内,在线地图动态定义投影后,将只显示所定义投影带范围内的地图,这就导致超出该投影带的部分地图没显示,想要将数据和地图完全套合并显示,可参考以下操作:
将数据转换到能完全覆盖它的投影带上,在此以跨越37度和38度带的数据,通过ArcGIS
操作举例:
ArcGIS中 加载数据后,
数据框(图层)右键 > 属性 > 坐标系 > 定义37.5度的中央经线
可直接在37或38度的投影基础上修改,注意上图红色部分是修改过的值
将数据框坐标系定义到上述投影后,导出图层,注意勾选数据框的坐标系
这一步的目的是对数据进行投影变换,也可通过其他方式实现,在此不予赘述
将导出的数据加载到CAD中,此时数据的坐标系就是我们刚刚定义的 37.5
在线地图投影选自定义,如下设置即可:
这样,就将数据和地图都定义到了一个能完整显示的投影带,二者可完全套合。
提示
- 如果只是浏览数据,也可将投影定义为全球有效的地理坐标系,如
WGS84
,自然不存在跨带问题。 - 投影变换还有一种更简单的方式,就是在CAD中将数据框(图层)的投影定义为需要的值,再加载数据,会提示执行投影变换,具体参见:
空间分析 > 空间参考
DPI
软件在启用了 Windows 缩放后,可能出现文字模糊、布局压盖、混乱等问题,这里做一个简单说明:
首先是设置缩放的方法(Win10):
桌面右键
>显示设置
>缩放和布局
>更改文本、应用等项目的大小
下方还有个
高级缩放设置
,打开后有个选项:允许Windows尝试修复应用,使其不模糊
开启缩放后,就可能出现文字模糊、布局压盖、混乱等问题,同时模糊修复也会对软件产生影响:
开启模糊修复 | 关闭模糊修复 | |
---|---|---|
文字 | 文字被缩放,清晰 | 文字被缩放,模糊 |
图标 | 图标维持原状,清晰 | 图标被缩放,模糊 |
布局 | 布局和文字缩放比例不均,相互压盖、布局混乱 | 整个软件被同步缩放,布局正常 |
可见在设置了缩放后,要么是字体清晰但界面混乱,要么是界面正确但是模糊,目前来说二者不可调和,按自己需要取舍即可。
除去在 Windows 中的全局设置,也可以单独设置CAD软件的缩放行为:
acad.exe
>属性
>兼容性
>更改高DPI设置
这儿有两个设置:
程序DPI
和高DPI缩放替代
- 程序DPI:勾选后能确保布局正常
- 高DPI缩放替代:勾选后能确保清晰
- 程序DPI和高DPI同时勾选:将忽略系统设置的缩放,维持原始的高清状态
上面的测试均基于 AutoCAD2024
,不同版本可能略有出入。你可以在上述设置中自由组合,找出最适合自己的,如果有更好的方案,欢迎提出建议。