Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建交互式地图_Java_Android_Opengl Es_Map_Android Canvas - Fatal编程技术网

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实现这些功能要容易一些