检索一个国家的城市列表

Kis*_*e K 6 python geolocation geonames overpass-api

哪个是检索给定国家/地区所有城市的最佳 api?我尝试从 geonames 下载。但似乎数据不可靠。` 是否可以在立交桥 api 中查询城市以及州和国家/地区?

您能建议一种更好的方式来下载城市及其积分吗?

Sud*_*r K 2

我通过在 python 包overpy的帮助下使用overpass api完成了类似的任务。

首先,我使用查询检索了国家的所有州

    [out:json];
    area["ISO3166-1"="IN"];
    (rel(area)["admin_level"="4"];);
    out;
Run Code Online (Sandbox Code Playgroud)

现在我已经获取了每个州的所有地区,即admin_level=5。

    [out:json];
    area["ISO3166-2"="IN-KL"];
    (rel(area)["admin_level"="5"];);
    out;
Run Code Online (Sandbox Code Playgroud)

状态ISO3166-2来自从 API 接收的数据。现在您可以使用 API 的数据获取每个地区的城市。

    [out:json];
    area["ISO3166-2"="{0}"]["admin_level"="4"];
    (rel["name"="Thiruvananthapuram"](area);)->.center;
    node(around.center:10000)["place"];
    out;"""
Run Code Online (Sandbox Code Playgroud)

这对我有用。请记住,获取一个国家/地区的所有城市对于 OSM 服务器来说是一项非常艰巨的任务。获取您真正需要的数据。