我们先来看一下两个 MapBasic 语句。
Set Map XY Units unitname:该语句用来为当前地图窗口设置X,Y坐标单位。
Set Map CoordSys NonEarth Units unitname:该语句用来设定当前地图的投影方式。如果针对当前地图窗口执行了如下的一条语句:
Set Map XY Units "m" CoordSys NonEarth Units "m",
此时,如果你利用 "地图" > "选项" 来查看当前地图窗口的属性,你会发现当前地图窗口的坐标单位为“m”,投影方式为“Non-Earth(m)”。
所以如果用户在新建一个Non-Earth(Km)投影 Bounds (0,0)(100,100)的图层后,欲利用MapBasic语句向其中增加地图对象时,或是想通过程序从该地图上获取点的X,Y坐标信息,则一定要先利用
set map Window frontwindow() xy units "Km" coordsys NonEarth Units "mm" 或 Set Map XY Units "mm" Distance Units "mm" CoordSys NonEarth Units "mm"
来初置MapBasic的缺省坐标系统,否则会由于MapBasic的初置投影系统与用户地图窗口的投影系统不一致,而导致MapBasic程序的异常结果。对于其它投影方式也都应当进行同样的处理。