首页
/ 探索全球地理信息:City-State Ruby Gem

探索全球地理信息:City-State Ruby Gem

2024-05-23 22:29:46作者:魏献源Searcher

City-State 是一款简洁而强大的 Ruby 库,它允许您轻松地获取任何国家的州列表以及任何州的城市列表。基于 MaxMind 数据库,它提供了准确且全面的世界各国地理信息。

兼容性

本项目主要针对 Ruby 3 及更高版本进行开发和维护。如果您仍在使用 Ruby 2,请查阅 v0 分支以获得兼容支持。

Ruby 3 和更高版本

  • 这是主开发分支。
  • 新特性和改进将在此分支上添加。
  • 确保您的环境已安装 Ruby 3 或更高版本。

Ruby 2 支持

  • 对于 Ruby 2 用户,请切换到 v0 分支。
  • v0 分支处于维护模式,只接收错误修复,不再新增功能。

安装与使用

要开始使用 City-State,只需在您的 Gemfile 中加入:

gem 'city-state'

然后运行:

$ bundle install

获取数据

获取指定国家(如美国)的州列表:

CS.states(:US)

列出特定州(如阿拉斯加)及其所在国家(美国)的城市:

CS.cities(:AK, :US)

数据库查询是大小写不敏感的,您可以使用各种变体。

自定义名称

通过创建 db/cities-lookup.ymldb/states-lookup.ymldb/countries-lookup.yml 文件,您可以对城市、州或国家名称进行重命名或添加缺失的城市。

例如,将国家 US 改为 America

# db/countries-lookup.yml
US: "America"

或者将州名 California 更改为 Something Else

# db/states-lookup.yml
US:
  CA: Something Else

数据库更新

MaxMind 每周二更新其数据库。从 2019 年底开始,尽管需要免费注册并获取许可证密钥,但不需要下载新的数据文件。通过调用 CS.set_license_key 方法,设置您的许可证密钥即可自动更新数据。

使用自定义数据库

若您已有 MaxMind 的 CSV 数据文件,可以使用 CS.set_maxmind_zip_url 设置自定义 URL 来使用它。

开源与许可证

City-State 遵循 MIT 许可证,由 Daniel Loureiro 创建。MaxMind 数据库则遵循 Creative Commons Attribution 3.0 Unported License。

更多信息

了解更多关于 City-State 如何创建的细节以及其他更新,查看 CHANGELOG.md

这个强大而灵活的库使开发者能快速集成地理信息,无论是在创建地理位置应用,还是在处理与国家和地区相关的数据分析时,都能提供极大的便利。立即尝试 City-State,并为您的项目解锁全球地理数据的潜力!

项目优选

收起
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
33
24
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
825
0
redis-sdkredis-sdk
仓颉语言实现的Redis客户端SDK。已适配仓颉0.53.4 Beta版本。接口设计兼容jedis接口语义,支持RESP2和RESP3协议,支持发布订阅模式,支持哨兵模式和集群模式。
Cangjie
375
32
advanced-javaadvanced-java
Advanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。
JavaScript
75.92 K
19.09 K
qwerty-learnerqwerty-learner
为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers
TSX
15.62 K
1.45 K
easy-eseasy-es
Elasticsearch 国内Top1 elasticsearch搜索引擎框架es ORM框架,索引全自动智能托管,如丝般顺滑,与Mybatis-plus一致的API,屏蔽语言差异,开发者只需要会MySQL语法即可完成对Es的相关操作,零额外学习成本.底层采用RestHighLevelClient,兼具低码,易用,易拓展等特性,支持es独有的高亮,权重,分词,Geo,嵌套,父子类型等功能...
Java
19
2
杨帆测试平台杨帆测试平台
扬帆测试平台是一款高效、可靠的自动化测试平台,旨在帮助团队提升测试效率、降低测试成本。该平台包括用例管理、定时任务、执行记录等功能模块,支持多种类型的测试用例,目前支持API(http和grpc协议)、性能、CI调用等功能,并且可定制化,灵活满足不同场景的需求。 其中,支持批量执行、并发执行等高级功能。通过用例设置,可以设置用例的基本信息、运行配置、环境变量等,灵活控制用例的执行。
JavaScript
8
1
Yi-CoderYi-Coder
Yi Coder 编程模型,小而强大的编程助手
HTML
57
7
RuoYi-VueRuoYi-Vue
🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
Java
147
26
anqicmsanqicms
AnQiCMS 是一款基于Go语言开发,具备高安全性、高性能和易扩展性的企业级内容管理系统。它支持多站点、多语言管理,能够满足全球化跨境运营需求。AnQiCMS 提供灵活的内容发布和模板管理功能,同时,系统内置丰富的利于SEO操作的功能,帮助企业简化运营和内容管理流程。AnQiCMS 将成为您建站的理想选择,在不断变化的市场中保持竞争力。
Go
78
5