geolocation - tipos - Necesita una lista de todos los países del mundo, con una coordenada de longitud y latitud
tipos de coordenadas geograficas (11)
Necesito una lista de todos los países del mundo, con una coordenada lat / long para el país.
Eché un vistazo a GeoNames, pero todo lo que puedo encontrar son listas que tienen los países y ciudades en la misma lista. Creo que puedo analizarlo y filtrar los países, pero esperaba evitar eso.
Básicamente, lo que necesito;
Nombre del país - Coordenada latitud / longitud (algún tipo de centro del país)
No necesita decir nada sobre continente, pero no me importaría si lo hiciera.
_L
Aquí hay un documento de Google CSV , con las coordenadas de los países.
Bueno, podrías descargar esta capa GIS y ejecutar un punto-en-polígono sobre ella.
Editar: tal vez esta lista sería suficiente.
Dos servicios web que pueden ser de su interés para construir estos datos:
- http://www.geonames.org/export/geonames-search.html
- http://www.geonames.org/export/web-services.html#countryInfo
Puede llamar a http://ws.geonames.org/countryInfo para obtener la lista completa de códigos de países y nombres de países, y luego llamar a http://ws.geonames.org/search?country=<code>&name=<name>&maxRows=1
en cada uno para obtener lo que parece ser la latitud / longitud del punto central del país. (ej. http://ws.geonames.org/search?country=US&name=United%20States&maxRows=1 )
EDITAR
Aquí hay un script de C # que puede ejecutar contra los servicios enumerados anteriormente.
Puede ejecutar esto como está en 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;}
}
El concepto del centro de un país no está muy bien definido. ¿Lo harían las coordenadas de las ciudades capitales? Si es así, podrías extraerlos de algún lugar como Wikipedia de manera relativamente sencilla. Solo hay 200 más o menos, después de todo. Dicho esto, observo que el World Factbook de la CIA (disponible en línea) proporciona coordenadas aproximadas para los centros geográficos de los países.
El conjunto de datos de fronteras mundiales de Mapeo Temático lo tiene. Sin embargo, tendrá que convertirlo a su formato deseado.
El gobierno de EE. UU. Tiene una base de datos de nombres de lugares estandarizada que puede consultar. Incluye una coordenada lat / long, entre otras cosas. Ofrecen conjuntos descargables de algunos de sus datos también.
El paquete geographicdb es World Cities Database con Latitude Longitude e información de zona horaria para +240 países con sus nombres de ciudades y códigos de países y más de 270,000 registros.
puedes descargar pakage geographicdb desde aquí
Esto es exactamente lo que estás buscando. También me pareció muy interesante
La lista de la CIA contiene las coordenadas de los puntos centrales de los países
Si descarga la última versión de este archivo de datos de país internacional de la tierra natural: ne_10m_admin_0_countries.zip
Luego colóquelo en QGIS, puede obtener los centroides fácilmente ejecutando el elemento de menú Vector-> Herramientas de geometría-> Centroides de polígono y luego exportar haciendo clic con el botón derecho y Guardar como.
También está este dev.maxmind.com/geoip/legacy/codes/country_latlon , que es exactamente lo que ambos buscábamos, pero no era necesario un análisis sintáctico. Es un csv que jugará muy bien
Tengo un archivo CSV que ensamblé en 2012 que tiene el área de todos los nombres de países en varios idiomas, área centroide (lat / lon) e información del continente: Países del mundo (COW)