【问题标题】:lat/lon conversion to x/y-coordinateslat/lon 转换为 x/y 坐标
【发布时间】:2011-03-31 14:22:10
【问题描述】:

我有一个openstreetmap 图像。 左上角是纬度:80 经度:-169 右下角是纬度:-56 经度:190 图片宽度:2618,高度:1513

如何将给定的纬度/经度坐标转换为图片的 x/y 坐标?

我自己试了一下,不知道怎么转换坐标。

希望有人能回答我的问题。

【问题讨论】:

    标签: latitude-longitude proj4js proj


    【解决方案1】:

    所问的问题几乎是荒谬的。请求的区域几乎覆盖了整个地球,从 80N 169W 到 56S 190E。这留下了从 170W 到 169W 的带极对极,80N 以北的北极周围的圆盘,以及 56S 以南的南极周围的更大圆盘。从地球这么大的区域到屏幕,没有单一的最佳投影。请参阅geographic coordinatesmap projections 上的 wiki 作为一般背景的起点。

    也就是说,如果输入合理,这是一个合理的问题。

    对于靠近赤道的非常小的区域,一个简单的投影是将纬度映射到 Y,将经度映射到 X。当您远离赤道时,由于度数长度的减少,这将引入一个小的失真。纬度接近任一极时的经度。对于一个关于赤道不对称的足够大的区域,这将使顶部边缘的长度(以英里为单位)与底部边缘明显不同。

    更好的投影将纬度映射到 Y,但将经度缩放cos(latitude) 以获得 X。对于足够小的区域,比例在整个图形上几乎是恒定的,并且可以计算一次并保持恒定。

    地图投影的一般主题比此处确定的最简单的解决方案要多得多。它们因每个投影的不同目标而异。投影的选择取决于预期用途,即使针对特定用途,通常也没有单一的“最佳”投影。

    【讨论】:

      【解决方案2】:

      对于更一般的进出投影的转换,PROJ.4 有 perl 和 python 包装器。这些可以让您解决任何此类问题。

      【解决方案3】:

      wiki 上有将 OpenStreetMap 瓦片系统转换为纬度/经度和返回的示例代码:

      http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

      祝你好运!

      【讨论】:

        猜你喜欢
        • 2022-12-14
        • 2020-10-02
        • 1970-01-01
        • 2018-11-12
        • 2019-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多