2011-06-02 81 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