能否通过单次MapQuest API调用实现多类别商家搜索?
MapQuest API 多类别POI合并查询解决方案
你的需求是可行的,不需要为每个类别单独调用API,问题出在你用的IN语法不符合MapQuest Search API的参数规则。
错误原因
hostedData参数的格式为数据集|筛选条件|参数值,每个=?占位符只能对应一个参数值,你传入多个值会被API判定为参数数量不匹配,所以报错Invalid number of parameters, expected 1, got 2。
正确的多类别查询写法
要同时获取多个SIC代码的POI,需要用|OR|连接多个group_sic_code筛选条件,示例如下:
hostedData=mqap.ntpois|group_sic_code=?|541105|OR|group_sic_code=?|581208
完整的请求URL示例:
https://www.mapquestapi.com/search/v2/radius?origin=40.75,-73.98&radius=1&units=m&maxMatches=20&hostedData=mqap.ntpois|group_sic_code=?|541105|OR|group_sic_code=?|581208&key=[API_KEY]
扩展到50+类别的注意事项
- 可以继续追加
|OR|group_sic_code=?|XXXXXXX来包含所有需要的SIC代码,API支持多OR条件组合。 - 注意URL长度限制:大部分浏览器和服务器对URL的最大长度有要求(比如Chrome上限为8192字符),如果50多个代码导致URL超出限制,需要将类别分成若干批次调用,但依然比单个类别调用高效很多。
验证建议
先测试2-3个类别的组合请求,确认返回结果包含对应类别的POI后,再逐步扩展到所有需要的类别。
内容的提问来源于stack exchange,提问作者Jason Thuli
相关产品推荐
相关产品推荐

