室内地图制作方法 项目源代码 https://gitee.com/vpclub-wh/indoor-map 室内地图制作 用threejs实现的室内地图展示,原理非常简单 使用正交相机创建2D效果 根据地图数据多边形形状 使用OrbitControls进行地图控制 所有的代码都在src/components/indoor-map.vue 中 制作地图形状数据 要实现平面地图倒是很简单,绘制多边形形状与标记,以便于数据绑定,则需要借助一些外部工具,因此,我们使用Tiled mapeditor 制作地图形状与标记 Tiled下载:https://www.mapeditor.org/ 最终效果图 约定 首先,我们约定一张地图有四个图层,需要在图层中定义 背景图:bg,类型为图像层,图片的长和宽要求是2的整数倍 地板或者公共空间:floor,类型为对象层 房间:rooms,类型为对象层 文本标记:label,类型为对象层 进行区块标记 约定 所有的对象均使用多边形,既使用矩形绘制的区块,也需要转换为多边形,可以在对象上右键,转换为多边形 为便于协作,对象的name属性作为与数据绑定的唯一依赖关系 因为文字内容需要动态变化,而文字的长和宽需要计算,因此label使用点位置进行标记,再动态计算放到与此坐标点的居中位置 导出格式为json tiledmap快捷键 放大:ctrl++ 缩小:ctrl+- 默认大小:ctrl+0 平移:滚轮或者按住空格 填充到窗口正中间:ctrl+/