问几个关于GIS方面的问题(50分)

  • 主题发起人 主题发起人 Liulang
  • 开始时间 开始时间
L

Liulang

Unregistered / Unconfirmed
GUEST, unregistred user!
大家怎么控制坐标越界呢? 就算我们选用64bit整数作为坐标系,当计算两个点之间的距离的时候,用公式"公号下X的平方加Y的平方"的话,也会有个平方的过程,当坐标很大的时候,很容易数就越界啦?
 
GIS的坐标一般采用Double型变量的,不会出现你说的情况
 
但是double计算效率不是很高啊,long和double相比,在加减乘下面,long的计算速度是double的30倍,除法持平,如果用long的话,速度应该会快很多的啊
 
首先你的类型来回转换,
还有,在GIS求距离可不是Sqrt(X*X+Y*Y)噢。
 
yousgxf大哥,距离公式怎么求的呢,我一直都是这样求的,哈哈,有什么关于这方面的资料推荐给我看吗?
 
求距离的公式跟你的地图投影方式有关,如果MapX,它自己有求距离的函数。
还有在GIS中的距离定义也很多的。

在Mapinfo网站有个gps的例子里(VB的)就有一个常见地图投影方式的求距离的公式。
 
我的是2维的,没有涉及到3维,不需要投影那些了吧?
 
呵呵,老兄,看样子你GIS的基础知识还需要努力。我说的投影是指地图坐标与平面坐标的投影。
 
这个知道,因为我们做的不是严格意义上的gis,所以那些东西都简化了,hoho
 
噢,既然是平面坐标,你求距离的方法当然就没问题喽。:)
 
我们公司是开发电信资源系统的。。用的Gis平台是Geomedia5.0,,,,现在我刚进入公司,,天天叫我做防Gemedia的部分功能。。。呵呵。。。不过核心还是不懂。。。
 
如果是平面直角坐标系的话,用勾股定理就行呀。再累加,很简单的。
 
理论上说,没一有种数值类型能保证不越界,因为就算是double类型,也有它所不能表达的数值范围。所以,一个GIS软件或系统的基础坐标系统的选择和定义就非常重要。如果你用54坐标系统,或某此地方坐标系,在离中心原点很远的地方,就会有很大的数值出现。所以很多坐标系统定义都有一个分带的概念。
我们的方法是采用WGS 84经纬度坐标系统,无论坐标如何转化,其核心数据的表达和计算都是基于360度以内的数值计算,然后再通过一定的84到54或84到80的转换,再显示或打印到界面上。
 
zxygraphics, 能把你的公式写一下吗?
 
接受答案了.
 
后退
顶部