BusFensi

上次在动态里面提到了我需要接下来会继续完善模块。这里我会写下总体的技术规划。

实现目标与思路

大致把思路理一下吧。我们先假设建筑物和道路是固定的——毕竟这是公交编辑器,大而全的编辑器我暂时无力驾驭。

那么我们假设引入编辑模式的概念,先定义一个公交编辑模式,在逻辑上(虽然底层实现会对道路进行编辑操作)是在现有的路径和建筑的的基础上进行操作,是一个新增新信息而不是修改的过程。我们需要实现以下功能:

  1. 新建公交线路。需要的操作为:

    • 手动选择或者新建一些站点,得到纯站点公交线路
    • 手动按顺序选择一定的路径,得到公交线路。这里可能需要用到一些绘制的操作,即通过鼠标指定控制点等方式灵活选择。可能需要处理:双向公交。
    • 自动按照站点生成公交线路。暂时还没想好怎么实现
    • 对线路元信息的修改,包括名字,运营单位等等
  2. 编辑公交线路。即对于已经存在的公交进行编辑

    • 对站点进行新增,删除,重新排序
    • 对路径进行拓展,收缩,删除和重新连接。
    • 对线路元信息的修改,包括名字,运营单位等等
  3. 删除公交线路

    • 直接删除即可,后续可能会考虑拼接线路的需求

以上对于单条线路而言的。

阅读更多

这次的周报又多拖了两个星期。其实按照实际进度来说项目已经接近完成了。不过我会吧进度同步到这份周报该发布的时间。

项目进度

Filter and Collection

完成 filter 部分,将原始请求的 osm bbox 数据进行筛选,分为 public transport 和 highway 等 collection。

考虑到编辑器主要服务于公共交通,所以不需要过多关注建筑物等信息的编辑。主要关注 highway 和 public transport.在参考了 OSM wiki 之后编写了 filter, 利用 tag 信息来过滤数据,进行分类。

对于筛选后需要展示和编辑的数据,建立了 feature tree 的树形结构,维护 OSM 数据的树形关系,便于展示和编辑。

阅读更多

很遗憾这个周报欠了两个星期,所以这次会连着发两份周报(下一份也在写了)。

项目进度

截止本周报应该发布的时间,我已经完成了项目的 React 重构,并且初步确定了 UI 编辑模块的组成。

重构

在项目开始一个月,已经写了一半的情况下面重构,的确不是一个很容易做出的确定,但是原先的技术选型确实不能支持这个项目的继续开发了——倒不说说技术上不可行,但是需要更多的时间,而且复杂度会超出掌控。

原先的技术选型受到了 Rapid 项目的影响,这个项目采用了原生 ESM 来进行开发,而不是使用流行的前端框架。因为我这个项目也使用 PIXI.js 来进行地图的渲染,很多实现和设计都参考了 Rapid ,所以一开始也很自然的学起了它的技术选型。

阅读更多

距离上一个周报已经过去两个多星期了,我也应该要同步当前的进度了。

项目进度

目前项目的核心模块已经基本固定下来,可以进入后半阶段的开发,接下来的工作基本上是在现有框架内添加新的功能。

首先是调通了渲染部分,不过还是有些细节缺少打磨,比如样式以及控制渲染的元素,这些会和之后的功能同步进行,确保样式和编辑逻辑贴和。

其次我写了个 OSM API 模块,用 Promise 打包了一些 OSM 的接口,将返回的 XML 解析成 JS Object , 方便在程序中调用。

接下来是编辑模块。主要包括操作逻辑部分和全局数据管理部分

阅读更多

很快开发就经过了两个星期,是时候写一篇双周报了。

项目进度

项目还在早期开发阶段,目前还没有可用的原型,不过已经可以渲染一些测试数据了。

目前基本上确定了渲染部分的实现,经过测试可以渲染点和路径。

不过由于其他模块的接口还没有完全确定,有部分功能没有实现。比如分线段高亮路径,而不是 iD 编辑器中默认选中整条路径的逻辑。还有多面体的渲染目前也没有实现,因为需要编辑模块的接口。

更新计划

阅读更多

在这次 OSPP 当中我将会完成一个基于现代前端技术栈的 OpenStreeMap 公共交通关系编辑器。希望能为 OSM 社区做一些贡献。

项目目标

本项目的目标是使用现代前端技术栈开发一个跨平台的编辑器,该编辑器操作简便,交互直观。项目过程中将与 OSM 中国社区合作,确保在交互设计和功能实现上达到较高的标准。

项目实现

项目基本框架

项目可以大致分为地图渲染模块,路线编辑模块,以及 OSM API 模块

阅读更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×