乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 189|回复: 9

GetParameterAtPoint在获取Polyline两点间点集合时该如何使用?

[复制链接]

44

主题

185

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2015-4-23 14:44:00 | 显示全部楼层 |阅读模式
GetParameterAtPoint在获取Polyline两点间点集合时该如何使用?
不太清楚GetParameterAtPoint的返回值到底代表什么,好像是多段线上点的序号?
我是这样用的:
int X1 = int.Parse(Math.Floor(CBDK_PL.GetParameterAtPoint(CBDK_PL.GetClosestPointTo(NEpoint, false))).ToString());
int X2 = int.Parse(Math.Floor(CBDK_PL.GetParameterAtPoint(CBDK_PL.GetClosestPointTo(SEpoint, false))).ToString());
先找到多段线上与指定两点(NEpoint/SEpoint)最近的点,再GetParameterAtPoint()这两个点,但是GetParameterAtPoint()
返回的值有的会大于多段线端点数,这就让人不明白了..本来想GetParameterAtPoint()再取整后就能知道指定两点间多段线上
的各个节点序号然后按序号取得点集合坐标的
请大家指教,谢谢~~~
附:
X1      X2    多段线节点数
35***23---37
2***3---4
31***57---54     (这一行X2比节点数还大了)
25***16---37
16***32---45
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2015-4-23 15:38:00 | 显示全部楼层
pl应该是节点的个数,上面有问题的多段线有做过拟合或者什么?
回复

使用道具 举报

0

主题

275

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2015-4-23 15:42:00 | 显示全部楼层
pl 节点数用 NumberOfVertices
回复

使用道具 举报

44

主题

185

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2015-4-23 15:48:00 | 显示全部楼层

mapgis导出的线,有可能有这些情况,那解决的方向有哪些呢?请飞狐老师指教
我特纠结GetParameterAtPoint返回的double值到底是什么意义
回复

使用道具 举报

0

主题

275

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2015-4-23 15:50:00 | 显示全部楼层

对lwpolyline,整数部分是 由 0 起始的段数,小数部分是当前段长度的百分比
1.23  其中 1 表示 第一段,0.23 表示第一段总长度的 0.23 位置
回复

使用道具 举报

44

主题

185

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2015-4-23 15:55:00 | 显示全部楼层

刚得到ivide的提示,刚刚又测试了一次,自己画了一条PL,没经过拟合等任何处理,X1,X2的值合符逻辑了,多半是您提到的拟合等其它处理造成X1,X2有大于PL节点数的情况,但是该如何判断PL是否有拟合或其它处理呢?
回复

使用道具 举报

44

主题

185

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2015-4-23 15:56:00 | 显示全部楼层

刚刚有测试了下,自己画的PL不经过如何处理,X1,X2的值就明确合理了,但是出现大于节点数的情况真令人费解
回复

使用道具 举报

0

主题

275

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2015-4-23 15:59:00 | 显示全部楼层
拟合后就是 Polyline2d 了
回复

使用道具 举报

44

主题

185

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2015-4-23 16:00:00 | 显示全部楼层

以前依稀猜到是这个意义,就因为出现X1,X2大于节点数的情况误导人,看来我用的Math.Floor()也不够准确了
回复

使用道具 举报

44

主题

185

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2015-4-23 16:11:00 | 显示全部楼层

飞狐老师,我提到的多段线是通过另一条偏移Offset来的,出现X1,X2的值大于节点数还会缘于偏移对象受过拟合等处理吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-28 19:11 , Processed in 0.257062 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表