# 开发规范

# 技能要求

  • 掌握 HTML、CSS、JavaScript
  • 熟练使用 Chrome 等浏览器的调试功能
  • 具备 GIS 相关的基础知识

# 数据要求

  • 接口数据

    • 接口最长响应时间不要超过 1.5 s
    • 返回数据中包含经纬度字段且需要在地图中展示的,经度或者纬度字段不存在或者数据为空的时候,不要返回该数据
    • 只返回需要的字段
  • GeoJSON 数据

    • 数据在可用的情况下,抽稀简化后使用
    • 所有 GeoJSON 数据应通过 “GeoBuf (opens new window)” 方式压缩后的数据
      注:一般是省市县等基础地理数据
  • 静态 JSON 数据

    • 确保格式正确
    • 要使用 JSON 压缩工具压缩后的(不会有多余的空格和换行符)

# 编码要求

  • 开发者代码中不能有语法错误
    • 建议在前端编辑器 VSCODE 或者其他带有语法检测的编辑器中编写代码,没有错误后再粘到开发者代码中使用
  • 注释要求
    • 文档注释
      在开发者代码首行加上如下代码,来标识是哪个应用的开发者代码和相关负责人是谁,主要是为了出现问题能及时找到相关人员改正以及好调试
  /**
   * @file 空气质量 // 空气质量改为自己的应用名称
   * @author <苏永蓬> // 改为对应的负责人
   */
  • 代码注释
    在代码中的主要逻辑或者难理解的地方要加上必要的注释,便于查找问题和后期维护

  • 和大屏交互代码要求

    • 除了全局消息外,自己消息中的** shardeCode 要带有专有标识**,防止和其他人重复,造成交互混乱
    • 只处理自己和全局消息,不要有默认处理
  • GeoJSON 全部使用 GeoBuf 压缩后的
    GeoBuf 数据在图层配置中和 GeoJSON 数据没有任何差别
    GeoBuf 数据在开发者代码中使用请查阅 常见问题-数据相关 文档

  • 要有必要的异常处理
    在开发者代码中请求数据或者事件回调的方法中要进行必要的异常处理,比如说,获取一个图层的要素时,要先判断下该图层是否存在

  • 场景销毁时要把必须要的都销毁
    需要销毁:地图事件、不在图层列表中的图层、大屏接收消息的回调和订阅事件
    详情可参考 环境一张图规范 (opens new window) 中的场景销毁部分 注:

    • 地图事件包括:地图缩放事件、地图拖拽事件、地图平移事件、地图点击事件
    • 不在图层列表中的图层:临时高亮图层和在开发者代码中加载的图层等
    • 大屏接收消息的回调
    • 订阅事件: 调用 subscribeEvent() 方法订阅某个消息时,要在合适的地方通过正确的方式取消订

# 自检要求

  • 初始加载没有报错
  • 所有操作(地图内部事件和大屏交互过程中)都没有报错
  • 在有场景切换的情况下
    • 场景之间多次切换(要在别人和自己场景中简单操作后切换,不能只单独切换场景),自己应用不会引发报错
    • 多场景叠加时,要多和不同的场景(有没有面渲染,图层比较多的和交互比较复杂的等)进行测试。 有可能会出现下面几种情况:
      1. 自己场景有图层的点击事件触发不了(一般是有图层遮盖的情况)
      2. 自己场景的数据要更新时没有更新
      3. 其他场景或者自己场景加不出来
      4. 查询条件失效
    • 场景销毁时,保证 地图事件、不在图层列表中的图层、大屏接收消息的回调和订阅事件 等全部移除或者销毁
  • 在不调整开发者代码后,要保证代码中没有 debugger 和只保留必要的 console 语句