欢迎懂MapX的dfw一起来参与讨论MapX的投影和坐标系问题。(100分)

  • 主题发起人 主题发起人 delphilai
  • 开始时间 开始时间
D

delphilai

Unregistered / Unconfirmed
GUEST, unregistred user!
MAPX的投影和坐标系问题好像有点麻烦,经常别的地方瞎摸了半死,结果发现把坐标系改一下,
问题就搞定了。经纬度<==>非地球坐标系,但我不知道什么时候该转换,为什么要这样转换,
什么时候该使用经纬度坐标系,什么时候又该使用非地球坐标系,或者其他的,我每每都是发现这个
不行了就试试另外一个,一般情况下总是有一个可以的,呵呵,但我不知道这坐标系的原理,
无法灵活自如地根据实际情况选择投影和坐标系,来控制图层创建和坐标对象创建。
欢迎各位高手一起来探讨,愿结识各位MapX高手。Delphi6.0+MapX5.0En+Oracle8。
 
没人懂坐标系的原理吗?吕雪松, wtang斑竹能否指点一下?
 
呵,没用过MapX,不清楚它的坐标系统如何设置和调用,但从MapInfo的情况来看,它应该是
非常完整,并支持自定义坐标转换参数。你应该去找本《地图学》或《控制测量学》的书来看
看,一两句话说不清楚。反正就是建立从球面坐标到平面坐标的一种数值映射关系,你那样去
瞎碰肯定不是办法。

你好象不是学地理的吧?
 
用经纬度可以了.
GPS中,我负责短信,你可以与我GIS专业的同事聊
xkaiyan@hotmail.com


 
我搞定了
function GetCoordsys(MaxX,
MaxY,MinX, MinY :do
uble): CMapXCoordsys;
var
LCS : CMapXCoordsys;
rect : CMapXRectangle;
begin

Result :=nil;
try
rect:= CoRectangle.Create;
rect.Set_(MaxX,MaxY,MinX,MinY);
try
LCS := CreateOleObject('Mapx.Coordsys.5') as CMapXCoordsys;
LCS.Set_ (miNonEarth,Emptyparam,miUnitMeter,
Emptyparam,Emptyparam,Emptyparam,Emptyparam,
Emptyparam,Emptyparam,Emptyparam,Emptyparam,Emptyparam,rect,Emptyparam);
except

end;

except

end;

Result :=LCS;
end;


//设置图的投影和坐标边界
V_Csys:=GetCoordsys(G_MANX,G_MANY,G_MINX,G_MINY);
MapDelineation.NumericCoordSys :=V_Csys;

创建图层时不要设置投影了,创建完了更不要设置边界
 
接受答案了.
 
后退
顶部