2009-12-06 52 views

回答

1

我爲我最後一年的大學項目實施了類似的東西。我使用與HeatMap API相同的方法,在重新定位時將生成的圖像覆蓋在地圖上。

我寫了一個自定義的Java Web服務器接受查詢字符串中的邊界框座標,以產生看起來有點像熱圖半透明PNG圖像,但它絕不是一個正確的統計正確的算法。當時我無法找到用於創建熱圖的任何算法,並且許多在線或期刊中發現的算法實際上是用於熱圖/樹圖而不是密度熱圖。

我爲數據生成了一個2D數組,使用一個函數來映射每個座標值。添加到數組增加了值,所以數組需要被標準化爲0-255之間的值,然後可以很容易地將其着色並輸出到畫布上。恐怕我找不到這個源代碼,算法非常接近。

大約一年前,當BNP(種族主義英國政黨)的成員名單泄露時,我偶然發現了另一種(更簡單但可能更不準確)的解決方案,它在每個針點放置了一個PNG熱點,熱圖的效果。這裏有一個截圖,雖然我找不到原始地圖http://www.labourlist.org/revealed_the_bnps_social_media_strategy_mark_hanson

+0

目前我開發了類似的東西,但這不是我想要的確切結果,但感謝您的洞察力 – 2009-12-07 23:53:53

+0

我使用imagemagick在heroku上實現了一個解決方案,它位於heatmap.me上,感謝您的洞察力 – 2010-11-22 14:21:40

0

據我所知,GWT中沒有設計用於執行熱圖的任何內容,至少在官方SDK中沒有。 我想說的最快的事情是將現有的JS解決方案作爲本地函數進行整合,並將其用於當前的GWT代碼中。

+0

有沒有你建議的任何js解決方案? (或之前使用過) – 2009-12-07 17:58:34

+1

我很抱歉,我以前從未實現過熱圖。 去任何你可以使用的JS庫,讓它在一個虛擬的HTML頁面中工作,然後將你需要使用的所有方法包裝到GWT JSNI方法中。 – 2009-12-07 19:19:10

+1

您可以在這裏找到JSNI文檔http://code.google.com/webtoolkit/doc/1.6/DevGuideCodingBasics.html#DevGuideJavaScriptNativeInterface – 2009-12-07 19:19:41

0

本質上有兩種方法。一種是直接來自GWT內的「hacky」,而不是非常優雅的方式,另一種則使用Google Visualization API。

hacky的方式涉及到構建一個表並將數據放入其中。此外,您需要決定如何將數據值「分類」爲範圍,然後將顏色分配給bin(您在CSS文件中指定的)。隨後,使用列/行格式化程序將適當的CSS附加到表格單元格。我已經在GWT中以這種方式實際完成了熱圖,並且它可以工作。...

非hacky的方法是轉到Google Visualisations API並使用JSNI封裝GWT中已存在的熱圖。