作业系统对接指导手册 作业系统对接指导手册
首页
  • 地图对接
  • 服务对接
路径规划
视频分析
知识星球
位置平台
图创官网 (opens new window)
首页
  • 地图对接
  • 服务对接
路径规划
视频分析
知识星球
位置平台
图创官网 (opens new window)
  • 获取访问权限

    • 申请AppId
  • 图层相关

    • 专题
    • 图层组(已过时,还请参见专题)
    • 图层对象
    • 图层字段
    • 图层要素简单查询
    • 要素新增
    • 要素更新
    • 要素批量操作
    • 要素删除与详情
    • 图层要素多条件查询(v2)
    • 图层要素多条件查询(v1)
  • 字典相关

    • 字典操作
  • 行政区划相关

    • 行政区划
    • 行政区划相关接口
  • 警务辖区相关

    • 警务辖区
    • 警务辖区相关接口
  • 附件相关

    • 附件
  • 雪碧图相关

    • 获取雪碧图
  • 样式相关

    • 图层样式
  • 常见问题

    • 图层字段相关
    • 图层相关
      • 图层对象显示elementCount有43条,通过simpleQuery接口查询不到
        • 回答
      • 想实现类似于poi搜索的范围查询的功能
        • 回答
      • layerGroupSimpleQuery,simpleQuery,groupSimpleQueryByTableIds ,advancedQuery这四个接口有什么区别
        • 回答
      • advancedQuery 怎么分页?
      • 分词查询的含义
        • 回答
      • 面图层的点标注
        • 回答
      • layerId,tableId的关系
        • 回答
      • 高级查询查询条件可选值
        • 排序条件 condition
        • 查询组拼接条件 andOr
        • 查询过滤条件 operator
    • Vue项目出现Invalid Host header 的解决方案
  • 后端对接
  • 常见问题
北京图创
2023-10-25
目录

图层相关

# 图层对象显示elementCount有43条,通过simpleQuery接口查询不到

img img

# 回答

elementCount 这个是通过异步消息进行更新到图层表里面的,由于现在各个现场的部署环境不一致的问题,会导致有时候消息没有被消费, 对于这种仅供参考,不要求强一致性的数据,我们就没有进行消息重试.故这个字段表示的要素条数大部分情况下是准确的,一切以查询得到的结果为准. 如果查询查不到,但是根据现场反馈,图层对应的实体表里面有数据,那这就是系统缺陷,提交反馈给我们,马上就改.

# 想实现类似于poi搜索的范围查询的功能

# 回答

poi搜索我们可以把他拆分为
1 文本搜索
2 范围限制
可以通过
layerGroupSimpleQuery
simpleQuery
groupSimpleQueryByTableIds
simpleQueryCountByBizId
advancedQuery
这三个接口实现.

# layerGroupSimpleQuery,simpleQuery,groupSimpleQueryByTableIds ,advancedQuery这四个接口有什么区别

# 回答

接口名称 文本搜索 范围搜索 多图层搜索 备注
layerGroupSimpleQuery 支持 不支持 支持 从图层组中获取所有所有图层进行搜索,不支持指定图层
simpleQuery 支持 支持 不支持
groupSimpleQueryByTableIds 支持 支持 支持 可以手动指定图层进行搜索,通过tableId参数指定
simpleQueryCountByBizId 支持 支持 支持 通过专题Id参数指定,暂时不支持指定图层,,结果中只返回count,不返回具体结果
advancedQuery 支持 支持 不支持 需要手动进行拼接查询条件进行搜索

# advancedQuery 怎么分页?

在系统中,所有接口的分页参数统一为通过 Param 传参
例如

http://devs.gishub.com.cn:9196/XXXX/XXXX?page=3&limit=15

page: 页码 默认从1开始 limit:每页数量,默认25条

# 分词查询的含义

# 回答

分词查询就是把查询字符串进行分词之后在进行模糊搜索,例如:
当 queryStr 为 开发者中心 的时候 , 通过IK分词器的得到的查询字符串为: "开发者", "中心","开发者中心"
如果 tokenizerIs 设置为 true 那么 语义化sql为

select * from "table_name" where   field like ''%开发者%' or field like ''%中心%'  or field like ''%开发者中心%'     

如果 tokenizerIs 设置为 false 那么 语义化sql为

select * from "table_name" where field like ''%开发者中心%'  

# 面图层的点标注

当一个面图层加载到地图上面的时候,我只能够在地图上面看到面,但是看不到这个面的具体的名字.这里需要展示名字该怎么办.

# 回答

两个办法
A办法:
1 首先你需要读取到pbf里面的要素信息. 类似于geojson里面的features
2 通过图层信息的响应示例描述获取到简表字段的名称simpleShowField
3 获取当前面图形的质心,把该点展示在质心上面.
B办法:
1 首先你需要读取到pbf里面的要素信息. 类似于geojson里面的features
2 通过图层信息的响应示例描述获取到简表字段的名称simpleShowField
3 通过图层信息的响应示例描述获取到标签图层的layerIdtagLayerId
4 自己通过标签图层的layerId组装请求url(请求url格式为 /sys/geom/rest/XXXXX/{z}/{x}/{y},中间XXXXX的内容是tableId)

# layerId,tableId的关系

# 回答

在同一个图层中, layerId与tableId也就是前缀不一样. 例如当图层的layerId为 l_110114113XXXX的时候,他的tableId就是 t_110114113XXXX

# 高级查询查询条件可选值

# 排序条件 condition

代码 中文 可用字段类型 v1传参示例 v2传参示例 备注
402 升序 文本与数值类型 {"fieldName": "七级","condition": "401"} {"fieldName": "七级","condition": "升序"} ASC
401 降序 文本与数值类型 {"fieldName": "七级","condition": "401"} {"fieldName": "七级","condition": "降序"} DESC

# 查询组拼接条件 andOr

代码 释义 v1传参示例 v2传参示例 备注
201 AND "andOr": "201" "andOr": "and"
202 OR "andOr": "202" "andOr": "or"

# 查询过滤条件 operator

  • 大于

    • 代码: 101

    • 中文: 大于

    • 可用值类型: 数值类型

    • v1示例:

    {
      "andor": "201",
      "condition": "1",
      "field": "名称",
      "operator": "101"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "1",
      "fieldName": "名称",
      "operator": "大于"
    }
    
    • 备注:
      • 类似于sql中的 > 条件,故过滤的条件必须是数值类型
  • 小于

    • 代码: 102

    • 中文: 小于

    • 可用值类型: 数值类型

    • v1示例:

    {
      "andor": "201",
      "condition": "1",
      "field": "名称",
      "operator": "102"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "1",
      "fieldName": "名称",
      "operator": "小于"
    }
    
    • 备注:
      • 类似于sql中的 < 条件,故过滤的条件必须是数值类型
  • 等于

    • 代码: 103

    • 中文: 等于

    • 可用值类型: 数值类型或者字符串类型

    • v1示例:

    {
      "andor": "201",
      "condition": "1",
      "field": "名称",
      "operator": "103"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "1",
      "fieldName": "名称",
      "operator": "等于"
    }
    
    • 备注:
      • 类似于sql中的 = 条件
  • 不等于

    • 代码: 104

    • 中文: 不等于

    • 可用值类型: 数值类型或者字符串类型

    • v1示例:

    {
      "andor": "201",
      "condition": "1",
      "field": "名称",
      "operator": "104"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "1",
      "fieldName": "名称",
      "operator": "不等于"
    }
    
    • 备注:
      • 类似于sql中的 != 条件
  • 大于等于

    • 代码: 105

    • 中文: 大于等于

    • 可用值类型: 数值类型

    • v1示例:

    {
      "andor": "201",
      "condition": "1",
      "field": "名称",
      "operator": "105"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "1",
      "fieldName": "名称",
      "operator": "大于等于"
    }
    
    • 备注:
      • 类似于sql中的 >= 条件,故过滤的条件必须是数值类型
  • 小于等于

    • 代码: 106

    • 中文: 小于等于

    • 可用值类型: 数值类型

    • v1示例:

    {
      "andor": "201",
      "condition": "1",
      "field": "名称",
      "operator": "106"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "1",
      "fieldName": "名称",
      "operator": "小于等于"
    }
    
    • 备注:
      • 类似于sql中的 <= 条件,故过滤的条件必须是数值类型
  • BETWEEN

    • 代码: 601

    • 中文: 范围查询

    • 可用值类型: 时间类型

    • v1示例:

    {
      "andor": "201",
      "condition": "2025-01-03 16:00:00|2025-01-06 16:00:00",
      "field": "时间",
      "operator": "601"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "2025-01-03 16:00:00|2025-01-06 16:00:00",
      "fieldName": "时间",
      "operator": "BETWEEN"
    }
    
    • 备注:
      • 类似于sql中的 BETWEEN 条件
      • BETWEEN 查询需要由两个时间组成 中间使用 | 符号进行分隔, 示例:2025-01-03 16:00:00|2025-01-06 16:00:00
  • IN

    • 代码: 302

    • 中文: 用给定的可选值进行过滤

    • 可用值类型: 数值类型,字符串类型

    • v1示例:

    {
      "andor": "201",
      "condition": "1",
      "field": "名称",
      "operator": "102"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "1,2,3,4,5,6",
      "fieldName": "id",
      "operator": "IN"
    }
    
    • 备注:
      • 类似于sql中的 IN 条件
      • 时间类型,空间类型不支持IN查询
      • 中间使用英文逗号进行分隔
  • 为空

    • 代码: 305

    • 中文: 为空判断

    • 可用值类型: 任何类型

    • v1示例:

    {
      "andor": "201",
      "condition": "is null",
      "field": "名称",
      "operator": "305"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "is null",
      "fieldName": "名称",
      "operator": "为空"
    }
    
    • 备注:
      • 类似于sql中的 is null 条件
  • 不为空

    • 代码: 306

    • 中文: 判断不为空

    • 可用值类型: 任何类型

    • v1示例:

    {
      "andor": "201",
      "condition": "is not  null",
      "field": "名称",
      "operator": "306"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "is not  null",
      "fieldName": "名称",
      "operator": "不为空"
    }
    
    • 备注:
      • 类似于sql中的 is not null 条件
  • 左模糊匹配

    • 代码: 401

    • 中文: 模糊匹配

    • 可用值类型: 字符串类型

    • v1示例:

    {
      "andor": "201",
      "condition": "徐坤",
      "field": "名称",
      "operator": "401"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "徐坤",
      "fieldName": "名称",
      "operator": "小于"
    }
    
    • 备注:
      • 类似于sql中的 %content 条件
  • 右模糊匹配

    • 代码: 402

    • 中文: 右模糊匹配

    • 可用值类型: 文本类型

    • v1示例:

    {
      "andor": "201",
      "condition": "蔡",
      "field": "名称",
      "operator": "402"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "蔡",
      "fieldName": "名称",
      "operator": "右模糊匹配"
    }
    
    • 备注:
      • 类似于sql中的 content% 条件
  • 全模糊匹配

    • 代码: 403

    • 中文: 全模糊匹配

    • 可用值类型: 文本类型

    • v1示例:

    {
      "andor": "201",
      "condition": "徐",
      "field": "名称",
      "operator": "403"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "徐",
      "fieldName": "名称",
      "operator": "全模糊匹配"
    }
    
    • 备注:
      • 类似于sql中的 like %content% 条件
  • (空间字段操作)包含

    • 代码: 501

    • 中文: 包含查询

    • 可用值类型: 空间类型

    • v1示例:

    {
      "andor": "201",
      "condition": "POLYGON((87.676085 44.185638,87.676085 44.185652,87.676103 44.185652,87.676103 44.185638,87.676085 44.185638))",
      "field": "the_geom",
      "operator": "501"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "POLYGON((87.676085 44.185638,87.676085 44.185652,87.676103 44.185652,87.676103 44.185638,87.676085 44.185638))",
      "fieldName": "名称",
      "operator": "包含"
    }
    
    • 备注:
      • 类似于sql中的 st_contains( the_geom ,??) 条件
      • 传入wkt形式的字符串,只接受WKT面
  • (空间字段操作)缓冲

    • 代码: 502

    • 中文: 缓冲查询

    • 可用值类型: 空间类型

    • v1示例:

    {
      "andor": "201",
      "condition": "POINT(84.37 43.3)|0.5",
      "field": "the_geom",
      "operator": "502"
    }
    
    • v2示例:
    {
      "andOr": "and",
      "value": "POINT(84.37 43.3)|0.5",
      "fieldName": "名称",
      "operator": "缓冲"
    }
    
    • 备注:
      • 类似于sql中的 st_contains( the_geom ,st_buffer( [WKT],[buffer] ) ) 条件
      • 缓冲查询的的查询条件格式为{wkt}|{ buffer} 示例 POINT(84.37 43.3)|0.5
      • wkt可以接受点线面任何类型。处理流程就是把你给的空间形状进行一次缓冲分析得到一个缓冲面,再到目标图层的空间要素中求包含
上次更新: 2025/05/30, 17:16:57
图层字段相关
Vue项目出现Invalid Host header 的解决方案

← 图层字段相关 Vue项目出现Invalid Host header 的解决方案→

Theme by Vdoing | Copyright © 2023-2026 北京图创时代科技有限公司版权所有
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式