创建交互式地图

时间:2012-10-22 14:35:41

标签: java android opengl-es map android-canvas

我正处于创建学校交互式地图的研究阶段,其中有一个地图,每个房间都标记了当用户点击房间时,提供有关教师,课程信息和会议时间的信息。地图本身必须放大和缩小限制并移动。

地图的最终外观将与中间图片here.

的线条相似

创建地图的方法有所不同:

画布绘图

可以使用onDraw()方法创建地图,以绘制代表每个房间的矩形。缺点包括绘制的矩形数量和可能的电池消耗。我也不知道如何使地图可以整体移动,所以每个矩形一起移动。实际上,将所有矩形绘制到一个图像,然后移动图像。

的OpenGL

与上述方法相同,但在OpenGL中这样做可以消除部分电池消耗。同样的缺点也适用。

我面临的主要问题是找到并使用最有效的方法,并能够实现缩放和平移功能。

还有什么可能的解决方案?

1 个答案:

答案 0 :(得分:1)

我没有其他建议选择,但由于我或多或少在我的应用中实现了相同的功能,我建议使用OpenGL(通过JOGL)。在从多个图块渲染单个图块的情况下,您绘制一个图块,glTranslate到相邻图块的位置,然后绘制下一个图块,等等。

通过在开始绘制切片之前将glTranslate置于适当的偏移处来实现滚动地图。通过在glTranslate之后以适当的速率放置glScale来实现缩放。

当然,有相同的画布绘制命令,但我总是发现使用OpenGL实现这样的功能要容易一些。