地理系统里面,计算用到的数值跨度非常大时,是不是有一套特殊的坐标转化系统来处理数值问题的?(比如太空模拟这类)

2015-11-13 15:06:12 +08:00
 acros

在做一个和地理相关的程序,有两种视角:地图视角和第一人称视角。
目前在大地图上都是记录经纬度坐标,比如[120.123456,21.1233456],类似现在的地图 APP 上标志。
转到第一人称下时,所有物品坐标都以当前视角为原点,依据其经纬度重新计算位置,这个目前也没有问题,隐约觉得哪里没考虑周全。

看了下一个叫 SpaceEngine 的免费游戏(真不是广告,这个游戏是完全免费的,不开源),玩家可以在宇宙中穿梭,又可以下潜到一个星球表面,这个坐标数值跨度得有 10 的几十次方了吧,然而进出太空还是挺平滑的。像这种程序,如果要求玩家可以降落到星球表面(整个世界完全是 1 : 1 的),人物在表面走路移动的逻辑又要怎么实现呢?因为靠太空坐标系这种精度肯定是完全没法做到细微移动的。或者在一个空间中,随机取一个点作为原点,建立局部坐标系?

再换个例子,像洲际导弹,军事 GPS 定位精确到米以下的。导弹飞行范围有半个地球, GPS 是整个地球,在三维空间坐标系统下面,这个空间原点怎么取呢?以地球中心为原点吗?如果这样取按目前 C 语言内置 double 类型应该不够处理(要做区域划分?)。

唔,现在思考的还比较粗略,表达也挺模糊,周末再仔细斟酌下...
另外...有哪些讨论涉及系统设计的文章或开源软件吗? 有个前人的思路就好,我怕摸黑走到坑里去··

8216 次点击
所在节点   地理信息系统
14 条回复
xiaofami
2015-11-13 15:52:21 +08:00
多年前做 GIS 课程设计时用过 QGIS 。给定一张地图将其数字化,首先录入地图上几个边界点的坐标,然后选取坐标系。由于地球是个球体,平面展开会产生拉伸,越靠近边界扭曲越大,所以不同区域有各自的坐标系,要根据测绘区域选取。国内的有北京 54 坐标系,西安 80 坐标系等。
涉及空间的没做过~
learnshare
2015-11-13 15:59:22 +08:00
https://zh.wikipedia.org/wiki/%E5%A4%A9%E7%90%83%E5%9D%90%E6%A0%87%E7%B3%BB%E7%BB%9F 天球坐标系统

比较常见的是类似地球经纬度的方式,以地心为参考点,以赤道或黄道面为参考平面,以地球南北极方向为参考轴。
learnshare
2015-11-13 16:01:16 +08:00
@learnshare 比如在赤道坐标系统里,经度、纬度和距离(类似于地球坐标的海拔),就可以定位一个点
hitmanx
2015-11-13 17:12:11 +08:00
你这业务真广啊。。
loading
2015-11-13 17:17:25 +08:00
洲际导弹…似乎确实很难算!以前以为只要燃料够就行了,目前看来,就算美国开放随便我写程序,我也打不中!
ioth
2015-11-13 18:14:59 +08:00
gps 只可能给美军自己用。
gis 和 gps 是 3s 里面的不同东西。
太空又不是 3s 的内容了。
seki
2015-11-13 18:21:02 +08:00
一楼说的是大地坐标系
仅对于地球表面而言,根据你的项目需要,可以选择等角投影、等距投影,等面积投影等。处理这类坐标转换可以用 gdal ,并且这些投影的相关信息也能够在网上查到
一楼所说的 beijing 54 和 xian 80 都属于 Gauss Kruger 投影,是一种等角投影。两者的区别在于 datum 定义参数的不同
acros
2015-11-13 18:26:41 +08:00
@hitmanx
@loading
@ioth
@seki
我就发散好好奇下他们的系统里面怎么处理极大极小值变化的···· 不要以为我在做导弹啊!
cdxem713
2015-11-13 18:29:31 +08:00
在地球上用经纬度貌似也没啥问题啊,还有会用莫卡托坐标系,是米制的,做导弹啥的应该会换算成这个坐标。
飞宇宙上就不知道了,猜想是在宇宙中用通知坐标系,在每个星球用各自的坐标系?
msg7086
2015-11-14 03:39:36 +08:00
@acros 难道不是在做宇宙飞船的 GPS ?
Robling
2015-11-14 10:04:29 +08:00
浮点数解决不了的精度问题可以用定点数解决。
acros
2015-11-14 10:10:53 +08:00
@Robling 软件实现吗?
硬件支持的我真没遇见过。
acros
2015-11-14 14:19:29 +08:00
@msg7086 神舟的 gps 给我做的话,估计得拉上整个外交部帮忙擦屁股。😫
c742435
2015-11-14 22:35:27 +08:00
@acros 我不认为一个停在星球表面的飞船需要具有宇宙的绝对坐标系。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/235957

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX