【问题标题】:Converting from Latitude/Longitude to Cartesian Coordinates with a World File and map image使用世界文件和地图图像从纬度/经度转换为笛卡尔坐标
【发布时间】:2010-05-13 13:54:59
【问题描述】:

我有一个 java 小程序,它允许用户从本地系统导入 jpeg 和 world 文件。然后,用户可以“单击”在导入的图像上画线。每条线的每个端点都包含一组 X/Y 和 Lat/Long 值。 XY 是标准 java 坐标空间,小程序使用仿射变换计算与世界文件来确定画布上每个点的纬度/经度。

我有一个要求,允许用户在文本字段中输入距离,并使用箭头键从屏幕上的单个选定点沿特定方向(上、下、左、右)绘制一条线。我知道如何在给定源纬度/经度、距离和方位的情况下确定点的纬度/经度。

因此,用户在文本字段中输入“100”并按下右箭头键,一条线应从当前选定点向右 100 英尺处绘制。

我的问题是我不知道如何将距离(以英尺为单位)转换为以像素为单位的距离。这将告诉我在哪里绘制点。

【问题讨论】:

  • 由于您知道目的地的纬度/经度,听起来您需要应用仿射变换的逆来从该地理点转换为像素空间中的点。对吗?

标签: geometry gis geospatial


【解决方案1】:

tcarobruce, 你是对的。逆变换算法是我所需要的。由于我使用 java,我能够用具有逆变换功能的 java.awt.AffineTransform 对象替换我的“自制”变换算法。

这似乎解决了我的问题。

谢谢。

【讨论】:

    【解决方案2】:

    我猜您确定您的用户总是上传 lat/lon wgs84 投影中的光栅图像?因为在那种情况下你可以设置一个固定的坐标变换。

    如果您考虑使用其他投影对来自其他来源的图像进行数字化处理,您可能需要查看开源地理工具库:http://www.geotools.org/

    【讨论】:

    • 是的,这是一个公司环境,我们有一个特定的流程供用户上传世界文件和匹配的 jpg 文件。感谢您的链接,我已经看到该 API,虽然它看起来可以提供帮助,但我正在处理一些可能与它不完全兼容的遗留库,我希望避免进行大规模的重新设计。
    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2015-09-30
    • 2011-03-06
    • 1970-01-01
    • 2013-02-07
    相关资源
    最近更新 更多