哪个API是检索给定国家所有城市的最佳API? 我尝试从geonames下载,但数据似乎不可靠。 在overpass api中是否可能查询城市、州和国家?
请您推荐更好的下载城市及其点的方法。
哪个API是检索给定国家所有城市的最佳API? 我尝试从geonames下载,但数据似乎不可靠。 在overpass api中是否可能查询城市、州和国家?
请您推荐更好的下载城市及其点的方法。
[out:json];
area["ISO3166-1"="IN"];
(rel(area)["admin_level"="4"];);
out;
admin_level=5
。 [out:json];
area["ISO3166-2"="IN-KL"];
(rel(area)["admin_level"="5"];);
out;
[out:json];
area["ISO3166-2"="{0}"]["admin_level"="4"];
(rel["name"="Thiruvananthapuram"](area);)->.center;
node(around.center:10000)["place"];
out;"""
https://shivammathur.com/countrycity/countries
即可获取所有国家的列表。https://shivammathur.com/countrycity/countries/ind
可以获取包含“ind”的国家列表。https://shivammathur.com/countrycity/cities/India
可以获取印度的所有城市。from geosky import geo_plug
geo_plug.all_CountryNames()
geo_plug.all_Country_StateNames()
geo_plug.all_State_CityNames(name)# name == 'all' or state name
geo_plug.all_State_CityNames('Odisha')
我来回答一下你的第二个问题,有关 Overpass API。你可以使用该 API 查询特定国家的城市。为了展示其功能,OSM 有一个名为 Overpass Turbo(http://overpass-turbo.eu)的基于 Web 的查询工具,您可以提交查询并显示和下载数据。例如,以下查询将提供美国所有城市:
{{geocodeArea:"United States"}}->.searchArea;
(
node["place"="city"](area.searchArea);
);
out body;
>;
out skel qt;
查询将返回以下内容:
根据OSM Wiki,"city"标签用于“识别领土内最大的定居点或定居点,包括国家、州和省会以及其他主要都市区。”在同一维基页面上,有一个关于区分城市和城镇的注释。在上述查询中,“city”可以替换为“town”。这里列出了其他可能的值(包括国家和州):https://wiki.openstreetmap.org/wiki/Key:place#Values 如果您想从数据中获取城市到州的关系,您可能不总是能得到可靠的结果。例如,您可能会得到Duluth,MN的以下详细GeoJSON条目: {
"type": "Feature",
"properties": {
"@id": "node/19188464",
"is_in": "Minnesota USA",
"is_in:continent": "North America",
"is_in:country": "USA",
"is_in:country_code": "US",
"is_in:state": "Minnesota",
"name": "Duluth",
"name:ja": "ダルース",
"name:oj": "Onigamiinsing",
"name:ru": "Дулут",
"place": "city",
"population": "86265",
"population:source": "2010",
"wikidata": "Q485708",
"wikipedia": "en:Duluth, Minnesota"
},
"geometry": {
"type": "Point",
"coordinates": [
-92.1251218,
46.7729322
]
},
"id": "node/19188464"
},
{
"type": "Feature",
"properties": {
"@id": "node/29941752",
"alt_name:ru": "ÐœÑдиÑон",
"capital": "4",
"is_in:continent": "North America",
"is_in:country": "USA",
"name": "Madison",
"name:en": "Madison",
"name:pl": "Madison",
"name:ru": "МадиÑон",
"name:ta": "மேடிசனà¯",
"name:uk": "МедіÑон",
"place": "city",
"population": "243344",
"state_capital": "yes",
"website": "http://www.cityofmadison.com/",
"wikidata": "Q43788",
"wikipedia": "en:Madison, Wisconsin"
},
"geometry": {
"type": "Point",
"coordinates": [
-89.3837613,
43.074761
]
},
"id": "node/29941752"
},
>
的那一行...所谓的递归使语法非常简洁。 - Vojta F