我正在嘗試開發一個「Web應用程序」(缺乏更好的術語),該應用程序使用HTML5 Canvas元素爲移動設備顯示一種交互式地圖。該地圖有大約30個不同形狀和大小的建築物(由其上的半透明PNG圖像製成)。我希望用戶能夠利用任何建築物來獲取關於它們的信息。這些建築物通常與其他建築物的理論邊界框相同,因此它不像檢測用戶在邊界框中敲擊時那樣簡單(想象一下U形建築物內有另一棟建築物)。因此,它應該使用某種光柵像素檢測。爲了使事情更加複雜,我需要允許用戶放大/縮小並在地圖上平移(因爲30個建築物和地圖太多以致無法在小手機屏幕上顯示用戶)。因此平穩和平穩移動是必要的。什麼HTML5畫布像素檢測和圖像處理庫在那裏?
我要尋找一個JavaScript庫,可以支持這些功能:
- 圖像像素檢測
- 移動觸摸事件
- 帆布(?或站)縮放
- 可用在移動設備上
到目前爲止,我發現支持所有這些功能的KineticJS。但是當我嘗試在舞臺上移動超過4座建築物的地圖時,這太方便了。我嘗試檢查Fabric.js,但它似乎沒有像素檢測(因爲它在邊界框內單擊時選擇圖像,而不是實際圖像本身)。
有沒有其他的JavaScript庫可以做這些事情嗎?
感謝您的幫助!
感謝您的反饋!我嘗試了一些與你的答案有關的選項,但他們似乎沒有工作。我打算嘗試多邊形解決方案,但即使在關閉像素檢測的情況下,渲染所有的PNG似乎也是個問題。將畫布放在另一個DIV中將不起作用,因爲它必須在放大和縮小時重新渲染以提高清晰度,而且重新渲染與移動它們一樣糟糕。 我認爲這可能只是推動設備太過Javascript和HTML。我希望有可能有另一個圖書館去嘗試。 – 2012-07-25 02:36:50
關於緩慢的地圖移動,您是否嘗試爲舞臺設置draggable屬性爲true? – 2012-07-30 09:46:02