免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 3853|回复: 6
收起左侧

[二次开发] MGT6靠近线(新)功能的精度

[复制链接]

5

主题

1876

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
152
发表于 2020-9-14 17:32 | 显示全部楼层 |阅读模式
本帖最后由 M龙三 于 2020-9-14 18:23 编辑

MGT6靠近线(新)功能的精度
龙三(2020.9.14
MGT6靠近线(新)功能为自行开发功能,在此以原版mapgis6.7的靠近线功能为标准,验证其精度。
验证步骤:
一、运行原版Mapgis6.7的靠近线,测量靠近线后的延伸线头的坐标。
二、然后,以同一线文件同一靠近线,运行MGT6的靠近线(新)功能,再测量延伸线头的坐标。
三、对比两组线头坐标值。
      由于原版Mapgis6.7未提供坐标测量工具,在此将使用MGT6的几何量算器作为坐标测量工具。MGT6的几何量算器能精确到小数点后15位。既然作为测量工具,首先要保证测量工具的精确性,就像一把尺子,首先要保证它的刻度是准确的。用什么作为测量工具的标准呢?用原版Mapgis6.7测量的坐标数据:虽然Mapgis6.7没有直接的坐标测量工具,但它的“文件转换”模块“输出”菜单中有一个线坐标双精度导出功能——“输出线E00(双精度)”,为明码文件。以下以C:\Mapgis67\sample\Ku6_1.wl为数据源,取其中的部分线(蓝框内四条红线)作为例子进行验证,蓝框内三条红线另存为“原版.wl”。并复制一个并改名为“M6.wl”,将分别用于原版Mapgis6.7的靠近线和MGT6的靠近线(新)的验证。

image001.png
image004.jpg

MGT6靠近线精度验证.rar

1.6 MB, 下载次数: 67

doc文件

5

主题

1876

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
152
 楼主| 发表于 2020-9-14 17:32 | 显示全部楼层
本帖最后由 M龙三 于 2020-9-14 18:25 编辑

1、启动原版Mapgis6.7“文件转换”模块,“文件”菜单“装入线”打开“原版.wl”。运行“输出”菜单的“输出线E00(双精度)”功能,输出“原版.wl”的线坐标,存为“原版.E00”,在txt编辑器中打开“原版.E00”,四条线的坐标如下。

原版.E00

原版.E00
回复 支持 反对

使用道具 举报

5

主题

1876

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
152
 楼主| 发表于 2020-9-14 17:32 | 显示全部楼层
本帖最后由 M龙三 于 2020-9-14 18:27 编辑

2、启动MGT6,打开“原版.wl”。运行“几何量算”功能,选中全部四条线,显示其折点坐标并存为xls表格。
image008.jpg
回复 支持 反对

使用道具 举报

5

主题

1876

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
152
 楼主| 发表于 2020-9-14 17:32 | 显示全部楼层
本帖最后由 M龙三 于 2020-9-14 18:29 编辑

3、将两组坐标拷贝进excel中进行对比:
image010.jpg
image012.jpg
回复 支持 反对

使用道具 举报

5

主题

1876

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
152
 楼主| 发表于 2020-9-14 17:32 | 显示全部楼层
本帖最后由 M龙三 于 2020-9-14 18:51 编辑

对比结果两组坐标是相同的,即MGT6几何量算器正确反映点线面的坐标。
也许有人会发现:个别数据小数点后第十三位存在误差!
这里要解释一下:Mapgis目前点线面的坐标数据类型为双精度浮点数(double)。双精度浮点数(double)是计算机使用的一种数据类型,使用64位(8字节)来存储一个浮点数,双精度有15位十进制有效数字。如213.644653320313000和213.644653320312000,其有效位为213.644653320313和213.644653320312,最后一位为计算机四舍五入的结果。如下图的误差计算213.644653320312000-213.644653320313000=-0.000000000001才正确,但Excel的误差计算结果为-0.000000000000512,原因就是超出了双精度浮点数(double)的表示范围。
image014.jpg
回复 支持 反对

使用道具 举报

5

主题

1876

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
152
 楼主| 发表于 2020-9-14 17:32 | 显示全部楼层
本帖最后由 M龙三 于 2020-9-14 18:35 编辑

接下来,验证MGT6靠近线(新)的精度:
一、    在Mapgis6.7中打开“原版.wl”。运行“线编辑”菜单的“延长缩短线”的“靠近线”。靠近左边三条线并保存。
image016.jpg
image018.jpg
回复 支持 反对

使用道具 举报

5

主题

1876

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
152
 楼主| 发表于 2020-9-14 17:32 | 显示全部楼层
本帖最后由 M龙三 于 2020-9-14 18:39 编辑

二、 MGT6中打开“M6.wl”。运行MGT6的靠近线(新)功能。靠近左边三条线并保存。


image020.jpg
image022.jpg
回复 支持 反对

使用道具 举报

5

主题

1876

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
152
 楼主| 发表于 2020-9-14 17:32 | 显示全部楼层
本帖最后由 M龙三 于 2020-9-14 18:43 编辑

三、用MGT6几何量算分别测量“原版.wl”和“M6.wl”的延伸线头坐标:

image024.jpg
image026.jpg
回复 支持 反对

使用道具 举报

5

主题

1876

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
152
 楼主| 发表于 2020-9-14 17:32 | 显示全部楼层
本帖最后由 M龙三 于 2020-9-14 18:46 编辑

坐标对比:
结果:误差为0,“原版.wl”和“M6.wl”的延伸线头坐标一致
通过上述验证:MGT6靠近线(新)功能与原版靠近线功能的精度一致
image028.jpg
回复 支持 反对

使用道具 举报

5

主题

1876

铜板

7

好友

助理工程师

Rank: 5Rank: 5

积分
152
 楼主| 发表于 2020-9-14 17:33 | 显示全部楼层
本帖最后由 M龙三 于 2020-9-14 18:47 编辑

验证完毕!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表