专栏首页听雨堂从MapX到MapXtreme2004[11]-坐标概论

从MapX到MapXtreme2004[11]-坐标概论

        坐标的问题是Mapxtreme中最郁闷的问题,前几天在这上面耗了很多时间,没有搞定,今天又是不得不钻研,还好,小有心得。         1、分类:                 1)图层的坐标:或者说图元的坐标,只能通过ftr.Geometry.CoordSys来获得坐标系的信息(通过图层无法获得坐标系的信息,我试过很多次反正没成功。有时不得不采用一个笨办法,先查出一个图元,再通过该图元访问坐标系)。我碰到的大多是横轴墨卡托(也许跟从MapGis转换过来有关),单位是米(通过CoordSys.units获得)。因而,通过ftr.Geometry取得的坐标,都是这个坐标系下的。                 2)图的显示坐标:我理解这是整体的坐标系(我用的是GeoSet),因为我一般都事先设成经纬度,而它们也都是经纬度。访问方法:Map.GetDisplayCoordSys()。单位degree。                 显示坐标和图元坐标之间的转换,通过CoordinateTransform来完成。代码示例:

    CoordinateTransform dtf=new CoordinateTransform(ftr.Geometry.CoordSys,MapControl1.Map.GetDisplayCoordSys());
    DPoint dp2=dtf.CoordSys1ToCoordSys2(ftr.Geometry.Centroid);

               上面是从图元坐标(米为单位)向显示坐标转换(度为单位)。                 3)屏幕坐标:象素为单位的屏幕坐标,不用多说,但问题也很多,最突出的就是转换。可以通过Map.DisplayTransform.ToDisplayFromDisplay来进行。但是必须注意,DPoint坐标(显示坐标)必须是显示坐标,不能是图元坐标。上次吃亏就在这儿,每次都是把ftr.Geometry.centrelid去转换,转出来全是溢出值!                 CoordSys本身有几个静态的转换函数,但似乎都没啥用处,只能换算一下公制英制之类的。         2、其它的结论                 1)同一组地图中的不同图层,其中的图元坐标基本相同。(经过取点,转换成显示坐标,再转换成另一层坐标,误差仅为0.01m级别)                 太多了,坐标转换,长度计算,查询...                                 咳,每个字得来都太不容易了!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 增加图元

            以前增加图元,总是用复制图元的方式,受的限制较大。今天试着用创建的方式来增加,效果还行,需要注意: 用datasets太麻烦 用key...

    用户1075292
  • 地理坐标系与投影坐标系的区别

    1、首先理解地理坐标系(Geographic coordinate system),Geographic coordinate system直译为 地理坐标...

    用户1075292
  • 北京54坐标到西安80坐标转换小结

    1、北京54和西安80是两种不同的大地基准面,不同的参考椭球体,因而两种地图下,同一个点的坐标是不同的,无论是三度带六度带坐标还是经纬度坐标都是不同的。 2...

    用户1075292
  • 用C语言写贪吃蛇笔记-2

    神无月
  • ​OpenGL 学习系列---坐标系统

    在前面绘制基本图形中,遇到了很明显的问题,圆形不像圆形,正多边形不像正多边形?就像下面图形一样:

    glumes
  • 网页直播系统推流端和拉流端都有哪些环节?

    关于推流和拉流,我们最常说的就是RTMP和RTSP协议了,在我们视频直播点播系统EasyDSS中使用的就是RTMP和RTSP协议。作为流媒体行业的从业者,或者说...

    EasyNVR
  • 小技巧,把Markdown文本发布到微信公众号文章

    俺踏月色而来
  • Spring IOC 容器为什么不使用 Class.forName 加载类

    很多人看过 Spring 的源码,但是他们都是为了看源码而看!并没有读懂 Spring 的设计思想,也没有思考过为什么要这样设计!

    业余草
  • 谈谈桌面应用开发

    前几年最流行的应该是移动端应用开发,桌面应用开发是否已经是一份古老的职业。我们公司去年将移动端和PC端开发合并到一个技术通道,叫做客户端开发,我也逐渐承担起一些...

    congduan
  • DD驱动登陆 tim QQ TGP 脚本必懂

    cxt084

扫码关注云+社区

领取腾讯云代金券