我需要世界上所有国家的列表,一个国家的经纬度坐标。需要世界所有国家的经纬度坐标的列表
我看了一下GeoNames,但我可以看到的所有列表都包含同一个列表中的国家和城市。我想我可以解析它并过滤掉这些国家,但我希望避免这种情况。
基本上,我需要什么;
国家名称 - 纬度/长坐标(某种国家中心)
它并不需要说一下大陆什么,但我不介意,如果它没有。
_L
我需要世界上所有国家的列表,一个国家的经纬度坐标。需要世界所有国家的经纬度坐标的列表
我看了一下GeoNames,但我可以看到的所有列表都包含同一个列表中的国家和城市。我想我可以解析它并过滤掉这些国家,但我希望避免这种情况。
基本上,我需要什么;
国家名称 - 纬度/长坐标(某种国家中心)
它并不需要说一下大陆什么,但我不介意,如果它没有。
_L
两个Web服务,可能是你的兴趣来建立这样的数据:
你可以称之为http://ws.geonames.org/countryInfo获得的国家代码和国家的完整列表名称,然后分别拨打http://ws.geonames.org/search?country=<code>&name=<name>&maxRows=1
以获得该国中心点的经纬度。 (例如:http://ws.geonames.org/search?country=US&name=United%20States&maxRows=1)
编辑
这里是一个C#脚本,您可以对上面列出的服务运行。
你可以像LinqPad那样运行它。
void Main()
{
var countries = new List<Country>();
XDocument xmlDoc = XDocument.Load(@"http://ws.geonames.org/countryInfo");
var countryList = (from c in xmlDoc.Descendants("country") select c);
foreach (var country in countryList)
{
var countryPath = string.Format("http://ws.geonames.org/search?country={0}&name={1}&maxRows=1", country.Element("countryCode").Value, country.Element("countryName").Value);
var element = (from e in XDocument.Load(countryPath).Descendants("geoname") select e).FirstOrDefault();
countries.Add(new Country
{
Code = element.Element("countryCode").Value,
Name = element.Element("countryName").Value,
Latitude = Convert.ToDecimal(element.Element("lat").Value),
Longitude = Convert.ToDecimal(element.Element("lng").Value),
Continent = country.Element("continentName").Value
});
}
Console.WriteLine("{0},{1},{2},{3},{4}","Continent", "Code", "Name", "Latitude", "Longitude");
foreach (var country in countries)
{
Console.WriteLine("{0},{1},{2},{3},{4}",country.Continent, country.Code, country.Name, country.Latitude, country.Longitude);
}
}
public class Country
{
public string Continent {get;set;}
public string Name { get;set;}
public string Code { get;set;}
public decimal Latitude { get;set;}
public decimal Longitude { get;set;}
}
一个国家的中心概念不是很清楚。首都城市的协调会做什么?如果是这样,你可能能够从维基百科等地方相对直接地提取它们。毕竟只有200左右。也就是说,我注意到CIA World Factbook(在线提供)给出了国家地理中心的大致坐标。
只要它是一致的,它究竟是不是很重要,无论是国会大厦还是有点在中心。感谢提示 – ptrn 2010-04-24 00:04:37
美国政府有一个standardized place name database你可以查询。它包括经纬度坐标等。他们也提供可下载的部分数据。
那么,你可以下载this GIS layer并在其上运行点对多边形。
编辑:也许this list会做。
这正是你正在寻找的。也觉得很有趣,我
CIA's listing containing coordinates of center points of countries
还有这个http://dev.maxmind.com/geoip/legacy/codes/country_latlon/,这正是我们都是寻找,但没有解析需要。它的csv会很好地发挥
如果只有你快了一年半,它会有所帮助:) – ptrn 2011-12-15 11:35:55
我只是跳了进来:-D – ioc32 2012-01-06 20:13:04
警告:MaxMind的越南的坐标是'16.0000,106.0000',它实际上位于老挝南部的中部 - 绝对没用。美国中央情报局的世界实况报道协议是“16 10 N,107 50 E”,这对越南中部是正确的。不幸的是,这些是我测试的第一个也是唯一的MaxMind坐标,因此我不相信任何其他人。 CIA Fact Book是要走的路。 – verbumSapienti 2014-02-20 13:06:49
专题图的世界边界数据集有它。不过,您需要将其转换为您所需的格式。
使用此链接转换数据:http://www.inquiron.com/online-file-converter/ – 2013-01-24 13:21:44
我有我在2012年有地区各种语言,面心(经/纬度)和大陆信息的国家的所有名称组装回一个CSV文件:世界(COW)的国家
如果您下载最新版本的从天然地球这个国家的国际数据文件:ne_10m_admin_0_countries.zip
然后把它变成QGIS,你CA n通过运行菜单项Vector-> Geometry Tools-> Polygon Centroids轻松获取质心,然后通过右击和另存为导出。
这里是一个Google CSV document ,与国家坐标。
tks,你如何下载它?或者你只是复制和粘贴和编辑,以获得它的CSV格式? – HattrickNZ 2015-08-12 19:57:19
您可以从源代码复制表格,然后按照您的喜好进行处理(例如,在MS Word中编写简单的REGEX,甚至在Python中编写简单的REGEX,C#等)。 – 2015-09-04 16:14:59
在这里,我使用了在线转换器,您可以获取我的文件:https://drive.google.com/file/d/0B52RjTfri3LPNDFuc0JHRDkxNE0/view?usp=sharing – yshahak 2017-08-18 08:42:27
谢谢,abelenky – ptrn 2010-04-23 22:31:07
检查http://dev.maxmind.com/geoip/legacy/codes/country_latlon/ – Boern 2016-06-10 08:22:41