mapx的Distance的奇怪问题!

zangqi 2003-04-15 03:01:09
VB中
Dim ds As Double
ds = Map1.Distance(0, 0, 180, 0)
MsgBox "距离=" + Format$(ds, "#.###") + "公里"
DS的值为12436.792
在delphi中,
edit1.Text := floattostr(map1.Distance(0,0,180,0));
值为2.63659674624068E-308
为什么在delphi中算出的值是这样的?如何解决?
...全文
92 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zangqi 2003-04-17
  • 打赏
  • 举报
回复
可是有的人说,用Delphi6+mapx算出了Earth's Circumference: 24873.584977783 miles.
的正确结果......
jedy 2003-04-17
  • 打赏
  • 举报
回复
那就很明显,程序和图都没有问题,那么就是开发工具了。
jedy 2003-04-16
  • 打赏
  • 举报
回复
那你看看当前的地图长度单位是否一致(两个程序里的)
zangqi 2003-04-16
  • 打赏
  • 举报
回复
一致的,都是miUnitMile;
zangqi 2003-04-15
  • 打赏
  • 举报
回复
这里的(0,0,180,0) 我本来就指的是地图坐标呀,就是经纬度。算出的值应该是地球周长的一半。同样的地图,同样的函数,在VB和DELPHI中算出的结果为什么不一样?(delphi的明显有误E-308)
看了mapx的帮助里面关于Distance method (Map object)的delphi的例子
var
earthCircumference: Double;
tempCirc: string;
begin
Map1.MapUnit := miUnitMile;
earthCircumference := 2 * Map1.Distance(0, 0, 180, 0);
tempStr := FloatToStr(earthCircumference);
Application.MessageBox(PChar('Earth''s Circumference: ' +
tempCirc + ' miles.'),'Info',0);
end;
我试了还是不行!
jedy 2003-04-15
  • 打赏
  • 举报
回复
这是你的地图的坐标尺度有关系,你首先要将(0,0,180,0)转换成地图坐标,用
OBJECT.ConvertCoordV (ScreenX, ScreenY, MapX, MapY, Dir)

2,142

社区成员

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

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