关于已知一个点的经纬度,将其放置地图上的问题(MO使用MAPGIS转换过来的SHP)

onthebottom 2008-07-26 09:04:42
已知一个点的经纬度,不知怎么把它放在地图上,比方说116度23分和39度54分,在MO里给一个PointClass.X和Y赋值后,用TrackingLayer.AddEvent(pt,0)可以放上去,但是位置不对,这个点应该出现在北京区域,可是却出现在了左下角,北京的点我用MouseDownEvent设断点看X,Y不是116和39,而是169\74,我在MAPGIS里看单位是毫米,我想是不是坐标系的问题,用ArcView查看那个SHP文件也一样,ARCVIEW里显示北京的XY也是169/74,我在代码里也转换过坐标,比如
GeoCoordSys test = new GeoCoordSys();
test.Type = GeographicCoordSysConstants.moGeoCS_Beijing1954 ;
axMap1.CoordinateSystem=test;
可是还是不行,我是一个新手,现在实在不知道是怎么回事了,请各位路过的朋友帮帮忙。
谢谢!
...全文
666 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
onthebottom 2008-07-29
  • 打赏
  • 举报
回复
补充一下,不知跟比例尺是否有关系?
onthebottom 2008-07-29
  • 打赏
  • 举报
回复
谢谢Camper_beijing的回答,我还是不太理解,能否说的详细一些,就是说我的地图文件的坐标系是北京54/克拉索夫,这种情况下直接输入某个点的经纬度坐标应该是不能准确定位的吧,那么现在如果我想把这个点定位到地图上的话,我是需要做哪些工作呢,是把我的地图坐标系转换到经纬度对应的坐标系,还是根据经纬度坐标转换得出地图上的相应单位,如毫米,这样定位呢?
因为我看网上一些介绍,GPS得到的经纬度还要通过公式、误差、测绘部门的数据这些换算得到北京54的对应值,是有这么麻烦吗?
还有就是我给地图转换坐标系的代码,是针对每个图层写lyr.CoordinateSystem=test还是写Mapobject这个控件axMap1.CoordinateSystem=test就行。
谢谢!
onthebottom 2008-07-29
  • 打赏
  • 举报
回复
guokeafl的问题我到是知道,你响应map控件的mousemove事件,然后根据e.x和e.y用axMap1.ToMapPoint(e.x,e.y)的方法可以得到实际的值,但是前提应该也是我这里问的问题->要有正确的坐标系。
guokeafl 2008-07-29
  • 打赏
  • 举报
回复
我更是一个新手,很关注你的问题,不过我还想知道当鼠标经过地图的时候如何得到该点的经纬度.谢谢
温飞_会员 2008-07-27
  • 打赏
  • 举报
回复
肯定是坐标系的问题。这个问题我刚开始学用GIS的时候碰过。

116度23分和39度54分 最好是WGS1984地理坐标系。84世界坐标系
你用的test.Type = GeographicCoordSysConstants.moGeoCS_Beijing1954 ;是我国的54投影后的平面坐标系。

你要补充点 地图投影的知识。我的CSDN下载空间有这方面的资料。你可以下载

2,158

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧