HERE API瓦片属性过滤疑问:如何过滤不必要响应数据?
问题:HERE Attributes API过滤瓦片属性无效,仍返回DATE_TIMES为null的数据
我用HERE API获取瓦片中的货车限行信息,请求大量瓦片时响应体积过大,希望过滤掉不必要的数据。调用的Attributes API请求如下:
https://smap.hereapi.com/v8/maps/attributes?in=tile:409099,409100&layers=TRUCK_RESTR_FC1,TRUCK_RESTR_FC1&attributes=DATE_TIMES;WEIGHT_RESTRICTION;HEIGHT_RESTRICTION;LENGTH_RESTRICTION;WIDTH_RESTRICTION;HAZARDOUS_MATERIAL_TYPE&filter=DATE_TIMES != null&meta=0&apiKey=apiKey
但filter=DATE_TIMES != null的表达式未生效,仍返回DATE_TIMES为null的数据:
{ "Tiles": [ { "Rows": [] }, { "Rows": [ { "DATE_TIMES": null, "WEIGHT_RESTRICTION": null, "HEIGHT_RESTRICTION": "420", "LENGTH_RESTRICTION": null, "WIDTH_RESTRICTION": null, "HAZARDOUS_MATERIAL_TYPE": null }, { "DATE_TIMES": null, "WEIGHT_RESTRICTION": null, "HEIGHT_RESTRICTION": "420", "LENGTH_RESTRICTION": null, "WIDTH_RESTRICTION": null, "HAZARDOUS_MATERIAL_TYPE": null }, ... ] } ] }
想确认是否支持按瓦片属性过滤?目前发现filter表达式仅对几何属性生效,对瓦片图层属性无效。
解决方案
- HERE Attributes API的
filter参数默认优先支持几何属性(如空间范围、几何类型等),对图层内的业务属性(比如DATE_TIMES这类字段)的过滤支持存在限制,不同图层的规则可能不同。 - 可尝试以下几种方式解决:
- 修正过滤语法:将
filter=DATE_TIMES != null改为filter=DATE_TIMES IS NOT NULL,部分API对空值判断的语法要求为IS NOT NULL而非!= null,测试是否生效。 - 确认图层过滤权限:检查
TRUCK_RESTR_FC1图层的官方文档,确认DATE_TIMES字段是否允许作为过滤条件使用——部分图层的业务属性不支持服务端过滤。 - 客户端二次过滤:如果API层面无法实现服务端过滤,在获取响应后,直接在客户端代码中筛选掉DATE_TIMES为null的条目,减少后续处理的数据量。
- 优化请求参数:请求中重复指定了两次
TRUCK_RESTR_FC1图层,可改为layers=TRUCK_RESTR_FC1,避免重复数据返回。
- 修正过滤语法:将
内容的提问来源于stack exchange,提问作者Anonim Anonim
相关产品推荐
相关产品推荐

