Java 创建交互式地图
我正处于创建学校互动地图的研究阶段,其中有一张地图,每个房间都有标签,当用户点击房间时,会给出关于老师、班级信息和会议时间的信息。地图本身必须有限制地放大和缩小,并四处移动 地图的最终外观将是沿着中间图片的线条 创建地图的方法各不相同: 画布绘制 可以使用Java 创建交互式地图,java,android,opengl-es,map,android-canvas,Java,Android,Opengl Es,Map,Android Canvas,我正处于创建学校互动地图的研究阶段,其中有一张地图,每个房间都有标签,当用户点击房间时,会给出关于老师、班级信息和会议时间的信息。地图本身必须有限制地放大和缩小,并四处移动 地图的最终外观将是沿着中间图片的线条 创建地图的方法各不相同: 画布绘制 可以使用onDraw()方法创建地图,以绘制代表每个房间的矩形。缺点包括绘制矩形的数量,以及可能的电池消耗。我也不知道如何使地图在一个整体上移动,所以每个矩形一起移动。实际上,将所有矩形绘制到一个图像,然后移动图像 OpenGL 与上述方法相同,但在O
onDraw()
方法创建地图,以绘制代表每个房间的矩形。缺点包括绘制矩形的数量,以及可能的电池消耗。我也不知道如何使地图在一个整体上移动,所以每个矩形一起移动。实际上,将所有矩形绘制到一个图像,然后移动图像
OpenGL
与上述方法相同,但在OpenGL中这样做可以消除部分电池消耗。同样的缺点也适用
我面临的主要问题是找到并使用最有效的方法,以及能够实现缩放和平移功能
还有什么可能的解决方案呢?我没有其他替代方案可供建议,但由于我在我的应用程序中或多或少实现了相同的功能,我建议使用OpenGL(via)。在从多个平铺渲染单个贴图的情况下,可以绘制单个平铺,将其转换到相邻平铺所在的位置,然后绘制下一个平铺,等等 在开始绘制平铺之前,通过在适当的偏移处放置glTranslate来实现地图的滚动。缩放是通过在glTranslate之后以适当的速率放置glScale来实现的 当然,也有等效的canvas draw命令,但我发现使用OpenGL实现这些功能要容易一些