2011-06-02 132 views
1

我正在潜入一些没有足够背景的东西,但我觉得可能有简单的解决方案,不需要我深入了解该主题。Image Co-ordinate系统设计

我想要做的是有一个图像坐标系统。用户基本上会提供一个图像,就像一个房子计划。然后,他们可以点击图像中的点并创建标记(如Google地图)。下次他们检索地图时,他们之前添加的所有标记都在那里,他们可以添加新的标记。

我需要确定这些标记所在的点,以便我可以存储该信息。我还需要能够在包含标记的图像上创建一个图层,并将它们呈现在放置的确切位置。

我想要做到这一点的最简单方法是使用像素坐标......这里的问题是图像不会是一个固定的大小,因为有一个web应用程序和一个ipad应用程序,所以co只要图像尺寸相同,系统就需要工作。

服务器大小是.NET,并提到有一个iPad应用程序,所以解决方案需要是可行的考虑到技术堆栈。

任何想法?

回答

1

您可以使用0到1的范围,而不是以绝对值使用像素坐标。左上角是(0,0),右下角是(1,1),图像中心是(0.5,0.5)。这种方式不管你有什么图像大小(或缩放级别),标记将始终在同一个地方。

+0

我喜欢这种方法的原则,它适用于存储信息,但我怎么会确定用户点击这种方法? – Amasuriel 2011-06-02 13:19:17

+0

这将取决于演示技术,但所有这些(Windows窗体,WPF,iOS)都会为您提供某种组件来显示图像。例如,在WPF中你有图像组件。图像组件有一个鼠标向下事件,它为您提供鼠标点击的X,Y坐标。在简单情况下(不涉及变焦),要计算0-1范围值,只需将该坐标除以图像的宽度或高度即可。例如,在800x600的图像中,点击像素(100,120)转换为(0.125,0.2) – 2011-06-02 14:59:10

+0

这很有道理。我将这标记为答案;如果我遇到实施细节,我会提出跟进问题。谢谢。 – Amasuriel 2011-06-02 15:41:40

0

我的建议是不要试图找出实际图像和坐标之间的相关性。我唯一要做的就是使用图像的分辨率,也就是800x600,并将其用于网格。然后在图像上使用该网格覆盖您的标记。你记得的点只是X和Y值,也许是一个标签名称/ ID。

+0

问题是,在这样的应用程序中,消费者和提供者具有不同的图像大小是非常常见的。服务器中的图像可能具有800x600像素,但出于带宽考虑,通过网线传送至iPhone的图像为400x300。 – 2011-06-02 06:43:50