【问题标题】:Trying to convert longitude/latitude to Cartesian coordinates尝试将经度/纬度转换为笛卡尔坐标
【发布时间】:2012-04-09 20:52:43
【问题描述】:

我正在尝试将城市的经度/纬度位置转换为笛卡尔坐标,然后我可以将其转换为像素位置以显示在 pygame 屏幕上,但我无法弄清楚。

def ConvertPoint(self, Long, Lat, height, width):
    self.x = Long
    self.y = Lat
    self.x = angleToPointX(self.x, self.y, 3959)
    self.y = angleToPointY(self.x, self.y, 3959)
    pygame.draw.circle(self.window, (255,0,0), (int(self.x), int(self.y)), 5)
    print(self.x, self.y)

功能:

def angleToPointX(lat, long, magnitude=1.0):
    V = (math.cos(lat) * math.cos(long))
    return V

def angleToPointY(lat, long, magnitude=1.0):
    V = (math.sin(lat))
    return V

【问题讨论】:

  • 就像列夫说的,有什么问题?
  • 问题是,一旦我进行转换,乘以它的幅度应该是多少
  • 在您的 angleToPoint 函数中,这些函数开始被怀疑,因此无论传入的纬度/经度如何,您的返回值都将非常小(-1 到 +1 范围)。尝试将返回值乘以您尝试定位城市的区域的像素宽度。但请注意,您的 angleToPointX 为您提供了一个非常不寻常的投影选择。

标签: python cartesian polar-coordinates


【解决方案1】:

你用的是什么map projection?纬度/经度可以直接用作圆柱投影中的 y/x - 这是进行游戏的最简单方法。否则,转换将完全取决于投影的选择。

【讨论】:

    【解决方案2】:

    我过去也遇到过类似的问题,this 帮助我解决了这个问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-14
      • 2020-07-04
      • 2015-09-30
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多