如何在Qt中获得城市和国家的列表
How to obtain a list of cities and countries in Qt?
我正在为Ubuntu Touch开发一个时钟应用程序,在那里我实现了世界时钟功能,用户可以从列表中选择一个城市,并看到当地时间。我使用QTimeZone
和QDateTime
通过提供其timezoneID
来获得城市的当地时间。然而,我无法找到一个Qt库函数,可以为我提供世界上常见城市的列表。
注意:我总是可以通过在XML文件中提供数据来自己创建城市的本地列表。这种方法的问题在于,我需要翻译人员翻译大量的城市列表。这就是为什么我正在寻找更多的内置函数来照顾这个。
是否有这样的Qt函数可以做到这一点?
对于时区的选择,如果你能满足于只列出每个时区具有代表性的主要城市(即80多个城市,而不是200多个城市),你可以参考Android Project下的settings app。在以下目录中-
https://android.googlesource.com/platform/packages/apps/Settings/+/android-2.3.2_r1/res
在每个xml-[language code]
文件夹下,都有名为timezones.xml
的文件,以各自的语言列出了每个时区的主要代表城市,并附有相应的时区ID。
(英文名称列在xml/timezones.xml
下)
Qt中没有这样的函数,但是您可以通过使用一些地图提供程序的API来解决这个问题,例如Google Maps, OpenStreetMap等。第二,我100%肯定它有c++的API。你可以用你的语言得到一个城市列表,并尝试使用这个API。大多数(所有?)公共地图提供商都提供国家和城市名称的翻译(注意:city !=拥有300名居民的村庄),因此您只需更改区域设置就可以了。为了防止语言错误,我建议您在内部使用一些语言中立的例程,例如GPS坐标或类似的例程。这一切都归结于地图提供商的数据库结构方式,但我认为我们可以高度自信地说,姓名标签、GPS坐标和——谁知道呢——甚至可能存在时区。
PS: @HappyCoder,是的,有时城市/城镇/村庄和国家的命名有很大的不同。即使在使用拉丁字母的国家,你也可以看到它:
- 德国(英语)
- Alemania(西班牙语)
- 德国(德国)
- L 'Allemagne(法国)
- Duitsland(南非荷兰语)
- …
同样适用于城市。如果再加上西里尔语、希腊语、汉语、阿拉伯语等,情况就更糟了。
- C++和带有国家符号的文件路径(也许用 UTF8 编码)
- 我如何使我的循环转到char*阵列的尽头,并将每个城市都放在链接的列表中(城市被划分为白色的空间)
- 如何维护城市道路数据?(我应该使用什么数据结构)
- 如何在我的系统语言语言中获取语言/国家名称
- 奇怪的字符而不是在WinAPI中使用Unicode的国家字母
- 简单过程生成2D城市的算法
- 分配帮助更新特定城市中"shipments"和"orders"的每项项目的数量
- 给定有向图和商店位置,放置商店,使从任何城市到最近商店的最大距离最小化
- 国家/地区和语言代码检测
- 以最低成本在城市中建造街道的算法
- 按名称和国家/地区搜索的功能
- 使用具有给定 .h 文件 c++ 的结构类创建城市链表
- UTF-8 Unicode 编码和国家/地区特定字符
- 如何从彩色地图中获取国家数量
- 只访问选定城市并返回开始的最低成本
- 如何在世界地图图像上突出显示特定国家
- 在什么情况下我们应该采用国家模式
- 从N个城市列表中选择一个或多个城市的方法个数
- 两个城市之间的经纬度距离方程是什么?
- 如何在Qt中获得城市和国家的列表