终极全球地理数据库:如何免费获取250+国家/地区的完整行政数据
全球国家、州和城市数据库(Countries States Cities Database)是一个全面的地理信息资源库,提供JSON、SQL、XML、YAML和CSV等多种格式的数据,涵盖世界各国的地区、次级区域、国家、州(省)、城市等详细信息。该项目不仅支持静态文件下载,还提供便捷的API服务,帮助开发者轻松集成地理数据到各类应用中。
🌟 为什么选择这个地理数据库?
在开发地图应用、旅游平台或进行国际业务分析时,你是否常因缺乏标准化的地理数据而困扰?这个开源项目提供了150,540+城市和5,081个州/省的精准信息,覆盖全球250多个国家和地区,数据定期更新且完全免费商用!
📊 数据格式全解析
项目提供多种开箱即用的数据格式,满足不同开发场景需求:
| 格式类型 | 适用场景 | 文件路径示例 |
|---|---|---|
| JSON | 前端开发/API返回 | json/countries.json |
| CSV | 数据分析/Excel导入 | csv/cities.csv |
| SQL | 数据库直接部署 | sql/world.sql.gz |
| SQLite | 移动端/轻量应用 | sqlite/world.sqlite3.gz |
| XML/YAML | 配置文件/特定框架 | xml/regions.xml |
💡 小技巧:对于大型项目推荐使用SQL或DuckDB格式(duckdb/目录),查询性能提升300%!
🚀 3分钟快速上手指南
1️⃣ 一键获取数据(推荐)
git clone https://gitcode.com/gh_mirrors/co/countries-states-cities-database
cd countries-states-cities-database
2️⃣ 数据库部署方案
PostgreSQL用户:
gunzip -c psql/world.sql.gz | psql -U your_username -d your_database
MongoDB用户:
tar zxvf mongodb/world-mongodb-dump.tar.gz
mongorestore --db world ./dump/world
3️⃣ API调用示例(实时数据)
// 获取中国所有省份
fetch('https://api.example.com/states?country=CN')
.then(res => res.json())
.then(data => console.log(data));
💡 超实用应用场景
🌍 地图应用开发
轻松集成城市坐标数据,实现精准定位功能。数据包含经纬度、人口数量等字段,支持热力图可视化。
📈 市场分析工具
通过地区划分数据,快速构建区域销售报表。例如:
- 按国家/州筛选客户分布
- 分析不同地区的消费能力差异
✈️ 旅游平台搭建
提供目的地层级选择(国家→州→城市),结合geoname_id可关联外部数据,丰富景点信息。
🛠️ 高级功能探索
🔌 Prisma ORM集成
项目内置Prisma模型定义(prisma/schema.prisma),支持TypeScript类型安全开发:
// 示例:查询德国所有城市
const germanCities = await prisma.city.findMany({
where: { country: { code: 'DE' } },
select: { name: true, population: true }
});
🌐 多语言支持
通过translations.csv.gz文件可获取城市名称的多语言翻译,支持英语、西班牙语、法语等10+种语言。
📌 项目优势总结
✅ 数据全面:覆盖250+国家,包含地区、次区域、国家、州、城市五级行政划分
✅ 持续更新:平均每月更新1次,确保边界变更及时反映
✅ 商业友好:采用Open Database License,允许免费用于商业项目
✅ 技术支持:活跃的GitHub社区,平均24小时内响应issue
🔔 重要提示:使用前请查阅contributions/目录下的数据源说明,遵守第三方数据引用规范。
无论你是开发国际化应用的程序员,还是需要地理数据的分析师,这个开源项目都能为你节省90%的数据收集时间。立即克隆仓库,开启高效开发之旅吧!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



