无涯233 2023-12-15 16:21 采纳率: 33.3%
浏览 12

unity世界坐标转屏幕坐标的转换公式问题

unity将高德坐标转换成屏幕坐标在unity的切片地图上(不知道是地图还是图片)
代码:

        float a2=(float)(148193.1 / Screen.width);
        float b2 = (float)(105288.9 / Screen.height);
        x1 = (float)((sx - MinLon) * 3600 / scaleX)* a2-89000 ;//经度转换屏幕X坐标公式
        y1 = Screen.height - (float)((MaxLat - sy) * 3600 / scaleY) * b2 + 74000;//纬度转换屏幕Y坐标公式

这段转换代码里a2,b2里的数字148193.1和转换时减去的89000都是什么意思啊,希望能得到指点,我该怎么更改这几个常量

  • 写回答

1条回答 默认 最新

  • Bony- 2023-12-15 17:32
    关注

    以下回答参考GPT并且由Bony-整理:
    根据你提供的代码,这些常量看起来是为了进行从经纬度坐标到屏幕坐标的转换而引入的。让我们来看一下它们的含义:

    1. 148193.1: 这个数字可能是经度(longitude)的单位转换因子。通常,在经度的转换中,你需要将度数转换为某个距离单位,比如米。这个数字可能是用来将经度的度数转换为屏幕上的像素值。

    2. 89000: 这个数字似乎是一个偏移值,用于调整经度转换后的屏幕坐标。这可能是由于地图显示的原点(或其他基准点)不在屏幕的左上角。

    3. 105288.9: 这个数字可能是纬度(latitude)的单位转换因子。与经度类似,它可能用于将纬度的度数转换为屏幕上的像素值。

    4. 74000: 类似于经度转换中的偏移值,这个数字似乎是用于调整纬度转换后的屏幕坐标。

    在更改这些常量之前,你可能需要弄清楚你所使用的地图坐标系统的具体单位和原点。通常情况下,地图库或服务提供商会提供有关坐标系统的信息。在更改这些常量之前,你可能需要查阅相关文档或地图服务提供商的文档,了解经纬度和屏幕坐标之间的关系。

    如果你知道你的地图使用的坐标系统和单位,你可以根据实际情况调整这些常量的值,以确保转换结果正确。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月15日

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?