Android の Google マップ用のヒートマップを作成する必要があります。視覚的に表現したい地理位置情報と、それらに起因する負と正の重みを持つポイントがあります。大部分のヒートマップとは異なり、これらの正と負の重みが破壊的に干渉するようにしたいと考えています。つまり、2 つのポイントが互いに近く、一方が正で他方が負の場合、それらのオーバーラップは相殺的に干渉し、完全に相殺される領域を事実上レンダリングしません。私は、特定の場所とズームに基づいてタイルを作成/レンダリングする仕事を持つアンドロイド Google マップの TileOverlay/TileProvider クラスを使用する予定です。(この部分に関しては問題ありません。)
これらのタイルをレンダリングするにはどうすればよいですか? Java の Graphics クラスを使用する予定ですが、考えられる最善の方法は、各ピクセルを調べて、周囲のデータ ポイントに基づいてどのような色にするかを計算し、そのピクセルをレンダリングすることです。ただし、これは非常に非効率的であるように思われるため、より良いアプローチに関する提案を探していました。
編集: WebView 内で Android 以外の Google マップを使用することから、TileOverlay を使用すること、GroundOverlay を使用することまで、すべてを検討しました。私が今考えているのは、「正方形」の大きな 2 次元配列を持つことです。各正方形には、経度、緯度、合計 +/- の重みがあります。新しいデータ ポイントが追加されると、その場所を正確にレンダリングする代わりに、それが含まれる「正方形」に追加されます。このデータ ポイントの重みが正方形に追加され、GoogleMap を使用します。マップ上に正方形をレンダリングする Polygon オブジェクト。+ ポイントと - ポイントの比率によって、レンダリングされる色が決まります。比率が 1:1 に近いほどクリアで、1 より大きいと青 (コールド ポイント)、1 より小さいと赤 (ホット ポイント) になります。編集:別名、データを小さな地域グループにクラスタリングする