如何使用geonames API查询周边城市及人口聚居地点?
Geonames API过滤非人口聚居地返回结果的可行方案
- 参数指定人口聚居地特征编码(featureCode)
Geonames所有地点都有对应的分类编码,其中P开头的编码均对应人口聚居相关地点,你可以在调用接口时直接指定仅返回该类编码的结果。
可指定的常用编码包括PPL(普通聚居地)、PPLA(一级行政中心)、PPLC(首都)、PPLX(郊区聚居点),调用示例:
这类参数对三个你用到的接口均生效。/findNearbyPlaceName?lat=xxx&lng=xxx&featureCode=PPL&featureCode=PPLA&featureCode=PPLC - 添加人口阈值过滤
所有正规人口聚居地都会返回population字段,你可以通过minPopulation参数设置最低人口要求,直接过滤掉无固定居住人口的公园、酒店等场所,比如设置minPopulation=500就可以筛掉绝大多数非聚居地点,数值可根据你需要的聚居地规模灵活调整。 - 排除指定非目标分类
如果仍有少量非聚居地漏出,可以直接通过excludeFeatureCode参数排除对应分类,常用排除项包括S.REC(休闲区/公园)、S.HOT(酒店)、T.TOUR(旅游景点),调用时直接追加参数即可:/findNearby?lat=xxx&lng=xxx&excludeFeatureCode=S.REC&excludeFeatureCode=S.HOT - 返回结果二次校验
拿到接口返回数据后可以做两轮本地过滤:一是判断fcl(特征大类)字段是否为P,非P分类直接剔除;二是判断population字段是否符合你要求的最低值,不符合就过滤,灵活度比接口参数更高。
内容的提问来源于stack exchange,提问作者Ahmed Amine Lamrhary
相关产品推荐
相关产品推荐

